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