Sunteți pe pagina 1din 7

Ministerul Educaiei, Tineretului i Sportului al Republicii Moldova

UNIVERSITATEA DE STAT DIN MO DOVA

!atedra Auto"atica i Te#nolo$ii In%or"aionale

Lucrarea de laborator nr.1 Disciplina: &rolo$

Tema: &ro$ra"are lo$ic' (n li"ba)ul &RO O*+

A reali,atA veri%icat-

!o,"a Mariana Aurelia &repeli' dr. (n t.%i,ico/"ate"atice

!#iin'u 0123

1. Scopul lucrarii / Studierea ba,elor li"ba)elor &rolo$4 2. Sarcina lucrarii !ondiia proble"ei- !rearea unui pro$ra" prolo$ pentru a deter"ina care sunt relaiile dintre obiecte i de a obine in%or"aiile re%eritoare la obiecte i relaiile dintre ele. Noiuni Teoretice Prolog este un li"ba) speci%ic inteli$enei arti%iciale 5 &rolo$ / &ro$ra""in$ in o$ic 6 Ori$inea lui aparine lui Alain !al"aureur de la Universitatea din Marsilia, 7rana. Iniial a %ost conceput pentru anali,a le8ical'. A,i in "od curent e8ista "ai "ulte i"ple"ent'ri at9t open source c9t i proprietare. &rintre cele "ai bune i"ple"entari open source e8istente a,i se nu"ara s:i/prolo$ Un pro$ra" &RO O* este divi,at (n seciuni. Seciunile &RO O* sunt- do"ains, predicates, clauses, $oal. ;n seciunea domains se includ tipurile de obiecte 5do"eniul obiectelor6 de%inite de utili,ator. Nu"ele do"eniului este un identi%icator. E8ist' "ai "ulte tipuri de date- char, symbol, string integer, real. Tipuri de datechar < caractere (ntre apostro%, e8e"plu- =A=, >a=, >?=, >@=, >A=. integer < repre,int' "uli"ea nu"erelor (ntre$i cuprinse (ntre B0CDE i B0CDC string / repre,int' orice secven' de caractere scrise (ntre $#ili"ele, e8e"plu- +82+, +F2+, + ion+, Gprolo$+,+prolo$+, +@+. symbol < sunt per"ise dou' %or"ecu sin$ura restricie ca pri"a liter' este "ic', e8e"plu- F2, ion. o secven' de caractere "arcat' de $#ili"ele 5aceasta este %olosit' c(nd vre" s' introduce" spaii sau liter' "are la (nceput6, e8e"plu- +82+, +&RO O*+, +Turbo &rolo$+. &entru datele de tipul symbol, spre deosebire de tipul string se crea,' un tabel care se p'strea,' (n "e"oria intern', i deci c'utarea este "ai rapid'. Variabila < este un identi%icator care (ncepe cu o "a)uscul' i repre,int' un obiect necunoscut. Variabila cu nu"ele GH+ se nu"ete variabil anonim. &re,ena variabilelor anoni"e pe locul unui ar$u"ent indic' c' nu ne interesea,' valoarea le$at' de ar$u"ent, ci nu"ai e8istena ar$u"entului. Trans"iterea de valori pentru variabile se %ace pe ba,a unei le$'turi ce se stabilete (ntre valoare i variabil'. Constantele < sunt nu"e proprii i repre,int' obiecte particulare ale universului proble"ei, sau relaii particulare. E8ist' 0 tipuri de constante- atomi i numere. Atomii sunt constante si"bolice care (ncep cu o liter' i pot conine litere, ci%re i caractere +H +. E8ist' i alte caractere ce pot %or"a atomi speciali, care au o se"ni%icaie aparte (n li"ba). Atomii pot dese"na obiecte constante care sunt ar$u"entele predicatelor. E8e"plu- ato"ii "i#ai i "aria (n %aptul printe(mihai,maria); Atomii speciali + -/+ ato"ul + dac'+ diverse re$uli de construcie sintactic' a ato"ilor depind de i"ple"entare, / i 5and6 < re$uli cu con)uncii deoarece conin vir$ul'.

4 / sau 5or6 < re$uli cu dis)uncii deoarece conin punct i vir$ul'. ;n seciunea predicates se declar' structura tuturor predicatelor din pro$ra". 7or"a $eneral' este- nu"eHpredicat trebuie s' (nceap' cu o liter' "ic'. Ar$u"entele sunt constante. 7aptul este ur"at de punct. Arietatea unui predicat este nu"'rul de ar$u"ente4 dou' predicate cu acelai nu"e pot avea ariet'i di%erite. Ele trebuie declarate (n seciunea de predicate i corpul lor (n seciunea de clau,e. ;n seciunea clauses se scriu %aptele i re$ulile, care %or"ea,' ba,a de cunotinte. Clauzele sunt relaii care au %or"aT-/ I2, I0, ..., In T < este capul clau,ei I2, I0, ..., In < %or"ea,' corpul clau,ei Un fapt este un adev'r necondiionat i speci%ic' o a%ir"aie despre o anu"it' relaie. Regulile < sunt a%ir"aii, adev'rul c'rora este deter"inat de c'tre adev'rul "ai "ultor %actori. Re$ulile sunt nite raiona"ente 5deducii6. Goal Dup' ce s/au declarat %aptele i re$ulile poate %i declarat i scopul. Scopul deter"in' dac' are loc o anu"it' relaie dintre obiecte. Un $oal poate %i e8terior sau interior. 7or"a unui $oal coincide cu %or"a corpului unei re$uli. ;n ca,ul c(nd goal este exterior 5se introduce (n %ereastra de dialo$6 se caut' toate soluiile, dac' el conine variabile. Dac' nu conine variabile, atunci se caut' o sin$ur' soluie 5pri"a6. ;n ca,ul c(nd goal este (n interiorul pro$ra"ului 5declarat6 se caut' o sin$ur' soluie 5pri"a6.

Diagrama arborilui genealogic:


idia Victor

Nicolae

Ale8andru

Mariana

Adelina

Codesource:
do"ains sJsK"bol predicates parinte5s,s6 %e"eie5s6 barbat5s6 parintiHco"uni5s,s6 %rati5s,s6 "atusa5s,s6 unc#i5s,s6 bunel5s,s6 bunica5s,s6 clauses parinte5victor,nicolae6. parinte5victor,ale8andru6. parinte5victor,"ariana6. parinte5lidia,nicolae6. parinte5lidia,ale8andru6. parinte5lidia,"ariana6. parinte5ale8andru,adelina6. %e"eie5lidia6. %e"eie5"ariana6. %e"eie5adelina6. barbat5nicolae6. barbat5victor6. barbat5ale8andru6. parintiHco"uni5F,L6-/parinte5&,F6,parinte5&,L6,FMNL. %rati5F,L6-/ parintiHco"uni5F,L6,barbat5F6,FNML. "atusa5F,L6-/parintiHco"uni5F,&6,parinte5&,L6,%e"eie5F6. unc#i5F,L6-/parintiHco"uni5F,&6,parinte5&,L6,barbat5F6. bunel5F,L6-/barbat5F6,parinte5F,&6,parinte5&,L6. bunica5F,L6-/ %e"eie5F6,parinte5F,&6,parinte5&,L6.

Re ultatele:

7i$2

7i$ 0

7i$B

7i$3

7i$?

7i$ D

7i$ C ;n %i$ura 2 sunt puse (ntreb'rile 2.!ine este b'rbatO 0.!ine este %e"eieO B.E8ita predicat %e"eie in acest pro$ra"O ;n %i$ura 0 sunt puse (ntreb'rile 2.e8ista in pro$ra"ul nostru %e"eie cu nu"ele AdelinaO 0.!ine sunt p'rinii i cine sunt copiiO ;n %i$ura B sunt puse (ntreb'rile 2.!ine sunt p'riniiO 0.Ale8andru este p'rinte AdelinaO

;n %i$ura 3 sunt puse (ntreb'rile 2.!ine sunt !opiiO 0.!are sunt copii Ale8andruO B.!are sunt copii lui NicolaeO ;n %i$ura ? sunt puse (ntreb'rile 2.!ine i cu cine sunt %raiO ;n %i$ura D sunt puse (ntreb'rile 2.!ine este "'tu'O 0. !ine este unc#iO B.!ine este nepoata AdelineiO 3.cine este unc#iul AdelineiO ;n %i$ura C sunt puse (ntreb'rile 2.!ine este bunelO 0. !ine este bunic'O B.!are este nepoata lui idiaO

Conclu ie: E%ectu(nd aceasta lucrare de laborator sa %'cut cunotin' cu li"ba)ul de pro$ra"are prolo$ si unele %uncionalit'i cu" ar %i do"ains, predicates, clauses, $oal. Sa (nt(lnit %oarte "ulte obstacole cu" ar %i s J sK"bol parinte5s,s6 pun(ndu/"i (ntrebarea de ce se scrie sK"bol si nu strin$, dup ace sa studiat puin di pre,entarea o%erit' de c'tre pro%esor i tot odat' e8ers(nd in%or"atia de pe situl PiQipedia sa (neles ca se poate scri si strin$ ca de e8e"plu parinte5R idia+,+Victor+6 unde idia i Victor sunt strin$uri pute" o"ite sJsK"bol i la variabila parinte sa se poate scri in asa "od parinte5strin$,strin$6.

!ibliogra"ia: #ttps-SS:::.Koutube.co"S:atc#OvJr1)&U&UTQbL #ttp-SSro.:iQipedia.or$S:iQiS&rolo$H5li"ba)HdeHpro$ra"are6