QBASICBOOK.ru: сайт про QB64

Опубликовано: 2018-06-01 08:00:00

Вложенные циклы и двумерный массив

В этой статье я постараюсь обойтись с минимумом теории и максимум практики.

В математике двумерные массивы носят название матрицы. Элементы двумерного массива (матрицы) имеют два номера: номер строки и номер столбца.

Например, запись А(N, M) означает массив из N-строк и M-столбцов:

А11 A12 ... A1j

A21 A22 ... A2j

........................

Ai1 Ai2 ... Aij

Если N = M, то говорят, что матрица – квадратная.

Наша задача: создать таблицу умножения при использовании вложенных циклов.

Прежде чем начать, нам необходимо понять, что же такое вложенные циклы.

Вложенные циклы – это циклы в программе, имеющие в теле цикла другие циклы.

Циклический алгоритм, содержащий в теле цикла циклы по другим переменным, называется многомерным циклом

При работе с многомерными циклами нужно помнить:

Рассмотрим пример вложенных циклов:


  1. FOR I = 1 TO 10
  2.   FOR J = 1 TO 10
  3.     'telo tsikla
  4.   NEXT J
  5. NEXT I

Оба случая соблюдаются.

Нижеприведенная программа выводит на экран таблицу умножения:


  1. FOR I = 1 TO 10
  2.   FOR J = 1 TO 10
  3.     'telo tsikla
  4.   NEXT J
  5. NEXT IN = 10
  6. DIM A(N, N) 'sozdayem tablitsu pri pomoshchi massiva 10 na 10
  7. FOR I = 1 TO N 'zadayem kolichestvo shagov i
  8.   FOR J = 1 TO N 'zadayem kolichestvo shagov j
  9.     A(I, J) = I * J 'otvet priravnivayem kak peremnozhit i na j
  10.     PRINT USING "####"; A(I, J); 'vyvodim na ekran tablitsu 10 na 10
  11.   NEXT J: PRINT 'zavershayem pervyy operator for...next
  12. NEXT I 'zavershayem vtoroy operator for...next

Рисунок 1 – Использование вложенных циклов и двумерных массивов

Рисунок 1 – Использование вложенных циклов и двумерных массивов

Рисунок 2 – Вывод таблицы умножения 10 на 10

Рисунок 2 – Вывод таблицы умножения 10 на 10

Вроде неплохая получилась таблица умножения. Да?

Решим задачу на закрепление материала.

Задача. Имеется экзаменационная ведомость по N-группам студентов. В каждой по M-человек. Вычислить количество успевающих и не успевающих студентов для каждой группы.


  1. INPUT "KOL-VO GRUPP: ", N
  2. INPUT "KOL-VO OTSENOK: ", M
  3. FOR I = 1 TO N
  4.   GOD = 0
  5.   NOTGOD = 0
  6.   PRINT "GRUPPA #"; I
  7.   FOR J = 1 TO M
  8.     INPUT "OTSENKA STUDENTA ", BALL
  9.     IF (BALL >= 4) AND (BALL <= 10) THEN
  10.       GOD = GOD + 1
  11.     ELSE
  12.       NOTGOD = NOTGOD + 1
  13.     END IF
  14.   NEXT J
  15.   PRINT "V GUPPE "; I, "USPEV = "; GOD
  16.   PRINT "V GRUPPE "; I, "NEUSPEV = "; NOTGOD
  17.   GODF = GODF + GOD
  18.   NOTGODF = NOTGODF + NOTGOD
  19. NEXT I
  20. PRINT "VSEGO NA FAKULTETE USPEVAYUSHCHIKH "; GODF
  21. PRINT "VSEGO NA FAKULTETE NE USPEVAYUSHCHIKH "; NOTGODF

Рисунок 3 – Пример решения задачи на вложенные циклы

Рисунок 3 – Пример решения задачи на вложенные циклы

Рисунок 4 – Результат решения задачи

Рисунок 4 – Результат решения задачи

Цикл по переменной I является внешним, переменной J – внутренним. Тело цикла по J имеет разветвляющийся алгоритм. Тело цикла по I это весь цикл по J. Таким образом, вложенные циклы организуются по принципу «матрешки» (внешний цикл открывается первым и закрывается последним по отношению к внутреннему).

Спасибо за прочтение этой статьи.

 

Прикрепленные файлы:

< Предыдущая статья
Обработка массива при помощи WHILE...WEND
Следующая статья >
Считаем факториал числа N

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.