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

