Дан фрагмент программы, обрабатывающий двухмерный массив A размером nxn.
| Бейсик | Python |
|---|---|
FOR i = 1 TO n-1 FOR j = i+1 TO n IF A[i,1] < A[j,1] THEN k=A(i,1) A(i,1)=A(j,1) A(j,1)=k NEXT j NEXT i
| for i in range(1, n): for j in range(i+1, n+1): if A[i,1] < A[j,1]: k=A[i,1] A[i,1]=A[j,1] A[j,1]=k
|
| Паскаль | Алгоритмический язык |
for i:= 1 to n-1 do for j:=i+1 to n do if A[i,1] < A[j,1] then begin k:=A[i,1]; A[i,1]:=A[j,1]; A[j,1]:=k; end;
| нц для i от 1 до n-1 нц для j от i+1 до n если A[i,1] < A[j,1] то k:=A[i,1] A[i,1]:=A[j,1] A[j,1]:=k кц кц |
| Си++ | |
for (i = 1; i <= n-1; i++) { for (j = i+1; j <= n; j++) { if (A[i][1] < A[j][1]){ k=A[i][1]; A[i][1]=A[j][1]; A[j][1]=k; } } } | |
В этом фрагменте:
1) упорядочивается первая строка массива по убыванию
2) упорядочивается первый столбец массива по убыванию
3) заменяются элементы k-ого столбца таблицы
4) заменяются элементы k-ой строки таблицы
Обратим внимание, что в двойном цикле переменная i изменяется от 1 до n-1, а j – от 1 до n (на 1 шаг больше). Это означает, что с элементом a[j,1] будут по очереди сравниваться все элементы столбца 1, кроме последнего. Они выстротся от самого большого до самого маленького сверху вниз, т. е. по убыванию.
Но чтобы выбрать правильный ответ, можно было рассмотреть данный фрагмент программы:
...k:=A[i,1];
A[i,1]:=A[j,1];
A[j,1]:=k;
...
Эта операция меняет местами два элемента первого столбца, а значит все изменения происходят только в нём. Вариант ответа, в котором фигурирует только первый столбец, указан под номером 2.
Правильный ответ указан под номером 2.

