Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



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

 




Переглядів: 451

<== попередня сторінка | наступна сторінка ==>
Sub Р1() | Процедури

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.