|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.10.2013, 20:08 | #1 | |
Пользователь
Регистрация: 23.09.2013
Сообщений: 13
|
Помогите найти ошибки
В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.
Программа получает на вход действительные числа x и y и должна вывести одно натуральное число. В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров. Программа получает на вход действительные числа x и y и должна вывести одно натуральное число. Код:
Цитата:
Последний раз редактировалось Stilet; 05.10.2013 в 11:50. |
|
04.10.2013, 20:14 | #2 |
Пользователь
Регистрация: 23.09.2013
Сообщений: 13
|
так, с переменными накосячил это я нашел, а вот чем ему деление не нравится я не могу понять
|
04.10.2013, 20:24 | #3 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Потому что в Паскале операция деления "/" всегда возвращает с плавающей запятой ( действительное число ). Даже если 2/1, все равно.
Так что делайте ... z:Double; И потом x+z; тоже будет действительное. И т. д. Если надо, используйте функции округления. |
04.10.2013, 20:41 | #4 |
Пользователь
Регистрация: 23.09.2013
Сообщений: 13
|
Спасибо большое!
|
04.10.2013, 21:31 | #5 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
Не все так просто.
1. И почему принято решение о таком типе данных? Очевидно, что километры могут быть с метрами. Более того, при начислении процентов опят полезут дроби (вещественные числа) Так что измените тип на real, например. Предложенный код совсем никуда. Что значит этот цикл? Код:
Да и что он должен считать? Так понимаю, что это задача на проценты: взял кредит под процент и надо вычислить ... В нашем случае алгоритм вычисления может быть следующим: Поскольку: y = x*(1+k)^n, где y - пробежал в некоторый день; x - пробежал в первый день; k - процент n - номер дня, то можем записать: y/x= (1+k)^n, и логарифмируя имеем: n = ln(y/x)/ln(1+k); Так что решение не требует циклов: 1. Получаем, на входе, значения для x и y 2. Вычисляем, по формуле, номер дня: Код:
Как-то так, ...
Как-то так, ...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите найти ошибки | Adex | Общие вопросы C/C++ | 8 | 21.10.2009 19:32 |
помогите найти ошибки, Курсач горит | 4ernobil | Помощь студентам | 0 | 12.05.2009 19:42 |
Помогите найти ошибки | Qwoort | Общие вопросы C/C++ | 1 | 26.04.2009 12:50 |
С++.Задача на строки.Помогите найти ошибки | NamelessEndless | Помощь студентам | 7 | 26.05.2008 23:42 |
помогите найти причину ошибки! | НиКС | БД в Delphi | 3 | 10.05.2007 15:55 |