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

