Спортсмен, начав тренировки, в первый день пробежал 10 км. Каждый следующий день он увеличивал дистанцию на 12 %. Написать программу, определяющую общую длину пробега за месяц и первый день с начала тренировок, после которого дистанция превысит 25 км.
Написать задачу нужно через циклы с постусловием и предусловием.
1. Цикл с предусловием
program lab062;
var dist,max,dist1:real;
mes,i:integer;
begin
writeln('Введите максимальную дистанцию');
readln(max);
dist:=10;
dist1:=10;
while dist<=max do
begin
Dist:=dist+dist*0.12;
mes:=mes+1;
end;
for i:=1 to 30 do
begin
dist1:=dist1+dist*0.12;
end;
writeln('Кол-во дней дистанции ',mes);
writeln('Дистанция',dist:8:4);
writeln('Дистанция за месяц ',dist1:10:4);
readln
end.
2. Цикл с постусловием
program lab062;
var dist,max,dist1:real;
mes,i:integer;
begin
writeln('Введите максимальную дистанцию');
readln(max);
dist:=10;
dist1:=10;
repeat
begin
Dist:=dist+dist*0.12;
mes:=mes+1;
end;
for i:=1 to 30 do
begin
dist1:=dist1+dist*0.12;
end;
until dist>max;
writeln('Кол-во дней дистанции ',mes);
writeln('Дистанция',dist:8:4);
writeln(' Дистанция за месяц',dist1:10:4);
readln
end.
Проблема в следующем : Когда я ввожу макс. дистанцию , например 25 , то в 1 проге общая дистанция за месяц чуть больше 100, а во 2 проге, с repeat, дистанция за месяц , если вводить опяьб же 25 получается 600, где я ошибся ?