Из prolog 5.2 в prolog 7.3 и выше

Узнай цену своей работы

Формулировка задачи:

можете пожалуйста переделать код из prolog 5.2 в prolog 7.3

Решение задачи: «Из prolog 5.2 в prolog 7.3 и выше»

textual
Листинг программы
implement main
    open core

constants
    className = "main".
    classVersion = "".

clauses
    classInfo(className, classVersion).

GLOBAL FACTS - db1
 strings_db1(string,integer)
 GLOBAL FACTS - db2
 strings_db2(string,integer)
GLOBAL DOMAINS
stringlist=string*
file=file_inout
class predicates
consonant:(char). % Согласная
create_db1: (stringlist) nondeterm. %Запись фактов в DB1
create_db2 % Запись фактов в DB2
nondeterm countCh(string,integer,integer) %Подсчет согласных в слове
 run 
create_rezult % Создание фактов с результатами вычислений
CLAUSES
consonant('b').consonant('c').consonant('d').consonant('f'). consonant('g').consonant('h').
consonant('j').consonant('k').consonant('l').consonant('m').consonant('n').consonant('p').
consonant('q').consonant('r').consonant('s').consonant('t').consonant('v').consonant('w').
consonant('x').consonant('z').
 run:-   %write("Имя файла с исходными строками ? "),       
          %readln(FileIn), 
   openread(file_inout, "с:\\text.txt"), readdevice(file_inout),
   create_db1(List),
   readdevice(keyboard), closefile(file_inout),   
   save("с:\\text_1.txt",db1),  
   create_db2, save("c:\\text_2.txt",db2), 
   openwrite(file_inout,"c:\\text_1.txt"),   
   writedevice(file_inout), 
   create_rezult,
    writedevice(screen), closefile(file_inout).
 %Создание DB1
 create_db1([X|List]):- not(eof(file_inout)),readln(X),  
  assertz(strings_db1(X,0), db1), create_db1(List).
    create_db1([]).
  %Создание DB2   
  create_db2:-  retract(strings_db1(X,N),db1), 
     countCh(X,N,M), !, 
     assertz(strings_db2(X,M),db2),   fail.
  create_db2.
    %Подсчет согласных в слове; М - выходной параметр 
  countCh("", N, M):-M=N,!.
  countCh(X,N,M) :-frontchar(X,Ch,T), consonant(Ch), N1=N+1, countCh(T,N1,M).
  countCh(X,N,M) :-frontchar(X,Ch,T),  countCh(T,N,M).
 % Создание выходного файла
create_rezult:- retract(strings_db2(X,N),db2), write(X), write(" "),write(N), nl, fail.
create_rezult.


end implement main

goal
    mainExe::run(main::run).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы