1)
const f0=1; fk=10; h=0.5;
var f:real; i:integer;
begin
f:=f0-h;
writeln('Фунты Кг');
for i:=1 to round((fk-f0)/h)+1 do
begin
f:=f+h;
writeln(f:4:1,f*0.4:7:3);
end;
end.
2)
const f0=1; fk=10; h=0.5;
var f:real;
begin
f:=f0-h;
writeln('Фунты Кг');
while f<fk do
begin
f:=f+h;
writeln(f:4:1,f*0.4:7:3);
end;
end.
3)
const f0=1; fk=10; h=0.5;
var f:real;
begin
f:=f0-h;
writeln('Фунты Кг');
repeat
f:=f+h;
writeln(f:4:1,f*0.4:7:3);
until f>=fk;
end.
Результат:
Фунты Кг
1.0 0.400
1.5 0.600
2.0 0.800
2.5 1.000
...
9.0 3.600
9.5 3.800
10.0 4.000
Var a,b,c: integer;
Begin
write('Ведите трёхзначное число: ');
readln (a);
b:=a div 100;
c:=a mod 100 div 10;
writeln('Число, полученное перестановкой цифр сотен и десятков: ',c,b)
End.
Var a,b,c,d: integer;
Begin
write('Ведите трёхзначное число: ');
readln (a);
b:=a div 100;
c:=a mod 100 div 10;
d:=a mod 10;
writeln('Число, полученное перестановкой цифр сотен и десятков: ',c,b,d)
End.
(PascalABCNET)
Сначала (до 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
Ответ:
1. 20
2. 30
Объяснение:
Это рекурсивный алгоритм, новые значения берутся из значений полученных ранее
F(1)=2
F(2)=F(2-1) + 2*2=2+4=6
F(3)=F(3-1) + 2*3=6+6=12
F(4)=F(4-1) + 2*4=12+8=20
Аналогично со 2 алгоритмом