Для двумерного массива определить номер строки с максимальной суммой чётных положительных элементов - 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

Объяснение кода листинга программы

  1. Объявляется двумерный массив x(8, 6) типа LONG.
  2. В цикле заполняются ячейки массива x случайными значениями от 40 до -20 с шагом 20.
  3. Выводится содержимое массива x в формате #####.
  4. В цикле проверяются все элементы массива x на условие: x(i, j) > 0 AND x(i, j) MOD 2 = 0. Если условие выполняется, то переменная k увеличивается на единицу.
  5. Если условие выполняется, то в цикле суммируются все элементы массива x, удовлетворяющие условию.
  6. Если максимальная сумма (max) меньше текущей суммы, то максимальная сумма обновляется, а переменная imax запоминает номер строки.
  7. Если условие в пункте 4 не выполняется ни разу, то выводится сообщение TAKOY STROKI NET.
  8. Если условие в пункте 4 выполняется, то выводится сообщение Imax = imax.

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы