Sunteți pe pagina 1din 7

Ministerul Educaiei al Republicii Moldova

Facultatea Calculatoare Informatic i Microelectronic


Catedra Informatica Aplicat

Lucrare de Laborator Nr.3


Sisteme de inteligen artificial

Chiinau 2012

Scopul lucrrii: De implementat un meniu la programul Auto-magazin din


laboratorul nr.2. De utilizat scopuri interne.
Organizarea unui meniu:
Codul surs:
DOMAINS
marca,seria,combustibil,cutie,culoarea,accesorii = SYMBOL
anul,viteza,loc=INTEGER
volumul,pretul = REAL
PREDICATES
functie(INTEGER)
menu
sportcar(marca,seria,anul,viteza,combustibil,cutie,culoarea,volumul,accesorii,pretul,loc)
auto_familie(marca,seria,anul,viteza,combustibil,cutie,culoarea,volumul,accesorii,pretul,loc)
get_auto_list
get_auto_familie
get_auto_prest
get_auto_sport
get_auto_dame
get_auto_antic
auto_prest(marca,seria,anul,viteza,combustibil,cutie,culoarea,volumul,accesorii,pretul,loc)
auto_antic(marca,seria,anul,viteza,combustibil,cutie,culoarea,volumul,accesorii,pretul,loc)
auto_dame(marca,seria,anul,viteza,combustibil,cutie,culoarea,volumul,accesorii,pretul,loc)
write_auto(marca,seria,anul,viteza,combustibil,cutie,culoarea,volumul,accesorii,pretul,loc)
auto(marca,seria,anul,viteza,combustibil,cutie,culoarea,volumul,accesorii,pretul,loc)
CLAUSES
auto(bmw,z2,2000,160,diesel,automat,roz,1.3,yes,3000,2).
auto(bmw,d520,1990,260,benzin,manual,alb,4,yes,6000,4).
auto(ford,tranulsit,1986,180,benzin,manual,alb,2.1,yes,4000,4).
auto(wv,golf,1996,180,benzin,manual,negru,3.1,yes,9000,5).
auto(honda,civic,2008,280,benzin,automat,negru,2.1,yes,6000,4).
auto(ferrari,laguna,2010,260,benzin,automat,rosu,3.5,yes,360000,2).
auto(ciaika,z22,1948,80,benzin,manual,negru,1.1,no,50000,4).
auto(bentley,romeo,2010,220,benzin,automat,verde,3.0,yes,120000,2).
auto(ford,mustang,2006,260,benzin,automat,alb,3.0,yes,30000,2).
auto(mitsubishi,lanulcerX10,2012,200,benzin,automat,galben,4.3,yes,14000,2).
auto(wv,miniven,1998,180,hibrid,manual,albastru,3.3,no,10000,6).
auto_familie(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc):auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),Volumul>3.0,Viteza
<200,Loc>4.
auto_prest(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc):auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),Anul>2005,Viteza>
200,Pretul>110000,Acc=yes.
auto_dame(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc):auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),Anul>1990,Volumu
l<2.0,Viteza<200,Culoarea=roz.

auto_antic(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc):auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),Anul<1950,Pretul>
40000,Viteza<100.
sportcar(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc):auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),Anul>1990,Pretul>
20000,Viteza>180,Volumul>2.0.
menu:- nl,
write(" **********Inglis Semion Mi-101********************"),nl,
write(" **************************************************"),nl,
write(" | 1 | Afisarea tuturor automobilelor disponibile |"),nl,
write(" | 2 | Afisarea automobilelor de familie
|"),nl,
write(" | 3 | Afisarea automobilelor de prestigiu
|"),nl,
write(" | 4 | Afisarea automobilelor de sport
|"),nl,
write(" | 5 | Afisarea automebilelor de anulticariat |"),nl,
write(" | 6 | Afisarea automobilelor de dame
|"),nl,
write(" | 7 | Iesire din meniu!!!
|"),nl,
write(" **************************************************"),nl,
write("Alegeti optiunea:"),
readint(X),
functie(X),!,
menu.
menu:- menu.
functie(1):- clearwindow,get_auto_list.
functie(2):- clearwindow,get_auto_familie.
functie(3):- clearwindow,get_auto_prest.
functie(4):- clearwindow,get_auto_sport.
functie(5):- clearwindow,get_auto_antic.
functie(6):- clearwindow,get_auto_dame.
functie(7):- exit.
write_auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc):writef(" %-10 %-10 %-5 %-5 %-5 %-5 %-8 %-4 %-4 %-5 %-5\n" ,
Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc).
get_auto_list :write("Marca
Seria Anul Vit Comb Cut Cul Volumul Acc Pret Loc\n",
" ----------\t----------\t--------\t--------\t--------\n"),
auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
write_auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc) ,
fail.
get_auto_list.
get_auto_familie :write("Marca
Seria Anul Vit Comb Cut Cul Volumul Acc Pret Loc\n",
" ----------\t----------\t---------\t-------\t--------\n"),
auto_familie(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
write_auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc) ,
fail.
get_auto_familie.
get_auto_prest :write("Marca

Seria

Anul Vit Comb Cut Cul Volumul Acc Pret Loc\n",

" ----------\t----------\t---------\t--------\t--------\n"),
auto_prest(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
write_auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc) ,
fail.
get_auto_prest.
get_auto_sport :write("Marca
Seria Anul Vit Comb Cut Cul Volumul Acc Pret Loc\n",
" ----------\t----------\t---------\t---------\t--------\n"),
sportcar(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
write_auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc) ,
fail.
get_auto_sport.
get_auto_antic:write("Marca
Seria Anul Vit Comb Cut Cul Volumul Acc Pret Loc\n",
"----------\t---------\t----------\t--------\t--------\n"),
auto_antic(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
write_auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
fail.
get_auto_antic.
get_auto_dame:write("Marca
Seria Anul Vit Comb Cut Cul Volumul Acc Pret Loc\n",
"----------\t----------\t---------\t--------\t--------\n"),
auto_dame(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
write_auto(Marca,Seria,Anul,Viteza,Comb,Cut,Culoarea,Volumul,Acc,Pretul,Loc),
fail.
get_auto_dame.
Goal
makewindow(1,128,2,"Meniu",0,0,25,80),
menu.
Rezultatul programului.

Fig. 1 Afiarea tuturor automobilelor

Fig. 2 Afiarea automobilelor de familie

Fig. 3 Afiarea automobilelor de prestigiu

Fig. 4 Afiarea automobilelor de sport

Fig. 5 Afiarea automobilelor de anticariat

Fig. 6 Afiarea automobilelor pentru dame


Concluzie:
La efectuarea lucrrii de laborator am creat un meniu care va afia automobilele n
dependen de scopurile interne care au fost create in program. Am folosit predicatul
makewindow care va crea o fereastr de lucru n care va fi afiat informaia dorit. Predicatul
clearwindow l-am folosit pentru curarea ecranului.

S-ar putea să vă placă și