:
a)
b)
c)
d)
:
PROLOG
(Prolog) , , .
PROLOG , , MYCIN. . , , PROLOG, . PROLOG , .
LISP
(LISP, . LISt Processing ) , , .
. ; , , . Emacs.
, . , , " ", - . Simkit . .
- , . , . . , +, VP-Expert.
3.
3.1
-:
|
|
2 -
3.2
3 -
, , , --.
1. . .- .: , 1990.
2. .. .- .: , 1994.
3. . .- .: , 1991.
4. .. . . - .: , 1973.
5. .. - . - .-: - , 1992.
database
yes (symbol)
no (symbol)
predicates
begin
answer
question(symbol)
sotka(symbol)
priznak(symbol)
add_to_database(symbol,char)
input_simbol(char,char)
otvet(char)
repeat
clear_from_database
goal
begin.
clauses
begin:-
makewindow (2,23,30," klassifikaciya Sotovyh telefonov",0,0,25,80),
gotowindow(2),
nl,write ("Otvette na voprosy:"),nl,nl,
answer,
not(clear_from_database),
readchar(X),
nl,nl,nl,nl,
write ("Nfzhmite lubuu klavishu"),
removewindow,
exit.
answer:-
sotka (X),!,nl,
write (" Otvet: ",X,"."),nl.
question(Y):-
write ("Vopros: ",Y,"? "),
otvet(X),
write(X),nl,
add_to_database (Y,X).
input_simbol(C,'y'):- C='y',!.
input_simbol(C,'n'):- C='n',!.
input_simbol(C,'y'):- C='Y',!.
input_simbol(C,'n'):- C='N',!.
otvet(C):-
repeat,
readchar(X),
input_simbol(X,C),!.
repeat.
repeat:-repeat.
priznak (Y):-
yes (Y),!.
priznak (Y):-
not (no (Y)),
question (Y).
add_to_database (Y,'y'):- assertz (yes (Y)).
add_to_database (Y,'n'):- assertz (no (Y)),fail.
clear_from_database:- retract (yes(_)),fail.
clear_from_database:- retract (no(_)),fail.
sotka("Sony Ericsson"):-
priznak("U Vas NE sensornyi telefon?"),
priznak("U nego cvetnoy ekran?"),
priznak("Est Camera?"),
priznak("Upravlyaete Joystikom?").
sotka("Fly"):-
priznak("U Vas NE sensornyi telefon?"),
priznak("U nego cvetnoy ekran?"),
priznak("Est Camera?"),
priznak("Vy ne upravlyaete joystikom?").
sotka("Motorolla"):-
priznak("U Vas NE sensornyi telefon?"),
priznak("U nego cvetnoy ekran?"),
priznak("net Camery?").
sotka("Siemens"):-
priznak("U Vas NE sensornyi telefon?"),
priznak("Ecran U Vas cherno-beliy?"),
priznak("V telefon vstroen fonarik?").
sotka("Nokia 3310 aka Kirpich"):-
priznak("U Vas NE sensornyi telefon?"),
priznak("Ecran U Vas cherno-beliy?"),
priznak("V telephone net fonarika?").
sotka("iPhone"):-
priznak("Sensorniy ekran?"),
priznak(" Operacionnaya Sistema - iOS?").
sotka("HTC/Samsung"):-
priznak("Sensorniy ekran?"),
|
|
priznak("Operacionnaya Sistema - Android?").
sotka("Dannoi klassifikacii ne obnaruzheno").
4
5
6