Тема: Программа по выявлению неполадок в телевизорах Фирмы LG
domains
database
xpositive(symbol,symbol)
xnegative(symbol,symbol)
predicates
begin_analis
result
ask(symbol,symbol)
virus_is(symbol)
it_is(symbol)
positive(symbol,symbol)
negative(symbol,symbol)
remember(symbol,symbol,symbol)
clear_db
clauses
% User interface
begin_analis :-
nl,write("---------------------Программа по выявлению неполадок в телевизорах Фирмы LG.-------------------------------"),
nl,write("Отвечайте на вопросы системы о неполадках y-да, n-нет:"),
nl,nl,
result,
write("Нажмите пробел."),nl,
exit.
result :-
virus_is(X),!,nl,
write("Неполадка: ",X,"."),nl,
clear_db.
result :-
nl,write("К сожалению не удалось выявить причину появления ваших неполадок обратитесь за помощью в ближайший сервис-центр фирмы LG "), "),
clear_db.
ask(X,Y) :-
write(X, " ", Y," ?"),
readln(Reply),
remember(X,Y,Reply).
% Output mechanism
positive(X,Y) :-
xpositive(X,Y),!.
positive(X,Y) :-
not(negative(X,Y)),!,
ask(X,Y).
negative(X,Y) :-
xnegative(X,Y),!.
remember(X,Y,y) :-
asserta(xpositive(X,Y)). % Добавление положительного ответа
remember(X,Y,n) :-
asserta(xnegative(X,Y)), % Добавление отрицательного ответа
fail.
clear_db :-
retract(xpositive(_,_)), % Удаление положительных ответов
fail.
clear_db :-
retract(xnegative(_,_)), % Удаление отрицательных ответов
fail.
% Rules
virus_is("Вилка шнура пит. не включена в сеть;не вкл.питан. самого телевизора";
"перекл. на другой канал(слабый сигнал)") :-
it_is("Нет изображения"),
positive("наблюдается","отсутсвует картинка полностью"),
positive("наблюдается","изображение плохое"),
positive("наблюдается","изображение нечеткое "),!.
virus_is("Перекл. на другой канал(слабый сигнал);проверьте антенну"
"(подключение к гнезду телевизора);проверьте антенну(не обрван ли провод)"
" проверьте нет ли поблизости источника помех") :-
it_is("Нет изображения"),
positive("наблюдается","линии или полоски на изображении"),
positive("наблюдается","плохой прием некоторых каналов"),
positive("наблюдается","черно-белая передача"),!.
virus_is("Отсутствует или частично вышла из строя видеокарта") :-
it_is("Нет изображения"),
positive("наблюдается","включение монитора"),
positive("наблюдается","ошибка при тестировании видеокарты"), !.
virus_is("Поврежден один или все модуля памяти") :-
it_is("Нет изображения"),
positive("наблюдается","включение монитора"),
positive("наблюдается","ошибки при тестировании памяти"),
positive("наблюдается","появление сообщения о невозможности дальнейшей загрузки"),!.
virus_is("При перебое питания перегорел предохранитель в блоке питания. Необходима замена предохранителя") :-
it_is("Нет звука"),
positive("наблюдается","появление щелчков в блоке питания"),
positive("наблюдается","неприятный запах из корпуса"),!.
virus_is("Сгорел блок питания либо поплавилась обмотка сетевого шнура. Необходима замена.") :-
it_is("Нет звука"),
positive("наблюдается","неприятный запах из корпуса"),
positive("наблюдается","появление дыма"),!.
virus_is("Сгорела память или контроллер памяти. Требуется замена") :-
it_is("Нет звука"),
positive("наблюдается","отсутствие свечения лампочки работоспособности памяти"),!.
virus_is("Вышла из строя либо несовместима с данным оборудованием видеокарта. Требуется замена") :-
it_is("Нет звука"),
positive("наблюдается","свечение лампочки работоспособности памяти"),
positive("наблюдается","отсутствие свечения лампочки работоспособности видеокарты"),!.
it_is("Нет изображения") :-
positive("наблюдается","черный экран"),!.
it_is("Нет звука") :-
positive("наблюдается","отсутствие шума из динамиков вообще"),!.
goal
begin_analis.