Сначала (до i=5) удваиваются элементы массива 1, 2, 3, 4, 5. Получается соответственно 2, 4, 6, 8, 10. Затем, с i=6 удваиваются полученные значения (в обратном порядке). Получается 20, 16, 12, 8, 4.
Можно это всё расписать подробно, по шагам:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1 шаг цикла:
A [10] := 2*A[1]
1, 2, 3, 4, 5, 6, 7, 8, 9, 2
2 шаг:
A [9] := 2*A[2]
1, 2, 3, 4, 5, 6, 7, 8, 4, 2
3 шаг:
A [8] := 2*A[3]
1, 2, 3, 4, 5, 6, 7, 6, 4, 2
4 шаг:
A [7] := 2*A[4]
1, 2, 3, 4, 5, 6, 8, 6, 4, 2
5 шаг:
A [6] := 2*A[5]
1, 2, 3, 4, 5, 10, 8, 6, 4, 2
6 шаг:
A [5] := 2*A[6]
1, 2, 3, 4, 20, 10, 8, 6, 4, 2
7 шаг:
A [4] := 2*A[7]
1, 2, 3, 16, 20, 10, 8, 6, 4, 2
8 шаг:
A [3] := 2*A[8]
1, 2, 12, 16, 20, 10, 8, 6, 4, 2
9 шаг:
A [2] := 2*A[9]
1, 8, 12, 16, 20, 10, 8, 6, 4, 2
10 шаг:
A [1] := 2*A[10]
4, 8, 12, 16, 20, 10, 8, 6, 4, 2
Ответ: 8
Const
a = -0.5;
b = 2;
h = 0.15;
x1 = 0;
x2 = 3;
var
x, y: real;
begin
writeln('ТАБЛИЦА ФУНКЦИИ Y(X)');
writeln(' X Y');
x := x1;
repeat
if x < 1 then y := 1
else
if x <= 2 then y := a * sqr(x) * ln(x)
else y := exp(a * x) * cos(b * x);
writeln(x:4:2, y:12:7);
x := x + h
until x > x2 + 0.0000001
{добавка к х2 для компенсации погрешности представления h в ЭВМ}
end.
Тестовое решение:
ТАБЛИЦА ФУНКЦИИ Y(X)
X Y
0.00 1.0000000
0.15 1.0000000
0.30 1.0000000
0.45 1.0000000
0.60 1.0000000
0.75 1.0000000
0.90 1.0000000
1.05 -0.0268956
1.20 -0.1312715
1.35 -0.2734703
1.50 -0.4561482
1.65 -0.6816804
1.80 -0.9522144
1.95 -1.2697106
2.10 -0.1715608
2.25 -0.0684354
2.40 0.0263542
2.55 0.1056187
2.70 0.1645379
2.85 0.2007555
3.00 0.2142429