Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 11. Перед началом выполнения данного фрагмента эти элементы массива имели значения 20, 19, 33, 21, 42, 13, 12, 24, 4, 22, 6, 10 (т. е. A[0] = 20, A[1] = 19, …, A[11] = 10). Определите значение переменной s после выполнения фрагмента.
| Бейсик | Python |
|---|---|
N = 1 S = 1 FOR I = 1 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
| n = 1 s = 1 for i in range(1, 12): if A[i] < A[n]: s = s * i t = A[i] A[i] = A[n] A[n] = t
|
| Паскаль | Алгоритмический язык |
n:= 1; s:= 1; for i:=1 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 := 1 n := 1 нц для i от 1 до 11 если A[i] < A[n] то s := s * i t := A[i] A[i] := A[n] A[n] := t; все кц |
| С++ | |
n = 1; s = 1; for (i = 1; i < 12; i++) { if (A[i] < A[n]) { s = s * i; t = A[i]; A[i] = A[n]; A[n] = t; } }
| |
Данный алгоритм умножает значение переменной s на значение переменной i и меняет местами текущий элемент массива и элемент массива с номером n, если текущий элемент массива меньше элемента массива с номером n.
Изначальный порядок значений: 20, 19, 33, 21, 42, 13, 12, 24, 4, 22, 6, 10.
Первое изменение элементов: 20, 13, 33, 21, 42, 19, 12, 24, 4, 22, 6, 10, s = s · 5 = 5.
Второе изменение элементов: 20, 12, 33, 21, 42, 19, 13, 24, 4, 22, 6, 10, s = s · 6 = 30.
Последнее изменение элементов: 20, 4, 33, 21, 42, 19, 13, 24, 12, 22, 6, 10, s = s · 8 = 240.
Таким образом, значение переменной s после выполнения фрагмента программы равняется 240.
Ответ: 240.

