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

