Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие по VB_6.doc
Скачиваний:
73
Добавлен:
24.12.2018
Размер:
3 Мб
Скачать
☆

3.2.6. Упражнения: использование окон диалога и функций пользователя

Задача 1: Разработать программу для вычисления определенного интеграла с использованием процедуры пользователя и функций пользователя.

Порядок работы.

Доработаем программу из раздела 3.1.4. в соответствии с заданием. На форме оставим только кнопки для вычисления и выхода из программы.

Option Explicit

Dim a As Single, b As Single, S As Single, N As Integer

Private Sub Integral(a As Single, b As Single, N As Integer)

‘ процедура для вычисления определенного интеграла

Dim x As Single, dx As Single

Dim y As Single, i As Integer

x = a: dx = (b - a) / N

For i = 1 To N

y = FNy1(x)

S = S + y * dx

x = x + dx

Next i

End Sub

Function FNy1(x)

‘ функция пользователя

Dim y As Single

y = x

FNy1 = y

End Function

Private Sub Command1_Click()

a = Val(InputBox("Введите нижний предел интегрирования", "Ввод данных"))

b = Val(InputBox("Введите верхний предел интегрирования", "Ввод данных"))

N = Val(InputBox("Укажите число отрезков разбиения", "Ввод данных"))

S = 0

Integral a, b, N

MsgBox "Интеграл равен" & Str(S), , "Значение интеграла"

End Sub

Задача 2: Разработать форму для вычисления определенного интеграла с заданной точностью с использованием глобальной процедуры пользователя и глобальной функции пользователя. Программа должна обеспечивать вычисление площади криволинейной трапеции, ограниченной прямыми x=a, x=b, y=0 и графиками функций y=a*x^2+b или y=1/(a*x)+b.

Порядок работы.

  1. Загрузите программу вычисления определенного интеграла (задача1).

  2. Добавьте в Ваш проект модуль: Project\Add Module

  3. Оформите программу вычисления определенного интеграла в виде процедуры пользователя и поместите ее в модуль.

  4. Создайте две функции пользователя для вычисления заданных функции и также поместите их в модуль.

  5. Разработайте эскиз формы.

Указание: текстовые поля можно применять в качестве командных кнопок, используя событие Click.

  1. Выполните отладку программы.

  2. Сохраните программу на диске.

  3. Создайте исполняемый файл.

  4. Распечатайте тексты программ процедуры и функций.

Текст программы модуля

Option Explicit

Public a As Single, b As Single, S As Single, N As Integer

Public x As Single, ax As Single, bx As Single, e As Single

Public Flag1 As Boolean

' процедура для вычисления определенного интеграла

' методом двойной прогонки

Public Sub Integral2(a As Single, b As Single, N As Integer)

Dim y As Single, i As Integer, R As Single

Dim int0 As Single, int1 As Integer

Dim dx As Single

R = 1 + e: int0 = 0

While Abs(R) > e 'цикл типа "Пока" обеспечивает контроль

'заданной точности

int1 = int0:

x = a: dx = (b - a) / N

For i = 1 To N 'Цикл типа "ДО" обеспечивает

'вычисление интеграла при текущем значении N

If Flag1 Then

y = FNy2(x, ax, bx)

Else

y = FNy1(x, ax, bx)

End If

S = S + y * dx

x = x + dx

Next i

'вычисление точности

R = (int0 - int1) / 3

N = N * 2

Wend

End Sub

Public Function FNy1(x As Single, ax As Single, bx As Single)

' функция пользователя

Dim y As Single

y = ax * x ^ 2 + bx

FNy1 = y

End Function

Public Function FNy2(x As Single, ax As Single, bx As Single)

' функция пользователя

Dim y As Single

y = 1 / (ax * x) + bx

FNy2 = y

End Function