![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
End Sub
4) Оператор 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 (m£ 10, n£ 20). Знайти суми додатних елементів кожного стовпця. Позначення: 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 (n£ 50, m£ 50). Визначити для кожного рядка максимальний елемент і його індекси. (Передбачається, що в кожному рядку є єдиний максимальний елемент). Позначення: 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
|