Lab 3

Post on 17-Sep-2015

212 views 0 download

description

laborator 3

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