Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Procedurální (klasické) programování
Popisuje algoritmus – postup, jak vyřešit úlohu
2
Příklad programu v procedurálním programovacím jazyce (Pascal)
Procedure kvadraticka_rovnice (a,b,c:Real); Begin D:=b*b-4*a*c if D<0 then writeln ('neni reseni'); if D=0 then writeln ('jedno reseni:', -b/(2*a)); if D>0 then begin D:=sqrt(D); R1:=(-b+D)/(2*a); R2:=(-b-D)/(2*a); writeln ('Dve reseni:', R1, R2); end;
3
Neprocedurální (logické) programování
„Program“ je pouze popis situace, problému. Programátor nespecifikuje, jak problém řešit. To nechává na programu, respektive na překladači, či interpretu jazyka
4
Neprocedurální programovací jazyky
LISP AUTOLISP Prolog (SWI-Prolog)
5
Příklad programu v Prologu
Fakta pravidla
6
Fakta muz(tomas). muz petr). muz(jan). muz(jiri). muz(josef).
muz(lukas). muz(bartolomej). zena(lucie). zena(zdislava). zena(petra). zena(hana). zena(johana). zena(anna).
7
Fakta rodic(tomas,josef). rodic(tomas,anna). rodic(lucie,josef).
rodic(lucie,anna). rodic(petr,johana). rodic(petr,bartolomej). rodic(zdislava,johana). rodic(zdislava,bartolomej). rodic(jan,lukas). rodic(petra,lukas). rodic(jiri,tomas). rodic(jiri,petr). rodic(jiri,jan). rodic(hana,tomas). rodic(hana,petr). rodic(hana,jan).
8
Pravidla otec(X,Y) :- rodic(X,Y), muz(X).
matka(X,Y) :- rodic(X,Y), zena(X). dite(X,Y) :- rodic(Y,X). sourozenec(X,Y) :- rodic(Z,X), rodic (Z,Y). bratr(X,Y) :- sourozenec(X,Y), muz(X). sestra(X,Y) :- sourozenec(X,Y), zena(X). manzel(X,Y) :- dite(Z,X), dite(Z,Y), muz(X). manzelka(X,Y) :- dite(Z,X), dite(Z,Y),zena(X).
9
Dotazy muz(tomas) muz(anna) otec(tomas,josef) otec(X,josef)
dite(tomas,X) dite(X,_) otec(X,Y) sestra(X,Y) bratr(tomas,X)
10
Úkoly Napiše tato pravidla: dedecek(X,Y) babicka(X,Y) stryc(X,Y)
teta(X,Y) synovec(X,Y) neter(X,Y) bratranec(X,Y) sestrenice(X,Y)
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.