Порядок выполнения работы. 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; просмотров: 815;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.023 сек.