Extras din laborator
Laboratorul numarul 1
Introducere în Limbajul Prolog
Cuvantul PROLOG vine de la PROgraming in LOGic. Prologul este un limbaj
declarativ, aceasta însemnând ca un program nu descrie cum se calculeaza o solutie, ci
consta din o multime de fapte si legaturi logice (reguli) care descriu relatiile pe care se
bazeaza aplicatia de rezolvat. În Prolog, pentru obtinerea unei solutii, utilizatorul pune
mai degraba o întrebare decât sa ruleze programul. Când se pune o întrebare, sistemul
cauta în baza de fapte si reguli pentru a gasi, prin deductie logica, raspunsul.
Cum lansam Prologul?
Pentru dezvoltarea programelor, vom folosi implementarea SWI-PROLOG.
Lansarea acestuia se face apasând butonul Start si efectuând selectiile Programs -> SWI
Prolog -> SWI Prolog. Pe ecran va apare fereastra aplicatiei si prompterul ? care arata ca
programul asteapta comenzi.
Comenzi uzuale
? – pwd.
Afiseaza directorul curent.
?-ls.
Afiseaza fisierele din directorul curent.
?-cd(’cale’).
Schimba directorul curent.
Exemplu:
?-cd(’c:/windows’).
Directorul curent devine c:windows.
?-halt.
Aceasta comanda încheie sesiunea de lucru curenta în SWI-Prolog.
Important: fiecare enunt în Prolog se termina cu caracterul punct (.).
Pentru a se afisa informatii cu privire la o comanda, apelam
?-help(nume_comanda).
Exemplu:
?-help(halt).
Faptele
Faptele reprezinta cea mai simpla forma de predicat din Prolog. Sintaxa pentru
fapte este urmatoarea:
nume_relatie(arg1, arg2, …, argN).
unde
nume_relatie este numele relatiei (al predicatului)
arg1, arg2, … - argumentele
N reprezinta aritatea predicatului nume_relatie.
Bineînteles, orice fapt se incheie cu punct (.). Un predicat de aritate 0 se poate
defini simplu: nume_predicat.
2
Exemplu de fapt:
frate(dan, maria).
’frate’ reprezinta numele relatiei, iar dan si maria reprezinta argumentele care fac
parte din aceasta relatie. Important de observat este ca atât numele relatiei, cât si
constantele ’dan’ si ’maria’ sunt scrise începând cu litera mica.
Exemplu
Sa presupunem ca ave m relatiile existente dintr-o familie si vrem sa punem
întrebari de genul ”este marian înrudit cu …” sau ”spuneti care sunt toate surorile lui
marian” s.a.m.d.
Ca argumente vom avea oameni, iar proprietatile pe care vrem sa le definim vor fi
tata, mama, frate, sora, …. Alegem trei predicate de baza, barbat, femeie si parinte si în
functie de ele vom descrie relatiile dintr-o familie.
Presupunem ca avem ca exemplu urmatoarea familie:
Andrei
Cristi Elena
Ana
Adriana Marius Ovidiu
George
În Prolog, reprezentam aceasta sub forma de fapte astfel:
barbat(andrei).
barbat(cristi).
barbat(marius).
barbat(ovidiu).
barbat(george).
femeie(adriana).
femeie(elena).
femeie(ana).
parinte(andrei, cristi).
parinte(andrei, elena).
parinte(cristi, adriana).
parinte(cristi, marius).
parinte(cristi, ovidiu).
parinte(elena, ana).
parinte(ana, george).
Preview document
Conținut arhivă zip
- Laborator 1.pdf
- Laborator 10.pdf
- Laborator 2.pdf
- Laborator 3.pdf
- Laborator 4.pdf
- Laborator 5.pdf
- Laborator 6.pdf
- Laborator 7.pdf
- Laborator 8.pdf
- Laborator 9.pdf