
Завдання 7
Рахувати функцію завдання 1 функцією одного аргументу –
У=k1 * (x-k2)2+k3*(x-k2)*sin(x-k2) + k4*(sin(x-k2))2 .
На довільному інтервалі, який може задати оператор, обчислити 10 значень цієї функції. Відобразити ці 10 крапок (аргумент і значення функції) за допомогою елемента управління MsFlexgrid. Намалювати графік функції по цих 10 – ти крапок за допомогою елемента управління MsChart. Наприклад
With Chart
.chartType = VtChChartType2dLine
.ColumnCount = 1
.RowCount = 10
Dim i%
.Column = 1
For i=1 To 10
.Row = i
.Data =i * i
Next
End With
Питання
Які параметри MsChart визначають горизонтальну та вертикальну координату графіка.
Які параметри MsChart визначають кількість графіків
Завдання 8
Доповнити лабораторну роботу 5 функціями збереження і витягання наборів даних, задаючих одну таблицю завдання 3, у файлі. Вибір файлу для читання і запису здійснювати за допомогою відповідних вбудованих елементів VB. Використайте дві можливості (два варіанта маніпулювання файлами) файл послідовного, та довільного доступу. Передбачити можливість збереження декількох наборів даних в одному файлі і відповідно можливість перегляду і вибору необхідного набору з файлу. Застосувати елемент управління типу Controls - «витягнути наступний набір даних», наприклад.
Питання.
Поясніть різницю між використаними технологіями доступу до даних.
Поясніть параметри дозволів та блокування використані вами.
Завдання 9
Використовуючи елемент управління Line і графічний метод Print, повторити зовнішній вигляд таблиці завдання 4 на формі, призначеній для друку. Передбачити можливість виводу цієї форми на друк. Використовувати для написів різні типи і розміри шрифтів.
Завдання 10
В цьому завданні, також як і в завданні 7, необхідно побудувати графік функції з таблиці варіантів функцій. Тепер для вирішення задачі необхідно використовувати графічні методи – вбудовані (VB-6) і методи системної бібліотеки (VB NET).
Рахувати функцію завдання 1 функцією одного аргументу –
У=k1 * (x-k2)2+k3*(x-k2)*sin(x-k2) + k4*(sin(x-k2))2 .
Для цієї функції реалізувати програму, яка будує графік функції і відображає цей графік на відповідній формі. Бажано реалізувати цю програму на формі завдання 7, в тому випадку, якщо програма реалізується як програма для VB-6.. Графік будується як ламана лінія. Обов'язковою вимогою до програме є наступне. Інтервал, на якому будується функція, і точність представлення графічних даних (крок дискретності при побудові функції відрізками прямих) повинен задаватися довільно оператором і є початковими даними при роботі програми.
Завдання виконати в двох варіантах для VB-6 і VB NET. В першому випадку для масштабування використовувати графічні методи VB6 (метод SCALE і LINE). В другому випадку використовувати методи GDI+ і масштабування реалізувати самостійно.
Нижче, наведений як приклад фрагмент коду для GDI+ який дозволяє намалювати графік функції х=у2 на фіксованому інтервалі.
Приклад. Цей фрагмент може бути скопійований в тіло форми на якій розміщені PictureBox1 і Button1.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, у As Single
ymin = 999999.0
ymax = -9999999.0
For x = xmin To xmax Step stepx
у = f(x)
If у > ymax Then ymax = у
If у < ymin Then ymin = у
Next
Dim а As Graphics
а = PictureBox1.CreateGraphics
For x = xmin To xmax Step stepx
а.DrawLine(New Pen(Color.Coral), mx(x), my(f(x)), mx(x + stepx), my(f(x + stepx)))
Next
End Sub
Dim xmin As Single = -1
Dim xmax As Single = +1
Dim ymin, ymax As Single
Dim stepx As Single = 0.1
Function mx(ByVal x As Single) As Single
mx = ((x - xmin) / (xmax - xmin)) * PictureBox1.Width
End Function
Function my(ByVal у As Single) As Single
Return PictureBox1.Height - ((у - ymin) / (ymax - ymin)) * PictureBox1.Height
End Function
Function f(ByVal x As Single) As Single
Return x ^ 2
End Function
Збережена графіка
Dim bitmap As New Bitmap("Grapes.jpg")
e.Graphics.DrawImage(bitmap, 60, 10)
Dim myBitmap As New Bitmap("Spiral.png")
Dim expansionRectangle As New Rectangle(135, 10 _
myBitmap.Width, myBitmap.Height)
Dim compressionRectangle As New Rectangle(300, 10 _
myBitmap.Width / 2, myBitmap.Height / 2)
myGraphics.DrawImage(myBitmap, 10, 10)
myGraphics.DrawImage(myBitmap, expansionRectangle)
myGraphics.DrawImage(myBitmap, compressionRectangle)
Питання. Поясніть програму, що в модулі форми містить наступне кодування.
Declare Sub FloodFill Lib "GDI32" Alias "FloodFill" _
(ByVal hDC As Long, ByVal X As Long, ByVal Y As _
Long, ByVal crColor As Long) As Long
' Place the following code in the form.
Private Sub Form_Click ()
ScaleMode = vbPixels ' Windows draws in pixels.
ForeColor = vbBlack ' Set draw line to black.
Line (100, 50)-(300, 50) ' Draw a triangle.
Line -(200, 200)
Line -(100, 50)
FillStyle = vbFSSolid ' Set FillStyle to solid.
FillColor = RGB(128, 128, 255) ' Set FillColor.
' Call Windows API to fill.
FloodFill hDC, 200, 100, ForeColor
End Sub
Завдання 11
Графік (завдання 10) зберегти у вигляді файлу. Побудувати зображення, що складається з прямокутних фрагментів – кожний фрагмент відображає графік функції на різних інтервалах. Використовувати це зображення як заставки для завдання (демонструвати на довільній формі). Розміри зображень повинні бути невеликими, що повинне гарантувати їх зберігання на одній дискеті з програмами. Передбачити можливість в програмі масштабної зміни графіка без повторного обчислення значення функції. Для завантаження файлів в run-time використовувати файл ресурсів.
Завдання 12
Декілька зображень, відповідних графікам функції (завдання 10), спільно з пояснюючими повідомленнями (інтервал аргументу) відобразити в об'єкті ListView. Розміри зображень повинні бути невеликими, що повинне гарантувати їх зберігання на одній дискеті з програмами. Передбачити можливість представлення інформації ListView в різних режимах (Таблиця, великі і малі ікони).
Завдання 13
Реалізувати побудову графіка (завдання 10) за допомогою об'єкту. Форму (або будь-який інший елемент управління) на якій будується графік, інтервал і крок зміни аргументу визначити за допомогою властивостей об'єкту. (Клас повинен мати об'єктні властивості.) Пов'язати з об'єктом подію, яка виникає у момент обчислення мінімальних і максимальних координат по вертикальній осі У. Использовать відповідну процедуру події в програмі для повернення цих двох значень в програму використовуючу об'єкт.
Завдання 13 а.
Виконати завдання 4. Обчислення інкапсулювати в спеціальному класі. Всі підпрограми і функції зробити методами класу. Для деяких параметрів (по вибору студента) реалізувати передачу значень за допомогою властивостей класу.
Завдання 13 би.
В додатку «варіанти таблиць» приведені таблиці, кожна з яких відповідає одному варіанту завдання. Зірочки в таблицях поміщені в поля, значення яких необхідно обчислити програмно.
Необхідно відобразити образ таблиці в Word.(або за допомогою таблиць або за допомогою елементів управління). В клієнтському додатку необхідно реалізувати обчислення, задані таблицею. Відобразити результат в Word. Клієнтський додаток виконати для VB6(VBA) і NET
Приклад для таблиць VB6. Повинні бути дозволений посилання для Word.
Dim pword As Word.Application
Set pword = GetObject(, "word.Application")
Dim mytabl As Table
Set mydoc = pword.Documents.Open("D:\DISP\plan-date\grafik PROEKT_1.doc")
Set mytabl = pword.ActiveDocument.Tables(2)
Dim mydate As Date
Dim mstr As String, mstr2 As String
Dim sim As Integer
mstr = mytabl.Cell(Row:=3, Column:=5).Range
l = Len(mstr)
For i = 0 To l - 1
sim = Asc(Right(mstr, l - i))
Select Case sim
Case 46 To 57
mstr2 = mstr2 & Chr(sim)
Case Else
End Select
Next
Приклад для NET
Dim pword As Word.Application
pword = GetObject(, "word.Application")
Dim mytabl As Word.Table
Dim mydoc As Word.Document
'mydoc = pword.Documents.Open("D:\DISP\plan-date\grafik PROEKT_1.doc")
mydoc = pword.ActiveDocument
mytabl = pword.ActiveDocument.Tables.Item(2)
Dim mydate As Date
Dim mstr As String, mstr2 As String
Dim sim, l, i As Integer
Dim mstrr As Word.Range
mstrr = mytabl.Cell(3, 5).Range
mstr = mstrr.Text
MsgBox(mstr)
l = Len(mstr)
For i = 0 To l - 1
sim = Asc(Microsoft.VisualBasic.Right(mstr, l - i))
Select Case sim
Case 46 To 57
mstr2 = mstr2 & Chr(sim)
Case Else
End Select
Next
Завдання 14
Реалізувати використовування об'єкту завдання 13 за допомогою класу інтерфейсу.
Завдання 15
Реалізувати об'єкт завдання 13 за допомогою додатку серверу. Побудувати програму клієнт, використовуючу цей сервер.
Завдання 15
Виконати елемент управління, що реалізовує функції об'єкту із завдання 13. Елемент повинен мати три властивості – інтервал (два числа) і крок зміни аргументу. Забезпечити збереження значень властивостей між сеансами проектування. Для елемента управління підготувати станицю властивостей.