Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2016, 12:28   #1
mopugu6565
 
Регистрация: 21.10.2016
Сообщений: 4
По умолчанию Задача про спортсмена!

*можно и паскаль, и visual basic*
Здравствуйте! Я бы хотел решить задачу про спортсмена, пробегавшего 10 километров во время тренировок.
Каждый второй день (то есть через день) он увеличивал дневную норму на 10% от нормы предыдущего дня.Через сколько дней спортсмен будет пробегать больше 20 км? Сколько он пробежал на 7 день? Какой суммарный путь он пробежит за 30 дней.

вот что получилось, с расчетом суммы за 30 дней, но все равно работает криво

Код:
Dim a As Single
        a = 10
        For i = 1 to 30 do
            If (i Mod 2 = 1) Then
                a = a * (100% + 15%) / 100%
            Else
                a = a + a
            End If
       next
        Console.WriteLine(a)

Пожалуйста, оформляйте Ваш код согласно правилам.
Заранее спасибо за помощь!

Последний раз редактировалось Вадим Мошев; 28.10.2016 в 22:04.
mopugu6565 вне форума Ответить с цитированием
Старый 28.10.2016, 12:44   #2
Zams
Пользователь
 
Аватар для Zams
 
Регистрация: 25.10.2016
Сообщений: 15
По умолчанию

Код:
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;
end.
Zams вне форума Ответить с цитированием
Старый 28.10.2016, 12:44   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от mopugu6565 Посмотреть сообщение
Через сколько дней спортсмен будет пробегать больше 20 км? Сколько он пробежал на 7 день? Какой суммарный путь он пробежит за 30 дней.
Какой ответ при а = 10 верный?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.10.2016, 12:54   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

На любой день можно и без цикла считать, примерно как в сложных процентах: a*1.1^(i/2)
i - номер дня от 1. В формуле деление нацело

А чего в условии 10%, а считаешь для 15%?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.10.2016, 13:12   #5
mopugu6565
 
Регистрация: 21.10.2016
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Zams Посмотреть сообщение
Код:
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;
end.
Спасибо вам огромное!
mopugu6565 вне форума Ответить с цитированием
Старый 28.10.2016, 17:32   #6
Zams
Пользователь
 
Аватар для Zams
 
Регистрация: 25.10.2016
Сообщений: 15
По умолчанию

Не за что.
Zams вне форума Ответить с цитированием
Старый 28.10.2016, 17:45   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не, ну так же нельзя!

Zams, а где Вы в своём коде учли условие
Цитата:
Каждый второй день (то есть через день) он увеличивал дневную норму на 10% от нормы предыдущего дня.
?!

или это в условии ошибка?
и имелось в виду Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. ?!

mopugu6565, как правильно звучит условие задачи?

Последний раз редактировалось Serge_Bliznykov; 28.10.2016 в 17:48.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести на экран пробег спортсмена за каждый день и суммарный пробег KriSSka Паскаль, Turbo Pascal, PascalABC.NET 7 07.04.2012 00:22
Задача про списки Алекс12345 Паскаль, Turbo Pascal, PascalABC.NET 2 20.08.2011 19:33
Задача про рыбалку Dj Troy Паскаль, Turbo Pascal, PascalABC.NET 8 06.04.2011 08:53
Определить лучшего спортсмена VNS Помощь студентам 4 06.12.2009 12:57
Найти линейным поиском с барьером фамилию спортсмена показавшего результат 5 часов. Liver Помощь студентам 1 21.12.2008 14:53