Определить, через сколько дней спортсмен будет пробегать больше 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.

Объяснение кода листинга программы

  1. Создаются переменные d, k, s, p типа integer и real.
  2. Переменная p инициализируется значением 10, это норма в первый день.
  3. Переменная s инициализируется значением 10, это путь за один день.
  4. Переменная d инициализируется значением 1, это количество дней.
  5. Переменная k инициализируется значением 0, это количество пробежанных 20 км.
  6. Выводится сообщение о том, что в первый день пробежано 10 км, всего 10 км.
  7. Запускается цикл while, который выполняется до тех пор, пока значение переменной s не станет равным 100.
  8. Внутри цикла переменная d увеличивается на 1, переменная p умножается на 1.1, переменная s увеличивается на значение переменной p.
  9. Выводится сообщение о том, что в текущий день пробежано d км, всего s км.
  10. Проверяется условие d=7, если оно истинно, то выводится сообщение о том, что на седьмой день пробежит p км.
  11. Проверяется условие s>=20 и k=0, если оно истинно, то выводится сообщение о том, что на текущий день пробежит p км.
  12. Переменная k устанавливается равной 1, если выполнено условие s>=20 и k=0.
  13. Выводится сообщение о том, что 100 км пробежится за d дней, s км.
  14. Цикл while завершается, выводится сообщение о том, что 100 км пробежится за d дней, s км.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5
Похожие ответы