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

