Порядок выполнения работы. 1.Войти в среду Visual Basic, создать новый проект, присвоить ему имя Lab4.
1.Войти в среду Visual Basic, создать новый проект, присвоить ему имя Lab4.
2. Создать проект формы Form1, как показано на рис.13. Элементы управления те же, что и в проекте Lab3.
Рис.13 Проект формы Form1.
3. Создать форму Form2, включить в нее помимо заголовка элемент VscrollBar (вертикальная полоса прокрутки), как показано на рис.14.
Рис.14. Проект формы Form2.
Установить для полосы прокрутки свойства:
SmallChange = 1(величина изменения свойства Value при щелчке на одной из двух кнопок со стрелками).
LargeChange = 10 (величина изменения свойства Value при щелчке в области между бегунком и кнопкой со стрелками).
Минимальное значение диапазона прокрутки (Min) должно быть установлено в нуль (эта установка принимается по умолчанию), а максимальное (Max) можно не задавать, т.к. его значение будет установлено в процедуре обработки.
4.Добавить в проект модуль Module1, разработанный в проекте Lab2(см. лабораторную работу №3, пункт 4)..
5.Создать новый модуль Module2. В окне кода этого модуля ввести следующий код:
Public XMin As Single, XMax As Single
Public YMin As Single, YMax As Single
Public n As Integer
Public MX() As Single, MY() As Single
' Определили массивы MX и MY без объявления размерности
Public Sub TabFunc(xn As Single, xk As Single, h As Single)
'Процедура табулирования функции
Dim x As Single, y As Single
Dim i As Integer
n = (xk - xn) / h
'Определяем размерность массива, т.е. количество точек в
'таблице значений (следует иметь в виду,
'что отсчет начинается с нуля)
ReDim MX(n), MY(n)
'Устанавливаем фактический размер массивов
Form2.VScroll1.Max = n
'Установили максимальное значение диапазона прокрутки
x = xn
y = f(x)
YMax = y: YMin = y
'Присвоили начальные значения для цикла и организовываем цикл
'для вычисления таблицы значений и определения максимального
'и минимального значений функции
For i = 0 To n
y = f(x)
MX(i) = x
MY(i) = y
If y > YMax Then YMax = y
If y < YMin Then YMin = y
x = x + h
Next
XMin = xn
XMax = xk
End Sub
Sub PrntFunc()
'Процедура перерисовки формы Form2
Form2.Cls
Form2.CurrentY = 800
Form2.CurrentX = 1000
Form2.Print " x", " f(x)"
' Form2.CurrentX = 1000
Form2.Print
'Очистили форму Form2 и вывели в нее заголовок таблицы.
'Далее в цикле выводим в форму Form2 значения Х и У.
'Выводятся только те строки, номера которых (i) больше или
'равны значения свойства Value полосы прокрутки в форме Form2)
'(определяется позицией бегунка в полосе прокрутки)
For i = 0 To n
If i >= Form2.VScroll1.Value Then
Form2.CurrentX = 1000
Form2.Print Format(MX(i), "####0.00"), Format(MY(i), "###0.000")
End If
Next
Form2.Print
Form2.Print " Максимальное значение", Format(YMax, "###0.000")
Form2.Print " Минимальное значение", Format(YMin, "###0.000")
'Вывели в форму Form2 строки с максимальным и минимальным значениями.
End Sub
6.В модуле формы Form1 создать следующий код ( обработка событий для элементов формы аналогично тому, как это было сделано в лабораторных работах №2 или №3):
Private Sub A_LostFocus()
'Обработка события Потеря фокуса
'для элемента управления A
If Not IsNumeric(A) Then
A.SetFocus
MsgBox "Неверное значение: не цифра"
End If
End Sub
Private Sub Xnac_LostFocus()
'Обработка события Потеря фокуса
'для элемента управления Xnac
If Not IsNumeric(Xnac) Then
Xnac.SetFocus
MsgBox "Неверное значение: не цифра"
End If
End Sub
Private Sub Xkon_LostFocus()
'Обработка события Потеря фокуса
'для элемента управления Xkon
If Not IsNumeric(Xkon) Then
Xkon.SetFocus
MsgBox "Неверное значение: не цифра"
End If
End Sub
Private Sub hX_LostFocus()
'Обработка события Потеря фокуса
'для элемента управления hX
If Not IsNumeric(hX) Then
hX.SetFocus
MsgBox "Неверное значение: не цифра"
End If
End Sub
Private Sub Command1_Click()
'Обработка события Щелчок для командной кнопки
'Расчет
'Вызывается процедура TabFunct для табулирования
'функции
'Затем форма Form2 делается видимой и вызывается
'процедура PrntFunction для перерисовки формы
'Form2.
TabFunc Xnac, Xkon, hX
Form2.Visible = True
PrntFunc
End Sub
Private Sub Command2_Click()
'Обработка события Щелчок для командной кнопки Вы
'ход
Unload Form2
End
End Sub
7.В модуле формы Form2 создать следующий код:
Private Sub Form_Resize()
'Обработка события Resize (Изменение формы) для
'формы
'С помощью процедуры PrntFunc осуществляется
'перерисовуа формы
'Затем перерасчитывается высота полосы прокрутки
' (VScroll1.Height)
'и расстояеие ее от левого края формы
' (VScroll1.Left)
PrntFunc
VScroll1.Height = Form2.ScaleHeight –
VScroll1.Top + ScaleTop
VScroll1.Left = Form2.ScaleWidth –
VScroll1.Width - 50
End Sub
Private Sub VScroll1_Change()
'Реакция на изменение позиции бегунка
'перерисовывается форма.
PrntFunc
End Sub
8.Сохранить проект в личной папке, присвоив имена файлов в соответствии с требованиями раздела 4.
Форма 1: L4_<ФИО>_Form1
Форма 2: L4_<ФИО>_Form2
Модуль2: L4_<ФИО>_Module2
Проект L4_<ФИО>_Project
9.Запустить приложение на выполнение. Исследовать, как ведет себя приложение при изменении позиции бегунка в полосе прокрутки и при изменении размеров окна формы Form2.
Дата добавления: 2014-11-29; просмотров: 882;