Определить, через сколько дней спортсмен будет пробегать больше 20 км - Pascal
Формулировка задачи:
Здравствуйте! Я бы хотела решить задачу про спортсмена, пробегавшего 10 километров во время тренировок.
Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня.Через сколько дней спортсмен будет пробегать больше 20 км? 100 км? Сколько он пробежал на 7 день?
Итак:
Если 10 дней - это 100 процентов, то 10 процентов от 10 километров - 1 километр ((10/100)*10=1). Значит, нужно прибавлять к 10 единицу до тех пор, пока не получится 100 (типа так: 10+1=11; 11+1=12; 12+1=13 и так далее).
В Excel у меня получилось, что 20 километров он пробежит за 11 дней;
100 километров он пробежит за 91 день.
на 7 день (не путать с суммарным пробегом, представленным на форуме) он пробежит (получается, обратное условие от последних двух примеров) - 16 километров.
Проблема в том, что я не знаю, как это выразить в паскаль. Я составила программу, но ошиблась и она показывает не 91 день, а 100 дней.
Помогите составить программу в Паскаль:
Заранее спасибо!
program SportA; var d:integer; s, p:real; begin s:=10; p:=1; while s<100 do begin s:=s+1; end; writeln('100 километров будет через - ', s:3:3); readln; end.
Решение задачи: «Определить, через сколько дней спортсмен будет пробегать больше 20 км»
textual
Листинг программы
var d,k:integer; s,p:real; begin p:=10; //норма в 1й день s:=10; //путь за 1 день d:=1;//1 день k:=0;//20 еще не пробежал writeln('Пробежал в 1 день 10 км, всего=10 км'); while s<=100 do begin d:=d+1; p:=p*1.1; s:=s+p; writeln('Пробежал в ',d,' день ',p:0:2,' км, всего=',s:0:2,' км'); if d=7 then writeln('На седьмой день пробежит ',p:0:3,' км'); if(s>=20)and(k=0)then begin writeln('20 км пробежит за ',d,' дн. s=',s:0:3,' км'); k:=1; end; end; writeln('100 километров пробежит за ',d,' дн. s=',s:0:3); end.
Объяснение кода листинга программы
- Создаются переменные d, k, s, p типа integer и real.
- Переменная p инициализируется значением 10, это норма в первый день.
- Переменная s инициализируется значением 10, это путь за один день.
- Переменная d инициализируется значением 1, это количество дней.
- Переменная k инициализируется значением 0, это количество пробежанных 20 км.
- Выводится сообщение о том, что в первый день пробежано 10 км, всего 10 км.
- Запускается цикл while, который выполняется до тех пор, пока значение переменной s не станет равным 100.
- Внутри цикла переменная d увеличивается на 1, переменная p умножается на 1.1, переменная s увеличивается на значение переменной p.
- Выводится сообщение о том, что в текущий день пробежано d км, всего s км.
- Проверяется условие d=7, если оно истинно, то выводится сообщение о том, что на седьмой день пробежит p км.
- Проверяется условие s>=20 и k=0, если оно истинно, то выводится сообщение о том, что на текущий день пробежит p км.
- Переменная k устанавливается равной 1, если выполнено условие s>=20 и k=0.
- Выводится сообщение о том, что 100 км пробежится за d дней, s км.
- Цикл while завершается, выводится сообщение о том, что 100 км пробежится за d дней, s км.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д