Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
355 Кб
Скачать
☆
  1. Цикли в Visual Basic. Призначення циклів. Приклади.

Для багаторазового виконання одного чи декількох операторів призначені цикли. Visual Basic пропонує двох конструкцій: цикл For... Next, який використовується для виконання визначеної кількості ітерацій, та цикл Do... Loop, що завершується при виконанні заданої умови.

Цикл For.. .Next є найстарішою і найпростішою конструкцією:

For Лічильник = Початкове значення То Кінцеве значення Крок

Оператори

Next Лічильник

На початку виконання циклу значення Лічильник встановлюється рівним Початковому значенню. При кожній ітерації змінна Лічильник збільшується на 1 чи на величину Крок. Якщо вона досягає або стає більше (менше, при від’ємному кроці) Кінцевого значення, то цикл завершується і виконуються наступні оператори. Різниця між початковим і кінцевим значенням, ділена на величину кроку, складає число ітерацій.

Приклад: Роздрукуємо всі числа від 1 до 10.

Private Sub Command1_Click()

For i = 1 To 10

Print i

Next i

End Sub

Для безумовного виходу з циклу використовується оператор Exit For.

Оператор Do...Loop

Якщо кількість ітерацій повинна залежати від умови, використовують цикл Do... Loop. У залежності від позиції умови розрізняють два варіанти циклу Do.. .Loop.

Цикл, з умовою на початку

Dо {While | Until} Умова

Оператори

Loop

Цикл, з умовою наприкінці

Do

Оператори

Loop {While | Until} Умова

Якщо умова перевіряється на початку циклу, то він ніколи не виконується у випадку невиконання умови. Якщо ж перевірка відбувається наприкінці, цикл виконується як мінімум один раз, незалежно від того, виконана умова чи ні. Розглянуті варіанти циклів Do... Loop надають програмісту великі можливості організації повторюваних обчислень.

Оператор While...Wend

У циклі While... Wend послідовність команд виконується доти доки залишається істиною назначена умова.

While Умова

Оператори

Wend

Принцип дії такий, як і циклу Do While.. Loop. Тому замість нього простіше використовувати Do... Loop. Крім того, для циклу While.. .Wend немає оператора дострокового виходу типу Exit.

Private Sub Command1_Click()

While x = True

Print Time

Wend

End Sub

Приклад: Роздрукувати всі тризначні числа сума яких дорівнює 20.

Private Sub Command1_Click()

For i = 1 To 9

For j = 1 To 9

For k = 1 To 9

s = i + j + k

If s = 20 Then Print i; j; k

Next k

Next j

Next i

End Sub

Приклад. Знайти суму членів ряду

Private Sub Command1_Click()

s = 1: x = 1

n = 1: y = 0.1

f = 1

e = 0.001 ‘задана точність

While y >= e

For i = 1 To n

f = f * i

Next i

y = x ^ n / f

s = s + y

n = n + 1

f = 1

Wend

Label2.Caption = Str(s)

End Sub

  1. Наближені методи знаходження інтегралів.

Приклад: Знайти значення інтегралу

Private Sub Command1_Click()

h = (1 - 0) / 20

For x = 0 To 1 Step h

s = s + Exp(x)

Next x

Label2.Caption = Str(s * h)

End Sub

4.1 Метод прямоугольников

находится методом прямоугольников. Отрезок [a, b] разбивается на n частей x0 =a, x1 =a+h, ..., xn =b с шагом h=(b-a)/n. На каждом отрезке [xi , xi+1 ] вычисляется значения интеграла по формуле прямоугольников, таким образом:

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

Rn  = |S2n -Sn |

Если Rn  > 3*e, то количество точек разбиения удваивается.

ПрограPrivate Sub Command62_Click()

Form2.Show

Form6.Hide

End Sub

Private Sub Command63_Click()

Picture66.Cls

End Sub

Private Sub Command64_Click()

a = Text2

B = Text3

L = Text6

h = ((B - a) / L)

Picture66.Scale (-0.04, 5)-((B + 0.3), -B)

Picture66.Line (-1, 0)-((B + 5), 0)

Picture66.Line (0, -10)-(0, 20)

For i = 0 To 20 Step 0.5

Picture66.PSet (0, i)

Picture66.Print i

Next

For i = 0.25 To (B + 2) Step 0.25

Picture66.PSet (i, 0)

Picture66.Print i

Next

For i = a To B Step 0.001

Picture66.PSet (i, i / (i ^ 4 + 3 * i ^ 2 + 2)), RGB(255, 0, 0)

Next

'a = 1

'B = 2

'L = 10

'h = ((B - a) / L)

'h = 0.001

For i = a To B + h Step h

Picture66.Line (i, i / (i ^ 4 + 3 * i ^ 2 + 2))-(i, 0), , B

'Picture66.Line (i + h, (i + h / 2) / ((i + h / 2) ^ 4 + 3 * (i + h / 2) ^ 2) + 2)-(i, 0), , B

'Picture66.Line (i + h, (((i + h) / 2) / ((i + h) / 2) ^ 4 + 3 * ((i + h) / 2) ^ 2 + 2))-(i, 0), , B

Next End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]