Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект информатика.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.37 Mб
Скачать
  1. Оператор While...Wend

Цей оператор циклу є різновидом оператора Do…Loop...

Синтаксис оператора:

While умова

Блок операторів

Wend

Якщо умова має значення True, виконуються Блок операторів до Wend. Якщо умова має значення False, виконання відновляється з операторів, що записані поза Wend. Цикли WhileWend можуть мати будь-яку глибину вкладеності.

  1. Оператор For... Next

Цей оператор циклу можна зустріти в більшості мов програмування. Він використовується у випадках, коли відомо, скільки разів необхідно повторити виконання серії операторів. Синтаксис оператора:

For лічильник = початок To кінець [step крок]

Блок операторів

Next [лічильник]

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

Приклад 3. Дан масив Х=(12,24,67,38,56,69) щомісячного випуску продукції в 1-му півріччі. Визначити випуски продукції за 1- й і 2 - й квартали.

Sub Р3()

Dim x As Variant

Dim kv1 As Single, kv2 As Single, i As Integer

x=Array(12,24,67,38,56,69)

kv1 = 0: kv2= 0

For i = 1 To 3

kv1=kv1+x(i)

kv2=kv2+x(i+3)

Next i

MsgBox " випуск продукції за 1-ий квартал =" & kv1

MsgBox " випуск продукції за 2-ий квартал =" & kv2

End Sub

  1. Оператор For Each...Next

Цей оператор дозволяє робити обробку набору об'єктів (наприклад, елементів масиву даних). У цьому випадку немає необхідності використовувати лічильник циклу, тому що циклічний перегляд і обробка виробляється для певних елементів набору.

Синтаксис оператора:

For Each елемент In група

Блок операторів

Next [елемент]

Параметр елемент - змінна типу Variant (ця обов'язкова умова), що представляє елемент сімейства або масиву. Група - ім'я масиву або сімейства. Блок операторів виконується тільки один раз для кожного члена групи.

Найважливіше в операторі For Each…Next те, що не потрібно заздалегідь знати, скільки елементів містить масив або сімейство. Таким чином, не потрібно підраховувати число елементів або перевіряти досягнення кінця групи. Це дозволяє запобігти однієї з найбільш загальних помилок програмування: неправильну індексацію елементів масивів.

Приклад 4. Дано масив А=(ai), i=1,2,...,10. Знайти добуток додатних елементів.

Позначення: p - добуток додатних елементів.

Sub Р4()

Dim a(1 to 10) As Double

Dim p As Single, i As Integer, n As Variant

For i = 1 To 10

a(i) = Val(InputBox("Введіть "& str(i) & “ елемент масиву а"))

Next i

p = 1

For Each n In a

If n > 0 Then p = p * n

Next n

MsgBox "p=" & p

End Sub

Приклад 5. Дана матриця D=(dij), i= 1,2, . . . ,m; j=1,2, . . . ,n (m10, n20). Знайти суми додатних елементів кожного стовпця.

Позначення: sum[j] - сума додатних елементів j-го стовпця.

Sub Р5()

Dim d(1 to 10, 1 to 20) As Single, sum(1 to 20) As Single

Dim i As Integer, j As Integer, n As Integer, m As Integer

n = Val(InputBox("Введіть кількість рядків n"))

m = Val(InputBox("Введіть кількість стовпців m"))

For i = 1 To n

For j = 1 To m

d(i, j) = Val(InputBox("Введіть масив d"))

Next j

Next i

For j = 1 To m

sum(j) = 0

For i = 1 To n

If d(i, j) > 0 Then sum(j) = sum(j) + d(i, j)

Next i

Debug.Print sum(j)

Next j

End Sub

Приклад 6. Дана матриця З=(сij), i=1,2, . . .n; j=1,2,. . . m (n50, m50). Визначити для кожного рядка максимальний елемент і його індекси. (Передбачається, що в кожному рядку є єдиний максимальний елемент).

Позначення: max - максимальний елемент у рядку, jmax - номер стовпця максимального елемента.

Sub Р6()

Dim c(1 to 50, 1 to 50) As Double, max As Double

Dim i, j, n, m, jmax As Integer

n = Val(InputBox("Введіть кількість рядків n"))

m = Val(InputBox("Введіть кількість стовпців m"))

For i = 1 To n

For j = 1 To m

c(i, j) = Val(InputBox("Введіть масив c"))

Next j

Next i

For i = 1 To n

jmax = 1: max = c(i, 1)

For j = 1 To m

If c(i, j) > max Then max = c(i, j): jmax = j

Next j

Debug.Print "max= " & max & “ imax=” & i & " jmax=" & jmax

Next i

End Sub