Переделать в Visual Prolog 7.5
Формулировка задачи:
Витя, Юра и Миша сидели на скамейке. В каком порядке они сидели, если известно, что Юра сидел слева от Миши и справа от Вити?
Помогите переделать в Visual Prolog 7.5
Листинг программы
- Predicates
- imya(string)
- sleva(string,string)
- ryad(string,string,string)
- sol
- Clauses
- imya(iyra).
- imya(misha).
- imya(vitya).
- sleva(X,Y):-imya(X),imya(Y),X=iyra,Y=misha.
- sleva(X,Y):-imya(X),imya(Y),X=vitya,Y=iyra.
- ryad(X,Y,Z):-sleva(Y,X),sleva(Z,Y).
- sol:-ryad(X,Y,Z),write(X,"-",Y,"-",Z),nl.
Листинг программы
- % Copyright
- implement main
- open core, console
- class predicates
- name: (string) procedure (i).
- sleva: (string,string) procedure (i,o).
- ryad: (string,string,string) procedure (o,o,o).
- clauses
- name(iyra).
- name(misha).
- name(vitya).
- sleva(X,Y):-name(X),name(Y),X=iyra,Y=misha.
- sleva(X,Y):-name(X),name(Y),X=vitya,Y=iyra.
- ryad(X,Y,Z):-sleva(Y,X),sleva(Z,Y).
- clauses
- run() :- console::init (),
- ryad(X,Y,Z),write(X,"-",Y,"-",Z),nl,
- _ = console::readLine().
- end implement main
- goal
- console::runUtf8(main::run).
Решение задачи: «Переделать в Visual Prolog 7.5»
textual
Листинг программы
- run() :-
- console::init (),
- (
- ryad(X,Y,Z),
- write(X,"-",Y,"-",Z), nl,
- fail;
- write("------------"), nl
- ),
- _ = console::readLine().
Объяснение кода листинга программы
В коде реализована функция, которая выводит на экран строку в формате -X-Y-Z-
, где X, Y и Z - это некоторые значения. После этого пользователю предлагается ввести строку. Если введенная строка пустая, то выводится сообщение ------------
.
Вот список действий:
- Инициализация консоли с помощью console::init().
- Вывод строки в формате
-X-Y-Z-
с помощью write(X,-
,Y,-
,Z), nl. - Если строка пустая, то выводится сообщение
------------
с помощью write(------------
), nl. - Предложение пользователю ввести строку с помощью console::readLine().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д