[Закрыть]
 
popoff.donetsk.ua
Желание любить выдаёт утомлённость и пресыщенность собой; желание быть любимым, напротив, - тоску по себе, себялюбие. Любящий раздаривает себя; тот, кто хочет стать любимым, стремиться получить в подарок самого себя. /Фридрих Ницше/
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Функциональное и логическое программирование - помогите пожайлуста с программой на Turbo prolog

помогите пожайлуста с программой на Turbo prolog

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
Гость jamesmarsters url://forum.message:2617
помогите пожайлуста с программой на Turbo prolog
jamesmarsters

Здравствуйте уважаемые специалисты. У меня проблемы с написанием программы на Turbo Prolog.
Я привык писать программы на языках типа Pascale , Delphi, C++ . А с логикой Turbo Prolog, у меня проблемы.
Вот следующее условие:

Выберите некоторую форму задання базы данных, в которой содержатся сообщения об операциях с кредитными карточками. Каждая запись должна иметь информацию о фамилии лица, которое тратит деньги, о типе операции и количестве денег. Напишите программу, которая будет выдавать значение конечной суммы всех операций для конкретного лица.

Помогите пожалуйста с написанием программы. Заранее благодарен Сергей.

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:2618

Сергей,
Вам помочь или написать за Вас?

Если помочь, то Вы забыли сформулировать вопрос.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость admin at kiti dot com dot ua url://forum.message:2619
admin at kiti dot com dot ua

Да нет, я не халявшик который ничего не делает и просит других. Вот в чем моя проблема и до чего я дошош:

domains

name=symbol
summa=integer
mode=symbol
rezult=integer
op=load(name,summa)

predicates
      
      load(name,summa)
      rez(name,rezult)
      suma(integer,integer,integer)
      pluse(name,integer)
      new(integer,integer)
      verynew(integer,integer,integer)
clauses
     
     load(ivanov,500). //операция снятия денег
     load(petrov,600).
     load(sidorov,400).
     load(ivanov,400).
     load(ivanov,100).
     
     suma(Q,W,Z):-
          Z=W+Q.
     rez(G,X):-    //вот тут я выбирая все записи снятия денег допустим Иванова. Пролог мне выводит результаты Х=100,Х=500,Х=400 и вот тут то и возникает вопрос. Как мне получить не все эти значения а их суииу, тоесть 1000. Задача состоит в том что б посчитать общую сумму растрат пользователя иванова(или другого)
     
     load(G,K),           
       
       
       X=K.

Заранее спасибо за ответ.Хоть кому то не безразлично...

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:2621

Вам нужно воспользоваться встроенным предикатом findall для того, чтобы собрать все значения в один список и потом запрограммировать предикат нахождения суммы всех элементов этого списка.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость hkdkest url://forum.message:2837
hkdkest
Гость Сергец url://forum.message:2632
Сергец

Спасибо тебе, я при помощи этой функции написал программу. Ты реально из тех людей, которые не бросают слова на ветер. Я правда тебе благодарен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
Программное обеспечение любой сложности
koins.com.ua