Все элементы двумерного массива A размером 10х10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы:
| Бейсик | Python |
|---|---|
FOR n = 1 TO 4 FOR k = n TO 4 A(n,k) = A(n,k) + 1 A(k,n) = A(k,n) + 1
NEXT k NEXT n
| for n in range(1, 5): for k in range(n, 5): A[n][k] = A[n][k] + 1 A[k][n] = A[k][n] + 1
|
| Паскаль | Алгоритмический язык |
for n:=1 to 4 do for k:=n to 4 do begin A[n,k] : = A[n,k] + 1; A[k,n] : = A[k,n] + 1; end;
| нц для n от 1 до 4 нц для k от n до 4 A[n,k] : = A[n,k] + 1 A[k,n] : = A[k,n] + 1 кц кц |
| Си++ | |
for (n = 1; n <= 4; n++) { for (k = n; k <= 4; k++) { A[n][k] = A[n][k] + 1; A[k][n] = A[k][n] + 1; } } | |
Сколько элементов массива в результате будут равны 1?
Операция A[n,k] : = A[n,k] + 1 при заданных n и k увеличивает на 1 элементы первых четырёх строк и столбцов, имеющих номера начиная с номера строки до 4.
Операция A[k,n] : = A[k,n] + 1 при заданных n и k увеличивает на 1 элементы строк, имеющих номера начиная с номера столбца до 4.
Нарисуем изменяющийся фрагмент числовой таблицы:
| 1 + 1 | 1 | 1 | 1 |
| 1 | 1 + 1 | 1 | 1 |
| 1 | 1 | 1 + 1 | 1 |
| 1 | 1 | 1 | 1 + 1 |
Видим, что операции пересеклись на 4-х элементах, т. е. 12 элементов будут равны 1.

