Sunteți pe pagina 1din 27

Pascal

Sau cum programăm calculatorul


ELEMENTELE DE BAZĂ
ALE LIMBAJULUI PASCAL
Vocabularul limbajului
Vocabularul oricărui limbaj este format din:
 setul de caractere;
 identificatori;
 separatori;
 comentarii;
Setul de caractere
Reprezintă ansamblu de caractere cu ajutorul cărora se poate
realiza un program Pascal.
Acesta este alcătuit din:
 litere mari şi mici ale alfabetului englez(A-Z, a-z);
 cifrele sistemului de numeraţie de baza 10(0-9);
 caractere speciale :+, - , * , / , = , ^ ,< ,>, ( , ) ,[ , ] ,{ ,} , ., , , : , ; ,
# , $ , @ , _ , şi blanc(spaţiu).
Identificatori
 Prin identificatori înţelegem o succesiune de litere sau cifre sau
caracterul special’ –‘ din care prima trebuie să fie în mod
obligatoriu litera. Cu ajutorul identificatorilor se asociază nume
constantelor, variabilelor, procedurilor etc.
 Exemple de identificatori: a1, tasta, un_număr.
 Contraexemple :1ar, mt&, (primul începe cu o cifră, al doilea
conţine un caracter special).
 O categorie specială de identificatori este dată de cuvintele cheie
ale limbajului(au un înţeles bine definit şi nu pot fi folosite în alt
context).
 Acestea sunt: AND, ARRAY, BEGIN, CASE, CONST, DIV, DO,
DOWNTO, ELSE, END, FILE, FOR, FUNCTION, GOTO, IF, IN,
LABEL, MOD, NIL, NOT, PROCEDURE, PROGRAM, RECORD,
REPEAT, SET, OF, OR, ORIGIN, OTHERWISE, PACKED, THEN,
TO, TYPE, UNTIL, VAR, WHILE, WITH.
Separatori şi comentarii
 Cele mai simple elemente alcătuite din caractere cu semnificaţie
lingvistică poartă denumirea de unităţi lexicale. Acestea se
separă între ele, după caz prin blanc, sfârşit de linie sau
caracterul’;’.
 Pentru ca un program să fie uşor de înţeles se folosesc
comentariile. Acestea se plasează oriunde în program. Un
comentariu poate fi scris în două feluri în program:
 între acolade; exemplu:{un comentariu};
 între paranteze rotunde urmate de * ,exemplu: (*un
comentariu*).
Constante
 Constantele Pascal reprezintă valori care pot fi conţinute de un
program scris în acest limbaj(nu sunt citite de program).Ele se
folosesc în cadrul diverselor expresii (numerice, logice, şiruri de
caractere)sau pentru scrierea unor mesaje.
 Exemplu În program trebuie realizată atribuirea y:=2*x+1. În
acest caz 2 şi 1 sunt constante.
 Constantele limbajului Pascal se împart în 4 categorii:
 constante întregi;
 constante reale;
 constante şir de caractere;
 constante simbolice;
Constante întregi
 Sunt alcătuite dintr-o submulţime a numerelor întregi care pot fi
reprezentate în memoria calculatorului.
 Observaţie: Nu se pot reprezenta în calculator numere oricât de
mari sau oricât de mici (orice număr ocupă un spaţiu în
memoria internă a calculatorului).Prin utilizarea limbajului Turbo
Pascal se pot reprezenta numere întregi cuprinse în intervalul
[-2.147.483.648, 2.147.483.648]. Numerele se pot reprezenta în
baza 10 sau în baza 16 (mai rar utilizată). Pentru baza 16,
numărul este precedat de caracterul special ‘$’.
 Exemple: 32,-164,+31,$a1.
Constante reale
 Sunt alcătuite dintr-o submulţime a numerelor reale(mai precis
a numerelor raţionale), care pot fi reprezentate în calculator.
Numerele se găsesc în intervalul[3.4*10-4352 ,1.1*104932] . În locul
virgulei se pune punct.
 Exemple:2.34, -45.26, 512E+23, -45.1E-3.
 Ultimele doua numere folosesc o scriere neîntâlnită în
matematica. Ele reprezintă numerele 512*1023şi –45.1*10-3.
Constante şir de caractere
 După cum reiese şi din denumire, cu ajutorul lor se reprezintă
