Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Prolog > Подсчет нечетных чисел в файле.


Автор: LomikXP 17.3.2010, 19:29
Здравствуйте, у меня проблемка с "not" возникла, сам код:
Код

domains
    file=in
    i=integer
    X=integer
predicates
    writeit(i,i,i)
    readwrite(i,i)
    find
clauses
    writeit(' ',X1,X2):-!.
    writeit(X,X1,X2):- /*проверка на нечетность, использую char потому что readint не пашет.*/
        X3=X-48,
        X4=X3 mod 2,
        X2=X1+X4.
    readwrite(X,X3):-
        readchar(X2),
        writeit(X2,X,X1),
        X3=X1,
        not(eof(in)), /*<- здесь загвостка*/
        readwrite(X1,X4),
        X3=X4.
    find:-
        openread(in,"f.txt"), 
        readdevice(in),
        readwrite(0,X),
        closefile(in),
        write(X).

т.е. вылетает после not(eof(in)).
Суть программы в топике.
Буду благодарен за объяснение моей ошибки (:

P.S. Turbo PROLOG 2.0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)