В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов равны 5, 8, 7, 11, 10, 12, 9, 6, 4, 13, 3, 15 соответственно, т. е. A[0] = 5, A[1] = 8 и т. д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
| Бейсик | Python |
|---|---|
N = 0 S = 0 FOR I = 1 TO 11 IF A(I) > A(N) THEN S = S + 1 T = A(I) A(I) = A(N) A(N) = t END IF NEXT I
| n = 0 s = 0 for i in range(1, 12): if A[i] > A[n]: s = s + 1 t = A[i] A[i] = A[n] A[n] = t
|
| Паскаль | Алгоритмический язык |
s:= 0; n:= 0; for i:=1 to 11 do if A[i] > A[n] then begin s := s + 1; t := A[i]; A[i] := A[n]; A[n] := t; end;
| s := 0 n := 0 нц для i от 1 до 11 если A[i] > A[n] то s := s + 1 t := A[i] A[i] := A[n] A[n] := t; все кц |
| С++ | |
n = 0; s = 0; for (i = 1; i < 12; i++) { if (A[i] > A[n]) { s++; t = A[i]; A[i] = A[n]; A[n] = t; } }
| |
Данный алгоритм увеличивает значение переменной s на единицу i и меняет местами текущий элемент массива и элемент массива с номером n, если текущий элемент массива больше элемента массива с номером n.
Начальный порядок значений: 5, 8, 7, 11, 10, 12, 9, 6, 4, 13, 3, 15.
Первое изменение элементов: 8, 5, 7, 11, 10, 12, 9, 6, 4, 13, 3, 15, s = 1.
Второе изменение элементов: 11, 5, 7, 8, 10, 12, 9, 6, 4, 13, 3, 15, s = 2.
Третье изменение элементов: 12, 5, 7, 8, 10, 11, 9, 6, 4, 13, 3, 15, s = 3.
Четвёртое изменение элементов: 13, 5, 7, 8, 10, 11, 9, 6, 4, 12, 3, 15, s = 4.
Пятое изменение элементов: 15, 5, 7, 8, 10, 11, 9, 6, 4, 12, 3, 13, s = 5.
Таким образом, значение переменной s после выполнения фрагмента программы равняется 5.
Ответ: 5.

