В задачах этого типа мы применяем циклы с заданным числом повторений, т.к. число повторений цикла известно к началу его выполнения.
Пример 4.1. Вычислить сумму элементов заданного двумерного массива.
Дано: n, m – количество строк и столбцов массива соответственно, массив А[n, m].
Найти S – сумму элементов массива.
Тест
Данные
Результат
N
M
A
S
2 1
4 3
Фрагмент алгоритма
Исполнение алгоритма
S = 0
нц
Дляi от 1 до n выполнить
нц
Дляj от 1 до m выполнить
S = S + a[i, j]
кц
кц
i
j
S
0+ a1,1 = 0 + 2 = 2
a1,1 +a1,2 = 2 + 1 = 3
a1,1 +a1,2 + a2,1 = 3 + 4 = 7
a1,1 +a1,2 + a2,1 + a2,2=7 + 3 = 10
Пример 4.2. Вычислить сумму элементов строк заданного двумерного массива.
Дано: n, m – количество строк и столбцов массива соответственно, массив А[n, m].
Найти S[n] – сумму элементов строк массива.
Тест
Данные
Результат
N
M
A
S
2 1
4 3
Фрагмент алгоритма
Исполнение алгоритма
нц
Для i от 1 до n выполнить
S[i] = 0
нц
Дляj от 1 до m выполнить
S[i] = S[i] + a[i, j]
кц
кц
i
j
S
S1 = 0
S1 = 0+ a1,1 = 0 + 2 = 2
S1 = a1,1 +a1,2 = 2 + 1 = 3
S2 = 0
S2 = 0 + a2,1 = 0 + 4 = 4
S2 = a2,1 + a2,2=4 + 3 = 7
В этом примере, в отличие от примера 4.1, мы нашли сумму элементов каждой строки матрицы. Поэтому для сохранения значений суммы мы использовали одномерный массив S[n], количество элементов в котором равно количеству строк матрицы.
Обратите внимание на то, где присваивается начальное значение переменной S. Если находится сумма всех элементов матрицы, то команда S = 0 записывается перед началом циклов. В результате получается значение S = 10. Если ставится задача нахождения суммы элементов строк матрицы, то команда S = 0 записывается внутри цикла по строкам матрицы, тогда результат представляет собой одномерный массив, в котором количество элементов равно количеству строк матрицы и S = (3, 7). Когда ставится задача нахождения суммы элементов столбцов матрицы, то команда S = 0 записывается внутри цикла по столбцам матрицы, тогда результат представляет собой одномерный массив, в котором количество элементов равно количеству столбцов матрицы и S = (6, 4).