![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
Bobrina |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
Программа для нахождения суммы n первых чисел в геометрической прогресии. Не компилится, по моему не правильно написал вот это
и это
Пожалуйста, помогите розобратся. |
||||||
|
|||||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Судя по этому коду, Вам надо заново учить Паскаль. С самого начала. Тут трудно найти место, где нет ошибки. Вот, например:
1) Операторы завершаются символом ; 2) В конструкциях типа if <условие> then <оператор> else <оператор>; должны фигурировать либо одиночные операторы, либо составные операторы. В последнем случае надо использовать операторные скобки begin и end. 3) С чего это все переменные - целые? Естественно, что при делении целого на целое (нецелочисленном) результат целым быть не обязан. 4 Почему Вы решили, что это должно считать сумму геометрической прогрессии? Посмотрите внимательно на формулу этой суммы и сравните с тем, что у Вас написано. 5) Зачем Вам WinCrt? 6) Ну и наконец - если Вы и дальше будете оформлять код таким образом, то никогда ничему не научитесь. |
|||
|
||||
Bobrina |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
0)Вобщето я и учу Паскаль с самого начала.
1)Ошибка при компиляции идёт раньше непроставленных ; я их потом проставил 2)Спасибо, действительно не поставил. 3)Тип нецелой переменной?(var b: ?;) 4)Формула неправильная, не в этом суть, всё равно я не знаю как q возвести в степень n(Если расскажете, буду очень благодарен) 5)А без него Runеime error, помоему потому у меня Turbo Pascal для Винды. 6)Я только начал, буду исправлятся ![]()
Вот, только выдаёт S=-x.000000000e+00 Вопрос : Как избавится от нулей? И почему минус число? |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
3) Тип, похоже, уже нашли.
![]() 4) Специальной операции возведения в степень в Паскале нет, но ее можно успешно заменить такой вот конструкцией: exp(n*ln(q)) (получится q в n-ой степени). 6) Делайте все-таки отступы. Вам же понятнее будет, что Вы понаписали. "Минус число" получается потому, что так написана программа. Сами же задали, что если b1<b2, то S:=b1-b2. От нулей можно избавиться так: Writeln ('S=',s:7:3) ;. Вместо "7" и "3" подставить то, что хочется. Первое число - общее (максимально возможное) количество символов, которое будет у выводимого значения переменной, второе - количество символов для вывода дробной части. Соответственно, если уверены, что должно получиться что-то целое, то либо в качестве второго числа поставить нуль, либо вообще написать Writeln ('S=',s:7) ;. |
|||
|
||||
Bobrina |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
0)Огромное спасибо
![]() 3) Да нашёл ![]() 4)чтото мне кажется что в этом и косяк(о нём ниже) 6) Делаю. "Минус число" да ступил. От нулей помогло.
Собственно при q<1 & q=1 всё нормуль, а при q>1 неправильно считает. Я по тойже формулне на бумажке считаю, получается не так. помоему косяк в этой степени, если я неправильно её применил, исправьте пожалуйста. ![]() |
|||
|
||||
volvo877 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Потому, что по формуле надо сначала возвести Q в степень n, и только потом вычесть 1, а у тебя единица вклинилась не туда, куда надо... |
||||
|
|||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
||||
|
||||
Bobrina |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
Да действительно скобок недоставил. Теперь всё
![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |