Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Как создать список
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
lenanel lenanel вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.10.2004
По умолчанию Как создать список - 20.10.2004, 20:03

Хочу прочитать вещественные числа, записанные в файл, и составить из них список. Либо сначала записав все это в базу данных, а потом findallом получить список, либо сразу список делать.
С базами данных по-моему проще, но все равно никак не работает.
Код:
domains
    file=infile
    rlist=real*
database
    numbers(real)
predicates
    read
clauses
    read:-readreal(X), X<>0, !, asserta(numbers(X)), read.
goal
    openread(infile, "myfile.txt"), readdevice(infile),
    read, findall(X, numbers(X), L), 
    closefile(infile), readdevice(keyboard).
и пишет, No Solution.

И как мне правильно обработать окончание чисел в файле? А то по-моему только из-за этого и не работает.
Ответить с цитированием
  (#2 (permalink)) Старый
lenanel lenanel вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.10.2004
По умолчанию Как создать список - 20.10.2004, 20:03

Хочу прочитать вещественные числа, записанные в файл, и составить из них список. Либо сначала записав все это в базу данных, а потом findallом получить список, либо сразу список делать.
С базами данных по-моему проще, но все равно никак не работает.
Код:
domains
    file=infile
    rlist=real*
database
    numbers(real)
predicates
    read
clauses
    read:-readreal(X), X<>0, !, asserta(numbers(X)), read.
goal
    openread(infile, "myfile.txt"), readdevice(infile),
    read, findall(X, numbers(X), L), 
    closefile(infile), readdevice(keyboard).
и пишет, No Solution.

И как мне правильно обработать окончание чисел в файле? А то по-моему только из-за этого и не работает.
Ответить с цитированием
  (#3 (permalink)) Старый
Mnior Mnior вне форума
Member
 
Сообщений: 487
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2002
По умолчанию Re: Чтение из файла, что не так? - 20.10.2004, 22:51

Цитата:
Originally posted by lenanel
[b]
Код:
clauses
    read:-readreal(X), X<>0, !, asserta(numbers(X)), read.
и пишет, No Solution.
Ясное дело, ведь нет "остановки".
Как только дойдёт то конца файла, readreal(X) даст fail, и соответственно весь предкат read даст fail.
А если добавить:
Код:
clauses 
    read:-readreal(X), X<>0, !, asserta(numbers(X)), read.
    read.
Видимо ты очепятился.
Ответить с цитированием
Ads
  (#4 (permalink)) Старый
Mnior Mnior вне форума
Member
 
Сообщений: 487
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2002
По умолчанию Re: Чтение из файла, что не так? - 20.10.2004, 22:51

Цитата:
Originally posted by lenanel
[b]
Код:
clauses
    read:-readreal(X), X<>0, !, asserta(numbers(X)), read.
и пишет, No Solution.
Ясное дело, ведь нет "остановки".
Как только дойдёт то конца файла, readreal(X) даст fail, и соответственно весь предкат read даст fail.
А если добавить:
Код:
clauses 
    read:-readreal(X), X<>0, !, asserta(numbers(X)), read.
    read.
Видимо ты очепятился.
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать двусвязный список и продублировать в нём все единицы. Tyurs92 Вопросы начинающих программистов 0 12.05.2011 19:24
Как создать динамичный список в С++ hazardhz Вопросы начинающих программистов 4 17.09.2009 10:47
Помогите пожалуста создать список из списков {{CaspeR}} Prolog 3 04.06.2007 23:32
Можно ли создать список названий бибилитек DLL Shturmovik Delphi 1 13.01.2007 22:20
Как создать двусвязный список zhenyarm Вопросы начинающих программистов 4 18.10.2005 14:54
Как создать список на множество в С++ iit3 Вопросы начинающих программистов 3 15.06.2005 13:04
Как создать линнейный однонаправленный список ggg Вопросы начинающих программистов 1 31.03.2005 16:45
Как создать список User в ActiveDirectory Kain Delphi 0 31.08.2004 16:41
Как создать список всех списков длины fest Prolog 2 28.06.2004 08:19
Как создать в меню список последних открывавшихся файлов Anonymous Delphi 2 04.02.2004 13:53
Как создать список инвертирования Anonymous Prolog 1 25.11.2002 15:55
Как создать третий список olyas Prolog 5 04.10.2002 18:27



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов