Дан фрагмент программы, обрабатывающей двухмерный массив A[1..5,1..4]:
| Бейсик | Python |
|---|---|
k = 4 FOR m = 1 TO 4 k = k + 1 FOR n = 1 TO 5 k = m - k A(n,m) = n*n+m*m-2*k NEXT n NEXT m
| k = 4 for m in range(1, 5): k += 1 for n in range(1, 6): k=m-k A[n][m]=n*n+m*m-2*k
|
| Паскаль | Алгоритмический язык |
k:=4; for m:=1 to 4 do begin k:=k+1; for n:=1 to 5 do begin k:=m-k; A[n,m]:=n*n+m*m-2*k; end; end;
| k:=4 нц для m от 1 до 4 k:=k+1 нц для n от 1 до 5 k:=m-k A[n,m]:=n*n+m*m-2*k кц кц
|
| Си++ | |
k = 4; for (m = 1; m <= 4; m++) { k = k + 1; for (n = 1; n <= 5; n++) { k=m-k; A[n][m]=n*n+m*m-2*k; } } | |
Чему будет равно значение A[3,1]?
Найдем A[3,1]:
m=1, значит, первый цикл пройдет только один раз и из него выйдет k:= k + 1 = 4 + 1 = 5.
Второй цикл пройдет 3 раза:
1. k:=m - k = 1 - 5 = -4;
2. k:=m - k = 1 - (-4) = 5;
3. k:=m - k = 1 - 5 = -4.
Теперь уже вычислим A[3,1]:=3*3 + 1*1 - 2*(-4)=9 + 1 + 8 = 18.