şiruri de caractere. Şirurile de caractere se pot reprezenta în
două forme.
 În prima formă se scrie şirul cuprins între apostroafe.
 Exemplu: ’ acesta este un text’.
 În forma a doua se scrie în cod ASCII(fiecărui caracter i se
ataşează un cod cuprins între 0 şi 255 şi este precedat de
caracterul ‘#’).
 Exemplu:#1#2 sau, echivalent(în baza 16), #$#$2.
Constante simbolice
 Acestea sunt constante care au în program un anumit nume.
Numele dat acestor constante poate fi cunoscut de limbaj(de ex.
: false, true, maxint )sau dat de utilizator atunci când defineşte
constantele.
Noţiunea de tip de dată
 Prin tip de dată vom înţelege o mulţime de valori. Pe tipurile de
dată se introduc anumite operaţii.
 Exemplu de tip : integer .
 Avem trei categorii de tipuri :
 simple
 structurate
 reper .
Noţiunea de tip de dată
 Tipurile simple de date se pot clasifica din două puncte de
vedere .
 Un tip ordinal reprezintă o mulţime finită de valori între care
există o relaţie de ordine. Conform acestui criteriu, tipurile
simple se clasifică în :
 tipuri ordinale ;
 tipuri reale (chiar dacă se ia o submulţime a numerelor reale situată
într-un anumit interval, acesta nu are un număr finit de elemente) .
 Din punct de vedere al modului de definire a tipului, tipurile
simple se clasifica în:
 tipuri standard( este cunoscut, nu este necesar să fie definit de
programator);
 tipuri definite de utilizator.
Tipuri simple standard
 Acestea se clasifică în :
 tip boolean:
 tip char;
 tipuri întregi;
 tipuri reale;
 Dintre acestea primele trei sunt tipuri ordinale.
Tipul boolean
 Are numai două valori: true şi false. Operatorii care lucrează cu
acest tip sunt: AND ,OR , NOT.
 a AND b = true doar dacă a şi b sunt amândouă true
 a OR b = true dacă a sau b este true
 NOT a = true dacă a este false
 În versiune ,Turbo a limbajului s-a introdus şi operatorul XOR.
Fiind date două valori oarecare ale acestui tip, a şi b, avem a
XOR b = true dacă şi numai dacă ele sunt diferite.
AND True False OR True False XOR True False
True True False True True True True True False
False False False False True False False False True

NOT
True False
False True
Tipul char
 Mulţimea valorilor acestui tip este formată de toate caracterele
reprezentate în codul ASCII extins. Fiecare din aceste caractere
se reprezintă pe un octet. Relaţia de ordine între aceste
caractere este dată de relaţia de ordine dintre codurile prin care
se reprezintă (cuprinse între 0 şi 255 ).Limbajul conţine anumite
funcţii care se pot aplica tipului char. Acestea sunt:
 SUCC(caracter)- returnează caracterul care are codul ASCII cu
o unitate mai mare (succ(‘c’)=’d’);
 PRED(caracter)- returnează caracterul care are codul ASCII cu
o unitate mai mica (pred(‘d’)=’c’ );
 ORD(caracter)- returnează codul ASCII a caracterului;
 CHR(cod)- returnează caracterul care are codul specificat.
Tipuri întregi
 În funcţia de submulţimea considerată a numerelor
întregi ,avem următoarea clasificare :
 tipul SHORTINT - numere din intervalul[-128,127] care se
reprezintă în memoria interna pe un octet;
 tipul INTEGER - numere din intervalul [-32768, 32767],se
reprezintă pe doi octeţi;
 tipul LONGINT - numere din intervalul [-2.147.483.648,
2,147.483.648],se reprezintă pe 4 octeţi;
 tipul BYTE - numere din intervalul[0, 255],se reprezintă pe un
octet;
 tipul WORD - numere din intervalul [0, 65535],se reprezintă pe
doi octeţi.
 Obs. Dacă compilatorul este pe 32 de biţi limitele se schimbă.
Tipuri întregi
 Variabilelor de tip întreg li se pot aplica următorii operatori
aritmetici: + ( adunare, operator binar), - (scădere ,operator
binar), *(înmulţire ,operator binar),DIV şi MOD (operatori binari).
În cazul a două valori naturale (deci întregi pozitive),operatorii
MOD şi DIV furnizează restul şi câtul împărţirii întregi.
 Exemple 14 DIV 5 =2;
 14 MOD 5 =4;
 Tipurile întregi sunt ordinale deci li se pot aplica funcţiile
SUCC , PRED,ORD şi operatorii relaţionali.
 FUNCŢIA ABS(nr)- furnizează modulul numărului(abs(-12)=12).
Tipuri reale
 Într-o dată de tip real se pot reţine numere raţionale. Numerele
reale cunoscute de noi din matematică, cuprind şi numere
iraţionale. Acestea din urmă au o infinitate de zecimale, deci nu pot
fi reţinute în calculator. Totuşi ele pot fi suficient de bine
aproximate(nu se pot reţine oricât de multe zecimale).Limbajul
TURBO PASCAL are următoarele tipuri reale:
 REAL - numerele se reprezintă în memorie pe 6 octeţi şi pot avea
maxim 11, 12 cifre;
 SINGLE - numerele se reprezintă în memorie pe 4 octeţi şi pot avea
maxim 7, 8 cifre;
 DOUBLE, numerele se reprezintă pe 8 octeţi şi pot avea maxim 15, 16
cifre;
 EXTENDED, numerele se reprezintă pe 10 octeţi şi pot avea 19, 20
cifre;
 COMP se reţin numai numerele pozitive pe 8 octeţi şi numerele pot
avea până în 19, 20 cifre.
Tipuri reale
 Datelor de tip real li se pot aplica următorii operatori:
 + pentru adunare;
 - pentru scădere;
 * pentru înmulţire;
 / pentru împărţire.
 Datelor de tip real li se pot aplica operatorii relaţionali şi
următoarele funcţii:
 ABS(x)- are ca rezultat modulul numărului x;
 SQR(x)- x la pătrat;
 SQRT(x)- radical din x;
 SIN(x)- sinus din x (x este exprimat în radiani);
 COS(x)- cosinus din x;
Tipuri reale
 ARCTAN(x)- arcttangent din x;
 LN(x)- logaritm natural din x;
 EXP(x)- ex (e are valoarea aproximativ 2,71);
 INT(x)- partea întreagă din x;
 FRAC(x)- partea fracţionară a lui x;
 O dată de tip real nu este de tip ordinal.
Declararea variabilelor
 Pentru declararea variabilelor se foloseşte cuvântul cheie VAR.
Exemplu:
Var a,b,c:integer;
x,z:real;
Declararea constantelor
 Se face prin utilizarea cuvântului cheie CONST.
 Exemple:
CONST nota_max=10;
r=3.25.
 Există posibilitatea de a defini o constantă prin precizarea tipului
ei (care poate fi şi un tip structurat).
Expresii
 Reguli de formare a expresiilor sunt aceleaşi din matematică.
 O mare importanţă în evaluarea expresiilor o are prioritatea
operatorilor.
 Aceasta este următoarea:
 Prioritatea 1: (maximă):NOT, +, -(operatori unari);
 Prioritatea 2: AND,*, /, DIV(operatori multiplicativi);
 Prioritatea 3: OR, XOR, +, -(operatori aditivi);
 Prioritatea 4: >, >=, <, <=, =, IN(operatori relaţionali).
 În mod normal, expresia se evaluează de la stânga la dreapta,
ţinând cont de priorităţile operatorilor(putem schimba priorităţile
prin utilizarea parantezelor rotunde).
Citirea datelor
 Se face cu ajutorul procedurilor READ şi READLN.
 READLN (v1,v2,…,n) - citeşte variabilele v1, …, vn, introduse de
la tastatură. Variabilele pot fi de orice tip învăţat până acum, mai
puţin boolean sau un tip enumerare(sau un subdomeniu al unui
astfel de tip).Introducerea mai multor variabile se poate face
dacă acestea se separă prin spaţii sau <ENTER>. La sfârşit
trebuie apăsată tasta <ENTER>. Cursorul trece pe rândul
următor. Procedura readln va citi şi sfârşitul de linie(caracterul
enter).
 READ (v1,v2,…,vn)- la fel ca readln, doar că nu citeşte sfârşitul
de linie.
Citirea datelor
 ATENŢIE !Datele citite se depun, de fapt, într-o zonă tampon,
înainte de a fi acordate variabilelor. Această zonă tampon se
goleşte când apare readln . De aceea, un apel simplu readln
(fără argumente )va avea drept efect golirea acestei zone
tampon. Astfel, apelul readln (x,y,…)este echivalent cu secvenţa
read(x,y,…);readln.
 Dacă variabilele ar fi avut alte valori înaintea apelului procedurii
de citire, ele se pierd. Valorile citite ale acestor variabile rămân
neschimbate până la prima atribuire sau (re)citire a lor.
Scrierea datelor
 Se face cu ajutorul procedurilor WRITE, WRITELN.
 WRITE (e1, e2, …, en) - evaluează şi apoi afişează valorile
expresiilor e1, …, en. Expresiile pot fi inclusiv de tipul boolean,
caz în care se afişează unul din cele două cuvinte(False sau
True), dar nu pot fi de tip enumerare. După afişarea valorilor
unor expresii acestea nu se pierd şi nici nu se schimbă.
 WRITELN(e1,e2,…, en)face acelaşi lucru, dar la sfârşitul întregii
afişării mută cursorul pe rândul următor.
Structura unui program Pascal
program nume_program;
[ uses …]
[ declaraţii tipuri de date]
[declaraţii constante]
[declaraţii variabile]
[subprograme]
Begin
[instrucţiuni]
End.

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