Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Turbo Prolog, Помогите доработать программу 
:(
    Опции темы
knyaz7773
Дата 19.12.2013, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.12.2013

Репутация: нет
Всего: нет



Помогите доработать программу на  Turbo Prolog.
Надо вычислить сумму ряда четных чисел. У меня работает если вводишь четные числа(если 4,то ответ 6).
А мне надо что бы можно было вводить нечетные числа. Помогите пожалуйста кто может.

domains
number,sum=integer

predicates
sum(number,sum)

clauses
sum(2,2).
sum(Number,Sum):-Number>0,
Next_number=Number-2,
sum(Next_number,Partial_Sum),
Sum=Number +Partial_Sum. 
PM MAIL   Вверх
Фантом
Дата 19.12.2013, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 6
Всего: 49



Добавьте еще одно правило:
Код

sum(1,1).

PM   Вверх
knyaz7773
Дата 19.12.2013, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.12.2013

Репутация: нет
Всего: нет



пробовал, если вводишь нечетные, то он и считает сумму нечетных.

Добавлено через 5 минут и 28 секунд
мне надо вводить нечетные числа, а считать счетные.
пример: вводим 7, а считать должен 2+4+6=12
PM MAIL   Вверх
DmitrySPb
Дата 19.12.2013, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.12.2013

Репутация: нет
Всего: нет



Так а проверка на четность где?

Я так понимаю, что надо найти сумму всех четных чисел, которые не больше заданного.

Т.е. проверяешь на четность, потом, если нечетное, отнимаешь 1, а дальше по твоему алгоритму.
Либо, как вариант, пляшешь не от твоего числа к нулю, а от нуля (двойки) к твоему числу.

Это сообщение отредактировал(а) DmitrySPb - 19.12.2013, 18:54
PM MAIL   Вверх
Фантом
Дата 19.12.2013, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 6
Всего: 49



Цитата(knyaz7773 @  19.12.2013,  18:03 Найти цитируемый пост)

мне надо вводить нечетные числа, а считать счетные.

Формулировать задачу полезно сразу.  smile 

Тогда добавляем другое первое правило:
Код

sum(N,S) :- Q=N mod 2, Q=1,Nn=N-1,sum(Nn,S).

Не самый эффективный вариант, но самый простой в смысле переделки кода.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.