Условие задачи
В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов массива A[i] приведены в таблице.
| i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| A[i] | 14 | 13 | 15 | 8 | 4 | 12 | 30 | 21 | 22 | 16 | 5 | 9 |
Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
| Бейсик | Python |
s = 0
n = 1
FOR i = 0 TO 11
IF A(i) > A(n) THEN
s = s + A(i) + i
ELSE
A(n) = A(i)
END IF
NEXT i
|
s = 0
n = 1 for i in range(0, 12):
if A[i] > A[n]:
s += A[i] + i
else:
A[n] = A[i]
|
| Алгоритмический язык | Паскаль |
s := 0
n := 1
нц для i от 0 до 11
если A[i] > A[n] то
s := s + A[i] + i
иначе
A[n] := A[i]
все
кц
|
s := 0;
n := 1;
for i := 0 to 11 do
if A[i] > A[n] then
s := s + A[i] + i
else
A[n] := A[i];
|
| С++ | |
s = 0;
n = 1;
for (int i = 0; i < 12; i++)
{
if (A[i] > A[n])
s += A[i] + i;
else
A[n] = A[i];
}
|
|
Решение
Алгоритм последовательно сравнивает все элементы массива с 1-м, если элемент больше 1-го, алгоритм прибавляет его значение и индекс к S, а иначе заменяет 1-й элемент на следующий.
\(S: 14+0+15+2\)
3-й элемент меньше 1-го, поэтому 1-й становится равным 8, 4-й меньше 1-го, поэтому 1-й становится равным 4.
Все остальные элементы больше 4, поэтому
\(S=14+0+15+2+12+5+30+6+21+7+22+8+16+9+5+10+9+11=202\)
Ответ
202.


























