![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 18
|
![]()
Помогите найти ошибку в программе!
Вот задание: Написать рекурсивную программу вычисления суммы N первых членов арифметической прогрессии. А вот моя программа: Код:
Она работает, только считает через раз правильно!!! Я думаю, может где выделено там ошибка какая-то? Подскажите... Последний раз редактировалось Stilet; 25.06.2010 в 11:50. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
По-моему достаточно Else progress:=a1+progress(x-1)
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 18
|
![]()
Нет, так она вообще выдает результат, далекий от правильного ....
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я кнечно не силен в матике-матике, но предполагаю что тебе нужно вот что-то:
Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 18
|
![]()
То есть я должен вставить эту функцию в свою программу?
Я попробовал изменить => куча ошибок.... Объясните как |
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну вот у тебя есть function progress(x:word):extended;
Меняешь ее на function TForm1.prog(a,n,d:integer):integer; И в коде Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Не будет правильно считать.
Причина: на каждом шаге прогрессии будет добавляться величина a, которая, как я понимаю, должна являться первым элементом прогрессии. Решение: при n=1 присвоить величину, равную первому элементу прогрессии. Результатом работы функции может быть текущий элемент. А сумма должна передаваться в качестве параметра. Код получится вот такой: Код:
Вот самый первый код по идее должен быть рабочим, если написать вот так: Код:
Последний раз редактировалось mMAg; 25.06.2010 в 22:24. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Anton5,
формулу прогрессии приведите, пожалуйста! p.s. И ещё, когда речь идёт о том, что работает, но неправильно считает, хорошим тоном было бы сообщить исходные данные и полученный Вами результат. А иначе — всё что угодно может быть. Может Вы в расчётах ошибаетесь.. Или очередной член прогрессии неверно подсчитываете! |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Да он, наверно, уже исправил и вряд ли в скором времени появится.
Арифметические прогрессии все в школе учили, в классе эдак 6-7. Вот формула для нахождения n-ного члена: a(n) = a(n-1) + d;откуда легко находится, что: a(n) = a(0) + d*n; a(0) и d должны быть заранее известны. Обозначения, насколько я знаю, общепринятые. Хотя... мало ли чего там могут преподаватели на уроках или парах начитать. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
mMAg, спасибо за ответ.
я проглядел слово "арифметическая"... Цитата:
ну тогда Ваш пример код выше неверен ![]() Решение будет выглядеть как-то так: Код:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рекурсия | DrDre9991 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 22.05.2010 15:00 |
Рекурсия в Delphi | Ericnex | Помощь студентам | 2 | 05.05.2010 19:34 |
Delphi, рекурсия, как сделать все возможные N-ки чисел (сколько столбцов такая N-ка,в данном случае 3)? | domik | Помощь студентам | 5 | 26.09.2007 16:43 |