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

