Для двумерного массива определить номер строки с максимальной суммой чётных положительных элементов - QBasic
Формулировка задачи:
Для двумерного массива определить номер строки с максимальной суммой чётных положительных элементов.
На выходе имеем:
Вопрос: Как определить номер строки с максимальной
суммой с положительными чётными элементами массива.
Замысел такой: как бы превратить полученные суммы в
одномерный массив и уж после этого находить номер с
максимальной суммой как для одномерного массива.
Решение задачи: «Для двумерного массива определить номер строки с максимальной суммой чётных положительных элементов»
textual
Листинг программы
CLS RANDOMIZE TIMER DIM x(8, 6) AS LONG FOR i = 1 TO 8 FOR j = 1 TO 6 x(i, j) = 40 * RND - 20 PRINT USING "####"; x(i, j); NEXT: PRINT NEXT: PRINT FOR i = 1 TO 8 FOR j = 1 TO 6 IF x(i, j) > 0 AND x(i, j) MOD 2 = 0 THEN k = k + 1 END IF NEXT j, i IF k THEN FOR i = 1 TO 8 sum = 0 FOR j = 1 TO 6 IF x(i, j) > 0 AND x(i, j) MOD 2 = 0 THEN sum = sum + x(i, j) END IF NEXT j IF max < sum THEN max = sum imax = i END IF NEXT i PRINT "Imax ="; imax ELSE PRINT "TAKOY STROKI NET" END IF
Объяснение кода листинга программы
- Объявляется двумерный массив x(8, 6) типа LONG.
- В цикле заполняются ячейки массива x случайными значениями от 40 до -20 с шагом 20.
- Выводится содержимое массива x в формате
#####
. - В цикле проверяются все элементы массива x на условие: x(i, j) > 0 AND x(i, j) MOD 2 = 0. Если условие выполняется, то переменная k увеличивается на единицу.
- Если условие выполняется, то в цикле суммируются все элементы массива x, удовлетворяющие условию.
- Если максимальная сумма (max) меньше текущей суммы, то максимальная сумма обновляется, а переменная imax запоминает номер строки.
- Если условие в пункте 4 не выполняется ни разу, то выводится сообщение
TAKOY STROKI NET
. - Если условие в пункте 4 выполняется, то выводится сообщение
Imax = imax
.