Lab 3
-
Upload
lucicapatulea -
Category
Documents
-
view
212 -
download
0
description
Transcript of Lab 3
2
216 Structura unui program Prolog 5 Laborator 3
STRUCTURA UNUI PROGRAM PROLOG Noiuni teoreticeSeciunea DOMAINS Seciunea domains permite declararea domeniilor (tipurilor) argumentelor predicatelor. Exist dou clase de tipuri, tipul elementar i tipul complex, care la rndul lui se submparte n: tipul compus i tipul list. Tipul standard Tipul elementar poate fi standard sau definit de utilizator. Tabelul 1 descrie tipurile standard cele mai des utilizate n programe implementate n limbajul Prolog. Uneori este util s se declare un domeniu atunci cnd se dorete clarificarea unei poriuni din seciunea predicates. Prin declararea unui domeniu propriu, cu un nume personalizat, mai uor i mai simplu se pot da nume sugestive argumentelor predicatului respectiv. Cuvnt rezervatSemnificaieExemple
byteNumr ntreg pe 8 bii fr semn, cuprins ntre 0 ( 255 0, 56,234
shortNumr ntreg pe 16 bii, independent de platform, cuprins ntre -32768 ( 32767+34,88,332
ushortNumr ntreg pe 16 bii fr semn, independent de platform, cuprins ntre 0 ( 655350,32,987
integerNumr ntreg cu semn avnd dimensiunea dependent de arhitectura calculatorului+45,78,986
longNumr ntreg lung pe 32 bii, independent de platform-5550,21, 198700
ulongNumr ntreg lung pe 32 bii fr semn, independent de platform0,5678, 200000
realNumr real reprezentat pe 64 de bii5.5, 0.007, -11.897
charCaracter ncadrat ntre apostrofuria, A, 0, *
symbolir de caractere n care primul caracter este liter micnumar, nuMar, numar_1
stringir de caractere cuprinse ntre ghilimelenumar, numar
Tabel 1 Tipuri standard n Prolog Tipul compus i functoriObiectele compuse ne permit tratarea informaiilor compuse ca un singur item, astfel nct s poat fi extrase uor componentele acestora. Obiectele compuse sunt alctuite dintr-un functor i o list de obiecte aparinnd functorului respectiv:
nume=functor(obiect1, obiect2, ..., obiectN)Un obiect compus poate fi unificat cu o variabil simpl sau cu un alt obiect compus. Obiectele compuse pot fi privite i tratate ca un singur obiect n clauzele Prolog.
Expresii aritmetice Expresiile aritmetice const din operanzi (numere i variabile), operatori (+,-,*,/, div i mod) i paranteze. Simbolurile din partea dreapt a semnului = (care este predicatul =) de mai jos formeaz o expresie aritmetic:
A=1+6/(11+3)*Z
Numerele hexazecimale se reprezint prin precedarea lor cu un semnul $:
$FFF=4095
86=$4A+12
Valoarea unei expresii poate fi calculat dac toate variabile sunt legate la momentul evalurii. Calculele se fac ntr-o anumit ordine determinat de prioritatea operatorilor aritmetici: operatorii cu cea mai mare prioritate sunt evaluai primii.Operaii
Tipul rezultatului unei operaii aritmetice este precizat n tabelul 2.2.Operand 1OperatorOperand 2Rezultat
ntreg+,-,*ntregntreg
real+,-,*ntregreal
ntreg+,-,*realreal
real+,-,*realreal
ntreg, real/ntreg, realreal
ntregdivntregntreg
ntregmodntregntreg
Tabelul 2.2 Operaii aritmeticeComparaii
Limbajul Prolog poate compara expresii aritmetice, caractere, string-uri i simboluri. Este utilizat notaia infix, ceea ce nseamn c operatorii sunt plasai ntre operanzi ( de exemplu, X < 4) i nu naintea lor (de exemplu, = mai mare sau egal
= egal
, >< diferitFuncii i predicate predefinite Denumire TipSemnificaie
abs(X)funcientoarce valoarea absolut a lui X
sin(X)funcientoace sinusul unghiului X, dat n radiani
cos(X)funcientoace cosinusul unghiului X, dat n radiani
tan(X)funcientoace tangenta unghiului X, dat n radiani
arctan(X)funcientoace arctangenta valorii reale de care este leagat X
exp(X)funcientoace e la puterea X
ln(X)funcientoace logaritm natural din X
log(X)funcientoace logaritm n baza 10 din X
sqrt(X)funcientoace rdcina ptrat a lui X
random(X)predicatleag X de o valoare real aleatoare, 0