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

