Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Файлы
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
imported_W_M imported_W_M вне форума
Member
 
Сообщений: 82
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.10.2008
Thumbs down 06.11.2008, 19:19

Доброго времени суток. Помогите, пожалуйста подправить код следующей задчки:
Создайте предикат, вычисляющий количество отрицательных чисел в файле.
Код:
domains
 file=f
predicates
 count(real,file)
goal
 openread(f, "D:test.txt"),
 readdevice(f),
 count(S,f),closefile(f),
 write("S=",S),nl.
clauses
 count(S,f):- not(eof(f)),
           readreal(N),
           N<0,
       count(S1,f),!,
           S=S1+1.
count(0.0,f).
Проблема в том, что программа рассматривает только первое число в файле, а далее не идет. Наверное не работает перебор из-за N<0... Не очень понятно куда ж вставить это условие...
Пожалуйста,помогите. Заранее спасибо.
Ответить с цитированием
  (#2 (permalink)) Старый
imported_W_M imported_W_M вне форума
Member
 
Сообщений: 82
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.10.2008
По умолчанию 06.11.2008, 22:47

помогите,плиз
Ответить с цитированием
  (#3 (permalink)) Старый
imported_W_M imported_W_M вне форума
Member
 
Сообщений: 82
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.10.2008
Red face 08.11.2008, 11:29

Вот рабочий код. Программу подправил самостоятельно.
Код:
domains
 file=f
predicates
 count(real,file)
polILIotric(real,integer)
 goal

 openread(f, "D:test.txt"),
 readdevice(f),
 count(S,f),
closefile(f),
 write("S=",S),nl.
clauses
polILIotric(N,R):-
N<0, R=1;
N>0, R=0;
N=0, !.
 count(S,f):- not(eof(f)),
              readreal(N),
              polILIotric(N,R),
              count(S1,f), 
              S=S1+R.
  count(0.0,f).
Ответить с цитированием
  (#4 (permalink)) Старый
Elenka79 Elenka79 вне форума
Member
 
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.03.2006
По умолчанию 08.11.2008, 13:19

Количество, все таки должно быть числом целым, а не real. Ну может вам это и не важно)
Ответить с цитированием
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы Katty Maniako Pascal 0 31.01.2012 12:57
файлы LNK AnsweR_89 Любые вопросы от новичков 0 03.08.2011 20:13
Файлы юра 3 Форум программистов 5 30.05.2011 02:07
ФАЙЛЫ (текстовые файлы) dianochka Pascal 0 25.04.2011 23:31
lst - файлы Free Антивирусы 1 06.12.2010 21:41
QLF файлы Morlock Prolog 1 09.01.2009 16:18
Файлы imported_W_M Prolog 12 12.11.2008 23:12
Файлы OksanaIST Prolog 3 18.12.2007 22:51
файлы {{CaspeR}} Prolog 3 29.05.2007 22:52
Файлы strertkjh Pascal 1 28.05.2007 17:16
Можно ли создавать php-файлы, в которые вшиты другие файлы? feedbee PHP 6 04.12.2005 01:59



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