Bikkulov8
.pdf
Программный код
’Переменная i объявляется как целочисленная переменная
Dim i As Integer
’Переменная f объявляется как длинная целочисленная
Dim f As Long
‘Переменные e, y, s объявляются как десятичные
Dim e, y, s As Single
Private Sub Form_Load()
‘Вывод текста в Метки
Метка1.Caption = "Введите e из интервала (0,0001;0.01)"
Метка2.Caption = "Сумма S = " End Sub
Private Sub Комманда_Click()
‘Ввод, преобразование типа и проверка числа е e = Val(Текст)
If e < 0.0001 Or e > 0.1 Then Текст = "Вне интервала!": Exit Sub s = 0: i = 0: f = 1: y = e
‘Организация цикла по условию
While Abs(y) >= e
‘Вычисление факториала i = i + 1: f = f * i
‘Вычисление функции и суммы
y = (-1) ^ i * i * (i + 1) * (i + 2) / f : s = s + y Wend
‘Вывод суммы
Метка2 = Метка2 & Format(s, "##0.000000")
End Sub
Результаты работы программы
Пример 5. Наибольшее число
Получить 10 случайных двузначных натуральных чисел и найти наибольшее число.
51
Блоксхема
Интерфейс
52
Программный код
‘Объявление переменных
Dim i, Max As Integer Dim n(1 To 10) As Integer
‘Требование обязательного объявления переменных проекта
Option Explicit
Private Sub Form_Load()
‘Инициирует генератор случайных чисел
Randomize
Список1.List(0) = " Случайные"
Список1.List(1) = " числа"
Max = 0
‘Получение 10 случайных чисел в диапазоне от 1 до 99 и нахождение ‘наибольшего числа
For i = 1 To 10
n(i) = 98 * Rnd + 1
Список1.List(i + 1) = Format(n(i), " 00") If Max < n(i) Then Max = n(i)
Next i
‘Вывод в список
Список1.List(12) = " Наибольшее"
Список1.List(13) = " число" Список1.List(14) = Format(Max, " 00") End Sub
Private Sub Комманда1_Click()
“Вызов процедуры Form_Load для получения новых чисел
Form_Load End Sub
Private Sub Комманда2_Click()
‘Завершение работы
End End Sub
53
Результаты работы программы
Пример 6. Вычисление матрицы
Вычислить матрицу A a i, j , где i, j = {1,2,...,10} по формуле
a i, j log 5 i 3 j sin i j 2 . Отсортировать элементы главной диагонали по возрастанию.
54
Блоксхема
55
Интерфейс
Программный код
‘Объявление переменных
Dim i, j As Integer
Dim b, a(10, 10) As Single Option Explicit
Private Sub Form_Load()
‘Вывод нулевого элемента списка
Список1.List(0) = "Матрица А"
‘Вычисление и вывод в список элементов двумерной матрицы
For i = 1 To 10 For j = 1 To 10
a(i, j) = (Log(5 * i + 3 * j) / Log(10)) * Sin(i * j) ^ 2 Список1.List(i)=Список1.List(i) & " " & Format(a(i, j), "####0.00")
Next j Next i
‘Вывод в список элементов главной диагонали
Список1.List(11) = "Элементы главной диагонали"
For i = 1 To 10
Список1.List(12) = Список1.List(12) & " " & Format(a(i, i), "##0.00") Next i
‘Сортировка элементов главной диагонали по возрастанию
For i = 1 To 10 For j = 1 To 9
If a(j, j) > a(j + 1, j + 1) Then b = a(j, j)
a(j, j) = a(j + 1, j + 1) a(j + 1, j + 1) = b
End If Next j, i
Список1.List(13)="Элементы главной диагонали по возрастанию."
“Вывод отсортированных элементов главной диагонали матрицы
56
For i = 1 To 10
Список1.List(14)=Список1.List(14)&" "& Format(a(i, i), "##0.00") Next i
End Sub
Результаты работы программы
Пример 7. Циклы по параметру и по условию
Для каждого значения переменной x на отрезке [ a , b ] с шагом h вычислить с точностью 0,001 сумму:
n |
|
(3 |
tg x) 2arctgi |
|
|||||
а) S 1 i |
|
||||||||
|
|
|
|
|
|
. |
|
||
|
|
4 |
i |
|
|
|
|||
i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Значения n ( 5 n 15 ), |
a ( 1 a 0,7 ), b |
( 0,7 b 1) , h ( 0,15 h 0,3 ) |
|||||||
вводить с клавиатуры. |
|
|
|
|
|
||||
б) S 1 i |
(3 tg x) 2arctgi |
|
|||||||
|
|
|
|
|
|
, k первых значений функции больших по |
|||
|
|
4 |
i |
|
|
||||
|
|
|
|
|
|
|
|
|
|
модулю числа ε
( 0,0001 0,01).
57
Блоксхема
58
Интерфейс
Программный код
‘Объявление переменных
Dim i, k, n As Integer
Dim a, b, h, e, x, y, sa, sb As Single
‘Требование обязательного объявления переменных проекта
Option Explicit
Private Sub Комманда1_Click()
‘Ввод и преобразование данных n = Val(Текст1.Text)
a= Val(Текст2.Text)
b= Val(Текст3.Text)
h= Val(Текст4.Text)
e= Val(Текст5.Text)
‘Очистка списков
Список1.Clear
Список2.Clear
Список3.Clear
‘Вывод нулевых элементов списка
Список1.List(0) = "Аргумент" Список2.List(0) = "Ответ а" Список3.List(0) = "Ответ б"
‘Проверка принадлежности данных заданным интервалам
If n < 5 Or n > 15 Then Текст1 = "Вне интервала!": Exit Sub If a < -1 Or a > -0.7 Then Текст2 = "Вне интервала!": Exit Sub If b < 0.7 Or b > 1 Then Текст3 = "Вне интервала!": Exit Sub
If h < 0.15 Or h > 0.3 Then Текст4 = "Вне интервала!": Exit Sub
If e < 0.0001 Or e > 0.01 Then Текст5 = "Вне интервала!": Exit Sub
k= 0: sa = 0 :sb = 0
59
‘Организация цикла по х
For x = a To b Step h
‘Вычисление суммы n значений функции в цикле по параметру i
For i = 1 To n
y = ((-1) ^ i) * (3 + Tan(x)) * (2 * Atn(i)) / 4 ^ i sa = sa + y
‘Конец цикла по параметру i
Next i i = 0 y = e
‘Вычисление суммы значений функции больших или равных по модулю ‘числа е в цикле по условию
While Abs(y) >= e i = i + 1
y = ((-1) ^ i) * (3 + Tan(x)) * (2 * Atn(i)) / 4 ^ i sb = sb + y
‘Конец цикла по условию
Wend
“Вывод сумм в списки k = k + 1
Список1.List(k) = "x=" & Format(x, "#0.0") Список2.List(k) = "s=" & Format(sa, "##0.000") Список3.List(k) = "s=" & Round(sb, 3)
Next x
End Sub
Результаты работы программы
60
