Пролог. Работа с файлами, списками и строками

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
pupushka
Сообщения: 2
Зарегистрирован: 19 мар 2013, 01:19

Помогите пожалуйста решить задачу:
Считать из файла слова и разделить их на 2 списка по следующему правилу: 1 список - слово с большим количеством гласных букв,2 список - согласных.
Полученные списки сохранить в файле
pupushka
Сообщения: 2
Зарегистрирован: 19 мар 2013, 01:19

вот я нарешала , выдает ошибку после ввода файла

Vvedite imya faila s ish slovami - Nas.txt

PROGRAM ERROR. 7002


global domains
file=file_in;file_out

domains
list=string*

predicates
nondeterm read_list(list)
nondeterm analiz(list,list,list)
glas(char)
nondeterm summa(string,integer,integer,integer,integer)
nondeterm start


clauses
glas('i').glas('o').glas('a').glas('e').glas('y').glas('u').

read_list([X|List]) if
not(eof(file_in)),readln(X),read_list(List).
read_list([]) if !.

analiz([],[],[]).
analiz([X|R],[X|R1],R2) if
summa(X,0,0,Ngl,Nsgl),Ngl>Nsgl,analiz(R,R1,R2).
analiz([X|R],R1,[X|R2]) if
analiz(R,R1,R2).

summa("",Ng,Nsgl,Ng,Nsgl).
summa(St,Ng,Nsgl,N1,N2) if
frontchar(St,Ch,R), glas(Ch),Ngl1=Ng+1,

summa(R,Ngl1,Nsgl,N1,N2).
summa(St,Ngl,Nsgl,N1,N2) if
frontchar(St,_,R),Nsgl1=Nsgl+1,summa(R,Ngl,Nsgl1,N1,N2).

start if
readln(NasName),concat("C:/",NasName,Nas),


write("Vvedite imya faila s ish slovami - "),
readln(Nas),nl,
openread(file_in,Nas),
readdevice(file_in),
read_list(List),
analiz(List,R1,R2),
readdevice(keyboard),
closefile(file_in),
openwrite(file_out,"777.txt"),writedevice(file_out),
write("Spisok s glasnymi - "),nl,write(R1),nl,nl,
write("Spisok s soglasnymi - "),nl,write(R2),nl,nl,
writedevice(screen),closefile(file_out),
readchar(_).

goal
start.
Ответить