Тема: Программа по устранению неисправностей в фотоаппаратах Фирмы Nicon
domains
database
xpositive(symbol,symbol)
xnegative(symbol,symbol)
predicates
go
result
vopros(symbol,symbol)
pr(symbol)
to(symbol)
positive(symbol,symbol)
negative(symbol,symbol)
remember(symbol,symbol,symbol)
clear_db
clauses
go :-
nl,write("---------------------Программа по устранению неисправностей в фотоаппаратах Фирмы Nicon CoolPix P1 и P2.-------------------------------"),
nl,write("Вам будут заданы вопросы возможных проблем, для установки причины неисправности!Возможны два варианта ответа y -да, n-нет:"),
nl,nl,
result,
write("Нажмите пробел."),nl,
exit.
result :-
pr(X),!,nl,
write("Возможная причина: ",X,"."),nl,
clear_db.
result :-
nl,write("К сожалению не удалось выявить причину появелния вашей проблемы обратитесь за помощью в ближайший сервис фирмы Nicon "),
clear_db.
vopros(X,Y) :-
write(X, " ", Y," ?"),
readln(Reply),
remember(X,Y,Reply).
positive(X,Y) :-
xpositive(X,Y),!.
positive(X,Y) :-
not(negative(X,Y)),!,
vopros(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
pr("Фотокамера выключена; Экран выключен; Батарея неправильно установлена или не закрыта должным образом крышка батарейного отсека/ гднезда карты памяти") :-
to("Экран"),
positive("проблема","экран пуст"),!.
pr("Индекаторы могут быть скрыты.Выбирите значение отличное от Скрыть ифо для параметра Инфомация о фото в меню настроек экрана") :-
to("Экран"),
positive("проблема","на экране нет никаких индикаторов"),!.
pr("Слишком яркое освещение: переместитесь в менее освещённое место; Необходимо настроить яркость экрана; Загрязнения экрана отчистите экран") :-
to("Экран"),
positive("проблема","изображение на экрае трудно разглядеть"),!.
pr("выключена вспышка; Перекрыто окно вспышки; Объект слишком удалён для использования вспышки; Слишком большое отрицательное значение поправки") :-
to("Снимки"),
positive("проблема","снимки слишком тёмные"),!.
pr("Слишком большое положительное значение поправки экспозиции") :-
to("Снимки"),
positive("прблема","снимки слишком светлые"),
positive("проблема","на снимке слишком много случайно расположенных ярких точек"),!.
pr("При нажатии спусковой кнопки на половину объект съёмки не находился в зоне фокусировки.") :-
to("Снимки"),
positive("проблема","снимке не в фокусе"),
positive("проблема","мигал красный индикатор АФ"),!.
pr("Не использовали вспышку; Не использовали ф-ю 'Выбор лучшего кадра'; Установите камеру на штатив и используйте авто спуск") :-
to("Снимки"),
positive("проблема","снимоке не в фокусе"),
positive("проблема","снимок 'Смазан'"),!.
pr("Слишком длинная выдержка.Используйте вспышку") :-
to("Снимки"),
positive("проблема","на снимке слишком много случайно расположенных ярких точек"),
positive("проблема","имеются засвеченные места на снимке"),!.
to("Экран") :-
positive("Проблема ","с экраном"),!.
to("Снимки") :-
positive("Проблема","со снимками"),!.
goal
go.