Pr. 2
- Due Nov 19, 2021 by 7pm
- Points 9
- Submitting a file upload
- File Types pl
- Available after Oct 25, 2021 at 8am
A programkód minőségét is értékelem. A programokat kommentáljuk, adjunk értelmes neveket a változóknak.
- Írjuk meg a deriválás szabályait. Használjuk a négy alapműveletet (+,-,*,/), a hatványozást, melyet a '^' művelet jelöl, illetve a következő függvényeket: sin, cos, tg, log, exp; a változó legyen az ’x’ atom.
Például aKif=3*x+2
kifejezés deriváltja legyen aD=3
(írjuk meg a szabályokat úgy, hogy háromként értelmezhető legyen a rendszer válasza), pl.D=3*1+0*x+0
(mi látjuk, hogy 3).
1 -
Írjuk meg a kifejezések egyszerűsítésének a szabályait, mely egy automatikus deriválás eredményét "emészthetővé" teszi.
Például: az eredetiD=3*1+0*x+0
legyen egyszerűsítveE=3
-ra, illetveD=3*1*(x*2)*x
eredménye legyenE=6*x^2
.
1 - Adott egy lista, amelynek minden eleme szintén egy lista ( például L=[[a,b,c],[d,e],[f,g],[a,d],[e],[i,j,k,l],[m,n],[b]] ). Írjunk predikátumot, amely rendezi a lista elemeit a hosszuk szerint növekvő sorrendbe. Az egyenlő hosszúságú listák esetén a sorrend legyen az eredeti listában megegyező.
Például:?- lsort(L,SL).
SL = [[e],[b],[d,e],[a,d],[m,n],[a,b,c],[i,j,k,l]]
1 -
Vizsgáljuk meg a FILMEK tudásbázist, mely a movies.pl file-ban található. A file beolvasása a rendszerbe a:
consult(movies). _vagy_ [movies].
paranccsal lehetséges.Vegyük észre a
:-style_check(-discontiguous).
parancsot a movies.pl file-ban. Mi történik?A tudásbázisban az alábbi "típusú" tények vannak (% - komment):% movie(M,Y) -- movie M came out in year Y
movie(american_beauty, 1999).% director(M,D) -- movie M was directed by director D
director(american_beauty, sam_mendes).% actor(M,A,R) -- actor A played role R in movie M
actor(american_beauty, kevin_spacey, lester_burnham).% actress(M,A,R) -- actress A played role R in movie M
actress(american_beauty, annette_bening, carolyn_burnham).Írjuk meg a következő lekérdezéseket, használva - ha lehetséges és észszerű - a logikai és műveletet a predikátumok között:- Keressük meg, hogy két színész (vagy színésznő) jóPartner-e. jóPartner két színész, ha közösen játszott több, mint egy (1) filmben.
1 - Keressük meg hány különböző film szerepel a tudásbázisban.
1 - Keressük meg a favorit színészeket: azon 25 színész, melyek a legtöbb más társukkal jóPartnerek.
2
- Keressük meg, hogy két színész (vagy színésznő) jóPartner-e. jóPartner két színész, ha közösen játszott több, mint egy (1) filmben.
- Ábrázoljunk bináris fákat Prolog-ban. Egy bináris fa vagy üres, vagy tartalmaz egy gyökeret aminek van két gyereke, akik szintén bináris fák.
Az üres fa legyen a null atom, a nem-üres fát egy összetett kifejezéssel tudunk ábrázolni, aminek 3 paramétere van: 1 gyökér, és 2 gyerek (általunk választott sorrend).Példa bináris fára:
node(5, node(3, node(2, null, null), node(4, null, null)), node(6, null, null))
- Adjuk meg a levelek számát egy tetszőleges fában. Üres fának 1 levele van. Nem üres fa esetében pedig a bal- és jobb-oldali gyerekek leveleinek összege.
1 - Pre- In- Post-order bejárások. Az eredményt tetszőleges formában lehet megjeleníteni - lista / kiírás.
1
- Adjuk meg a levelek számát egy tetszőleges fában. Üres fának 1 levele van. Nem üres fa esetében pedig a bal- és jobb-oldali gyerekek leveleinek összege.