Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % maznev software :)
- class lab11
- predicates
- ended : (integer X) determ.
- guess : (string X).
- data : (integer N [out], string X, string Y [out], integer* [out]) nondeterm.
- resolution : (integer*) determ.
- question : (integer X) determ.
- end class
- implement lab11
- class facts
- fact : (integer X, string Y).
- clauses
- guess(X) :-
- data(N, X, Y, Z),
- resolution(Z),
- !,
- console::write(X, " - ", Y, ", правило №", N),
- console::nl,
- guess(Y).
- guess("Посуда") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Столовые приборы") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Вилки") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Посуда для сервировки стола") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Тарелки") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Питьевая посуда") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Посуда для алкоголя") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Посуда для приготовления пищи") :-
- console::write("Посуду не удалось определить."),
- !.
- guess("Посуда для хранения пищи") :-
- console::write("Посуду не удалось определить."),
- !.
- guess(_).
- resolution([]).
- resolution([X | Y]) :-
- question(X),
- resolution(Y).
- ended(X) :-
- console::nl,
- Y = console::readLine(),
- assert(fact(X, Y)),
- Y = "Д".
- clauses
- question(X) :-
- fact(X, "Д"),
- !.
- question(X) :-
- fact(X, "Н"),
- !,
- fail.
- question(1) :-
- console::write("Эта посуда предназначена для того, чтобы не нужно было брать пищу руками?"),
- !,
- ended(1).
- question(2) :-
- console::write("Эта посуда стоит на столе во время приёма пищи?"),
- !,
- ended(2).
- question(3) :-
- console::write("Эта посуда используется для готовки?"),
- !,
- ended(3).
- question(4) :-
- console::write("Эта посуда нужна для того, чтобы было в чём хранить пищу?"),
- !,
- ended(4).
- question(5) :-
- console::write("Этим прибором прокалывают пищу/едят салаты?"),
- !,
- ended(5).
- question(6) :-
- console::write("Этим прибором едят супы?"),
- !,
- ended(6).
- question(7) :-
- console::write("Эта вилка имеет короткие зубцы?"),
- !,
- ended(7).
- question(8) :-
- console::write("Эта вилка имеет три зубца?"),
- !,
- ended(8).
- question(9) :-
- console::write("Эта вилка предназначена для горячих блюд?"),
- !,
- ended(9).
- question(10) :-
- console::write("В эту посуду накладывают пищу?"),
- !,
- ended(10).
- question(11) :-
- console::write("В эту посуду наливают напитки?"),
- !,
- ended(11).
- question(12) :-
- console::write("Эта посуда предназначена для супов?"),
- !,
- ended(12).
- question(13) :-
- console::write("Эта посуда предназначена для выкладывания бутербродов?"),
- !,
- ended(13).
- question(14) :-
- console::write("В эту посуду наливают алкоголь?"),
- !,
- ended(14).
- question(15) :-
- console::write("Эта посуда предназначена для безалкогольных напитков?"),
- !,
- ended(15).
- question(16) :-
- console::write("Эта посуда предназначена для некрепких напитков?"),
- !,
- ended(16).
- question(17) :-
- console::write("Эта посуда предназначена для крепких напитков?"),
- !,
- ended(17).
- question(18) :-
- console::write("Этой посудой режут пищу?"),
- !,
- ended(18).
- question(19) :-
- console::write("Эта посуда предназначена для варки пищи?"),
- !,
- ended(19).
- question(20) :-
- console::write("Эта посуда предназначена для жарки пищи?"),
- !,
- ended(20).
- question(21) :-
- console::write("Эта посуда пластиковая?"),
- !,
- ended(21).
- question(22) :-
- console::write("Эта посуда предназначена для хранения мучных изделий?"),
- !,
- ended(22).
- question(23) :-
- console::write("Эта посуда предназначена для хранения воды?"),
- !,
- ended(23).
- question(24) :-
- console::write("Эта посуда предназначена для хранения варений/солений?"),
- !,
- ended(24).
- clauses
- data(1, "Посуда", "Столовые приборы", [1]).
- data(2, "Посуда", "Посуда для сервировки стола", [2]).
- data(3, "Посуда", "Посуда для приготовления пищи", [3]).
- data(4, "Посуда", "Посуда для хранения пищи", [4]).
- data(5, "Столовые приборы", "Вилки", [5]).
- data(6, "Столовые приборы", "Ложки", [6]).
- data(7, "Вилки", "Рыбная вилка", [7]).
- data(8, "Вилки", "Десертная вилка", [8]).
- data(9, "Вилки", "Столовая вилка", [9]).
- data(10, "Посуда для сервировки стола", "Тарелки", [10]).
- data(11, "Посуда для сервировки стола", "Питьевая посуда", [11]).
- data(12, "Тарелки", "Глубокие тарелки", [12]).
- data(13, "Тарелки", "Плоские тарелки", [13]).
- data(14, "Питьевая посуда", "Посуда для алкоголя", [14]).
- data(15, "Питьевая посуда", "Стаканы", [15]).
- data(16, "Посуда для алкоголя", "Бокалы", [16]).
- data(17, "Посуда для алкоголя", "Рюмки", [17]).
- data(18, "Посуда для приготовления пищи", "Ножи", [18]).
- data(19, "Посуда для приготовления пищи", "Кастрюли", [19]).
- data(20, "Посуда для приготовления пищи", "Сковороды", [20]).
- data(21, "Посуда для хранения пищи", "Контейнеры", [21]).
- data(22, "Посуда для хранения пищи", "Хлебницы", [22]).
- data(23, "Посуда для хранения пищи", "Кувшины", [23]).
- data(24, "Посуда для хранения пищи", "Банки", [24]).
- end implement
- goal
- console::init(),
- console::write("Данная программа по наводящим вопросам определяет посуду.\n'Д' - да, 'Н' - нет.\n\n"),
- lab11::guess("Посуда").
Add Comment
Please, Sign In to add comment