Lab 3

19
Laborator 3 STRUCTURA UNUI PROGRAM PROLOG Noţiuni teoretice Secţiunea „DOMAINS” Secţiunea domains permite declararea domeniilor (tipurilor) argumentelor predicatelor. Există două clase de tipuri, tipul elementar şi tipul complex, care la rândul lui se subîmparte î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 când se doreşte clarificarea unei porţiuni din secţiunea predicates. Prin declararea unui domeniu propriu, cu un nume personalizat, mai uşor şi mai simplu se pot da nume sugestive argumentelor predicatului respectiv. Cuvânt rezervat Semnificaţie Exemple byte Număr întreg pe 8 biţi fără semn, cuprins între 0 255 0, 56,234 short Număr întreg pe 16 biţi, independent de platformă, cuprins între -32768 32767 +34,88,332 ushort Număr întreg pe 16 biţi fără semn, independent de platformă, cuprins între 0 65535 0,32,987 integer Număr întreg cu semn +45,78,986 1

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