В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов равны 20, 19, 17, 41, 23, 12, 24, 16, 4, 13, 6, 15 соответственно, т. е. A[0] = 20, A[1] = 19 и т. д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
| Бейсик | Python |
|---|---|
s = 0 n = 0 FOR i = 0 TO 11 IF A(i) <= A(n) THEN s = s + i t = A(i) A(i) = A(n) A(n) = t END IF NEXT i
| s = 0 n = 0 for i in range(12): if A[i] <= A[n]: s += i t = A[i] A[i] = A[n] A[n] = t
|
| Паскаль | Алгоритмический язык |
s := 0; n := 0; for i := 0 to 11 do if A[i] <= A[n] then begin s := s + i; t := A[i]; A[i] := A[n]; A[n] := t end;
| s := 0 n := 0 нц для i от 0 до 11 если A[i] <= A[n] то s := s + i t := A[i] A[i] := A[n] A[n] := t все кц |
| Си++ | |
n = 0; for (int i = 0; i < 12; i++) if (A[i] <= A[n]){ s += i; t = A[i]; A[i] = A[n]; A[n] = t; }
| |
Данный алгоритм меняет местами текущий и нулевой элементы массива, если текущий элемент не больше нулевого элемента массива. А также накапливает сумму индексов поменянных элементов.
Изначальный порядок значений: 20, 19, 17, 41, 23, 12, 24, 16, 4, 13, 6, 15.
Первое изменение элементов: 19, 20, 17, 41, 23, 12, 24, 16, 4, 13, 6, 15. Теперь s = 1.
Второе изменение элементов: 17, 20, 19, 41, 23, 12, 24, 16, 4, 13, 6, 15. Теперь s = 3.
Третье изменение элементов: 12, 20, 19, 41, 23, 17, 24, 16, 4, 13, 6, 15. Теперь s = 8.
Последнее изменение элементов: 4, 20, 19, 41, 23, 17, 24, 16, 12, 13, 6, 15. Теперь s = 16.
Ответ:16.

