0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 3
1

Почему неверное решение..?

24.09.2008, 02:05. Показов 1540. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Задали задачу по лабе, задача простая...сделал, проверил - всё вроде работает, а препод не хочет принимать и говорит "будет неверно считать"...я на калькуляторе перепроверил вручную до 10 дней - всё до миллиметра сходится (( %)

Условие задачи:
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за N дней.


Обьясните, пожалуйста, почему прога не будет правильно считать и где ошибка в таком случае...заранее спасибо
Вложения
Тип файла: txt LABA.txt (423 байт, 28 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2008, 02:05
Ответы с готовыми решениями:

Подскажите, почему не запускается и почему не выводит решение по частям?
uses crt; label k; var x,y,c,b,a:real; k1,R1,R2,R3:integer; begin k: clrscr; writeln (' ...

неверное решение уравнения
Добрый день. Решаю вот это уравнение 3\chi {}^2{}-2\alpha \chi +2\alpha -3=0 вот мои...

Неверное решение выражения
Добрый вечер, уважаемые пользователи форума! Помогите, пожалуйста, разобраться с выражением. Само...

Неверное решение интеграла
Доброго времени суток! Помогите пожалуйста разобраться с кодом программы... Пронрамма должна...

8
Брюс Всемогущий
35 / 35 / 1
Регистрация: 02.09.2008
Сообщений: 256
24.09.2008, 05:27 2
Попробуй так показать:

Код
program lab_2;
uses
    crt;
var
   s:real;
   i,n:integer;
begin
  clrscr;
  write('Vvedite koli4estvo dnei:');
  readln(n);
  s:=10;
  if n<1 then
    writeln('Vu vveli nedopustimoe zna4enie')
  else
  begin
    for i:=1 to n do  s := s + 0.1 * s;
    writeln('Sportsmen za ',n,' d probegit ',a:0:3,' km');
  end;
  readkey;
end.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
24.09.2008, 09:22 3
г-н Фельдмаршал, смотрите условие, не в n-ый день, а за n дней.
Программа действительно все считает правильно, но нужно убрать x:=0; Обнуление этой переменной не нужно, может даже оказаться вредным. Мы ведь считаем х по формуле x:=0.1*s;, т.е х зависит только от s.
0
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 3
24.09.2008, 13:25  [ТС] 4
Цитата Сообщение от Puporev Посмотреть сообщение
г-н Фельдмаршал, смотрите условие, не в n-ый день, а за n дней.
Программа действительно все считает правильно, но нужно убрать x:=0; Обнуление этой переменной не нужно, может даже оказаться вредным. Мы ведь считаем х по формуле x:=0.1*s;, т.е х зависит только от s.


Спасибо, я попробую... но что-то мне кажется это не поможет...%)
0
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
24.09.2008, 18:07 5
Дело в том что код написан не идеально в смысле читабельности и оптимизации, но работает правильно. Единственное я проверял бы количество дней не только на минимальное значение if n<1 then writeln('Vu vveli nedopustimoe zna4enie') , а и
на максимальное, потому что когда я ввел число дней 1000 приложение упало из-за
переполнения этих переменных x,s,a:real;
вот. а в целом я думаю препод тебя развел!!!
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
24.09.2008, 18:40 6
когда я ввел число дней 1000 приложение упало
Смените Real на Extended и Ваши возможности резко возрастут, хотя предел должен быть, потому что если этот товарищ будет бегать по 24 часа в сутки, то вряд ли он пробежит больше 300 км за сутки.
0
4 / 4 / 0
Регистрация: 17.09.2008
Сообщений: 88
24.09.2008, 18:56 7
Цитата Сообщение от Puporev Посмотреть сообщение
Смените Real на Extended и Ваши возможности резко возрастут, хотя предел должен быть, потому что если этот товарищ будет бегать по 24 часа в сутки, то вряд ли он пробежит больше 300 км за сутки.
Да при чем если подходить с точки зрения физики, то она говорит, что ни чего не может двигаться быстрее скорости света .
Поэтому:

s[1] = 10км; - растояние которoе пробежал спортсмен за первый день
s[2] = s[1] + s[1] * 0.1 = s[1](1+0.1) = s[1] * 1.1;
s[3] = s[2]*1.1 = s[1] * 1.1^2 ;
s[k] = s[1]* 1.1^(k - 1) ; растояние за к-ый день

день = 24 часа;
v[k] = s[k] / 24(км/ч); - средняя скорость спортсмена если бы он бегал по 24 часа в сутки, после, v[k] можно сравнить со скорость света и найти максимально к;
Это так для размышления я так не делаю.
0
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 3
25.09.2008, 01:53  [ТС] 8
Цитата Сообщение от zema Посмотреть сообщение
Дело в том что код написан не идеально в смысле читабельности и оптимизации, но работает правильно. Единственное я проверял бы количество дней не только на минимальное значение if n<1 then writeln('Vu vveli nedopustimoe zna4enie') , а и
на максимальное, потому что когда я ввел число дней 1000 приложение упало из-за
переполнения этих переменных x,s,a:real;
вот. а в целом я думаю препод тебя развел!!!
Можно написать ограничение на макс количество дней, а при большом значении вывести "Спортсмен не добежал до конца...скончался" или "В этот знаменательный день наш спортсмен планеты Земля достиг 3ей космической, вырвался из околоземной орбиты и направился на Вселенскую Олимпиаду"))....но думаю реала вполне хватит. Подскажите как сделать идеально читабельно и оптимизировано...
0
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
25.09.2008, 03:10 9
друг "как сделать идеально читабельно и оптимизировано" не загоняйся ты пока-что по этой теме решай лабы дальше, я сегодня 8-ые закончил, мот подумаю на счёт 9-ой, а ты ещё ток на 2-ой сидишь и 3-ю делаешь, не загонялся бы ты...Давай об оптимизации будем думать тогда, когда на самом деле нам будет важна скорость выполнения и уменьшение выделения памяти на её выполнение
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2008, 03:10
Помогаю со студенческими работами здесь

fsolve предлагает неверное решение
Задаю систему уравнений: function F = myfun1(x) global C1 C2; F = ; Пытаюсь решить ее с...

Задачи по методам оптимизации. Имеется решение, но оно неверное
Помогите, пожалуйста переделать задания Задание 3. Сетевой график построен неверно. Задание...

Почему вычисление формулы дает неверное значение?
У меня есть задача: создать программу для вычисления математической формулы. Ввод данных...

Строки: почему выводится неверное количество символов?
Почему выводит количество символов 507, хотя массив равен 500 символов #include &lt;iostream&gt; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru