Documente Academic
Documente Profesional
Documente Cultură
Limbajul TURBO PASCAL a fost elaborat n anul 1970 de ctre profesorul universitar Nickaus Wirth de
la Universitarea Tehnic din Zurich (Elveia) n scopul studierii mai profunde a programrii. A fost numit
aa n cinstea matematicianului i filosofului francez Blaise Pascal, care n anul 1642 a inventat prima
main de calcul (Pascalina), care aduna numere de pin la 8 cifre. Principalele caracteristici ale limbajului
sunt simplitatea, claritatea, robusteea trsturi care permit atingerea unui nivel ridicat n activitatea de
programare. La nceput limbajul a fost elaborat doar n mediul universitar, dar bucurndu-se de succes, a
depit aceste limite, gsind o rspndire mondial. Astfel a fost implimentat pe toate categoriile de
calculatoare. Pe parcursul anilor elementele limbajului standart Pascal au fost mbogite substanial,
crendu-se astfel versiunile TURBO Pascal 6.0, TURBO Pascal 7.0, Borland Pascal.
Componentele limbajului TURBO PASCAL
Limbajul TURBO PASCAL reprezint un sistem integrat, care include urmtoarele componente:
Editorul de programe - permite scrierea i modificarea programelor surs Pascal.
Compilatorul - analizeaz corectitudinea sintactic a programului editat i genereaz forma sa
executabil.
Sistemul de informaii ajuttoare (HELP) - care asigur obinerea de informaii referitoare la utilizarea
mediului de programare Turbo Pascal i respectiv, la elementele limbajului Turbo Pascal.
Componenta de gestiune a fiierelor - asigur salvarea n fiiere pe disc a programelor editate i ncrcarea
programelor surs de pe disc.
Etapele realizrii unui program
O metod de descriere a algoritmului este limbajul de programare. Instruciunile pentru rezolvarea unei
probleme sunt grupate ntr-un program. Pentru scrierea unui program se utilizeaz un limbaj de programare,
cu sintax i semantic riguros definite. n cazul de fa programele vor fi scrise n limbajul Pascal.
Forma n care este scris este numit program surs. Pentru a fi prelucrat de sistemul de calcul programul
surs trebuie nregistrat ntr-un fiier surs. Editorul permite att dactilografierea i modificarea textului
programelor surs, ct i salvarea acestora n fiiere pe un suport magnetic (de obicei disc fix sau disc flexibil).
Programul surs nu poate fi " neles " i executat direct de ctre sistemul de calcul, dar poate fi " tradus" ntr-o
form executabil, numit program executabil. Generarea programului executabil are sens numai dac
programul surs respect sintaxa limbajului de programare n care este scris. Analiza sintactic a programului
surs este realizat de ctre un program specializat, numit compilator, specific fiecrui limbaj de programare.
Compilatorul are menirea s deteste erorile sintactice i le semnalizeaz prin mesaje care arat cauza probabil a
fiecrei erori. Corectarea programului surs se realizeaz cu ajutorul editorului de texte. Dup corectare
programul surs trebuie compilat din nou. Acest proces se repet pn la eliminarea tuturor erorilor sintactice.
n afar de erori de sintax, programul poate avea erori de concepie. Pentru a verifica dac programul
executabil funcioneaz corespunztor, el trebuie testat pentru mai multe seturi de date, lund n vedere i
cazurile limit. Dac la execuie apar erori, trebuie determinat cauza i efectuate coreciile necesare. Dup
corectare programul surs trebuie recompilat i testat, pn la obinerea rezultatului ateptat.
nceperea sesiunii de lucru in Turbo Pascal
Lansarea sistemului Turbo Pascal se face prin executarea fiierului Turbo.exe. Ca efect, pe ecran se afieaz
fereastra principal, peste care se suprapune o fereastr de editare. n partea superioar a ferestrei principale se
afl bara cu urmtoarele meniuri:
FILE EDIT SEARCH RUN COMPILE DEBUG OPTIONS WINDOWS HELP
Un meniu poate fi selectat prin una din metodele:
se tasteaz F10, apoi cu ajutorul sgeilor ne deplasm la meniul dorit
se tasteaz ALT +litera de la nceputul denumirii meniului ( pentru FILE tastm ALT + F)
Deoarece comenzile i opiunile Turbo Pascal sunt foarte numeroase, ele sunt grupate n funcie
de semnificaie n cadrul unuia din aceste meniuri. Fiecare meniu, fiind solicitat, afieaz pe ecran
o list de opiuni de unde alegem opiunea necesar.
Anumite comenzi pot fi transmise direct, prin acionarea unei taste sau a unei combinaii de taste
de activare (hot keys - taste fierbini). Din aceast categorie fac parte i cele cteva menionate n
ultima linie din fereastra principal, numit linie de informare, care au urmtoarele semnificaii:
F1 Help
- acces la sistemul de informaii ajuttoare;
F2 Save
- salvarea programului din fereastra de editare ntr-un fiier pe disc;
F3 Open
- deschiderea unei ferestre de editare n care se ncarc coninutul unui fiier surs;
1
Origin - stabilete locul de unde ncepe cutarea: From cursor- ncepnd de la cursor, Entire Scope - ntregul
domeniu
Ok - s-au terminat opiunile, se nchide fereastra i se fac nlocuirile
Cancel - se renun la cutare
Help - se dau informaii despre cutare.
Meniul WINDOW
De multe ori este util s lucrm simultan cu mai multe ferestre. Deschiderea unei ferestre se face cu F3. Dintre
toate ferestrele deschise la un moment dat, numai una este activ i n ea se gsete cursorul. n lucrul cu mai
multe ferestre este util meniul WINDOW.
Aceste opiuni sunt: Size/ Move (CTRL + F5), Zoom, (F5), Tile, Cascade, Next (F6), Previous(SHIFT +F6),
Close (ALT + F3).
Size/ Move - permite modificarea dimensiunilor ferestrei active. Dac am selectat aceast opiune, fereastra
curent i schimb culoarea. n acest moment i putem schimba dimensiunile. Aceasta se realizeaz cu ajutorul
sgeilor i tastei SHIFT. n mod practic, prin apsarea tastei SHIFT i a sgeii n sus se reduce dimensiunea
vertical a ferestrei. Tot aa, prin apsarea tastei SHIFT i a sgeii stnga se reduce dimensiunea orizontal.
Dac se apas sgeille, fereastra se deplaseaz pe ecran n sensul indicat de sgei. Atunci cnd am terminat
aranjarea unei ferestre se tasteaz ENTER, iar fereastra revine la culoarea normal. n continuare se poate lucra
n ea n mod obinuit.
Zoom - are rolul de a maximiza fereastra activ. Dac exist deschise mai multe ferestre acestea devin
invizibile. Maximizarea ferestrei se poate efectua i cu combinaia de taste Alt+Enter.
Tile - are rolul de a afia n prim plan toate feresrtele deschise. Toate ferestrele au dimensiuni egale.
Cascade - are rolul de a dispune ferestrele una peste alta (n stiv), iar fereastra activ este n prim plan.
Next - are rolul de a activa fereastra urmtoare celei curente.
Previous - activeaz fereastra ce a fost activ anterior celei curente.
Close - la activarea acestei opiuni se nchide fereastra curent. Dac n cadrul textului s-au fcut modificri,
utilizatorul este ntrebat, dac se salveaz sau nu coninutul lui.
Vocabularul i sintaxa limbajului PASCAL
Cu ajutorul caracterelor de baz prin concatenare se construiesc cuvintele limbajului, care pot fi:
cuvinte rezervate (fixe) cuvinte engleze folosite n scopuri bine definite
cuvinte utilizator sunt construite de programator.
Identificator este o succesiune de litere (inclusiv i caracterul _) i cifre, care ncepe cu o liter (maximal un
identificator poate conine 63 caractere).
Observaie. n Turbo Pascal nu se face distincie dintre majuscule i minuscule n scrierea unui identificator,
adic clasa9 sau Clasa9 sau CLASA9 reprezint acelai identificator.
.
Constante i variabile
Constantele sunt date care nu-i schimb valoarea n timpul execuiei programului. Ele pot fi apelate
nemijlocit prin valoarea lor sau prin numele lor . Constantele pot fi de mai multe feluri: constante ntregi,
constante reale, constante ir de caractere, constante booleene.
Constantele ntregi sunt cele care reprezint numerele ntregi din matematic. Ex.: 23, -1255, +1234.
Constantele reale corespund numerelor reale i pot fi reprezentate n:
- format normal Ex.: -14.323, 124.456, 0.2344, -44.0
- format exponenial Ex.: 12345 E-6, adic 0.012345 ; -3.123456 E5, adic312345.6 )
Constantele ir de caractere sunt secvene de caractere cuprinse ntre caracterul apostrof (). Ex: ANA ,
123, OHARA. n cazul ultimului exemplu caracterul apostrof se dubleaz pentru a nu fi considerat ca
marcator de sfrit de constant. Cazul particular cnd irul este compus dintr-un singur caracter se numete
constant caracter.
Constantele booleene pot fi True (adevrat) i False (fals).
Variabila corespunde unei date ce i poate modifica valoarea n timpul execuiei programului. Ea are un nume
simbolic, un identificator cu adresa unei locaii din memoria calculatorului, iar coninutul acestei locaii este o
careva valoare dintr-o mulime bine determinat de valori.
3
adic naintea declarrilor tipurilor i variabilelor. Limbajul Turbo Pascal conine constanta predefinit MaxInt.
Valoarea ei indic cel mai mare numr ntreg care poate fi atribuit unei variabile de tip Integer. Aceast valoare
este 32767.
Declararea etichetelor (label):
Etichetele sunt numere ntregi fr semn din domeniul 10,1,...9999 sau identificatori i se utilizeaz pentru a
marca instruciunile limbajului Pascal. Ele se delimiteaz de instruciuni prin dou puncte.
etichet : rnd de program;
De exemplu:
8888 : clrscr;
salut: x:= 7;
Etichetele se declar n compartimentul respectiv utiliznd cuvntul rezervat label.
Label eticheta1, eticheta2, ;
Se folosesc etichetele mpreun cu instruciunea de transfer goto, n care eticheta se scrie fr dou puncte.
Pentru a face salt se foosete instruciunea GOTO etichet.: GOTO salut; GOTO 8888;
Exemplu: label 8888, salut;
.....
goto 8888;
........
8888: writeln( se curata ecranul);
goto salut;
......
salut: end.
Declararea variabilelor (var):
Variabilele - date care pot s-i schimbe valoarea n timpul execuiei programului.
Ne imaginm variabilele ca nite cutiue, care n mod obligatoriu au nume (identificator) i n care la
momentul dat se pstreaz o valoare. Variabilelor li se atribuie valori cu ajutorul operaiei de atribuire ( :=) sau
de la tastatur cu ajutorul procedurii READ.
Se declar: var
variabila1, variabila2, : tipul;
variabila11, variabila12, : tipul;
De exemplu: var
m, n, p, q : integer;
x, r :real;
ch : char;
u : boolean
Tipuri de date
Prin dat se nelege orice entitate asupra creia poate opera calculatorul. Prin tip de dat se nelege
mulimea valorilor definite care le poate lua aceast dat i o mulime de operaii care pot fi efectuate cu valorile
respective.
n Pascal se permite lucrul cu: tipuri de date predifinite (existente n cadrul limbajului) si tipuri definite de
utilizator.
Dup structura lor tipurile de date pot fi: tipuri simple i tipuri compuse.
Prin tip simplu se nelege un tip ordinal sau tipul real. Tipurile ordinale reprezint mulimi finite i ordonate de
valori. Se poate referi la numrul de ordine al unei valori (cu funcia Ord), poate fi specificat elementul succesor
(cu funcia Succ) i elementul predecesor (cu funcia Pred) al unui element dat. Tipurile ordinale sunt: Integer,
Char, Boolean, tipul enumerare, tipul interval.
Tipul real nu este tip ordinal !
Tipuri structurate sunt: tipul tablou, ir de caractere, nregistrare sau articol, mulime, obiect.
Tipurile sunt definite (sau asociate variabilelor) n compartimentul respectiv.
Vom trata ulterior tipurile de date simple.
Tipul ntreg
Dac in matematic mulimea de valori a tipului ntreg este o submulime infinit din ambele pri, n Pascal
aceast mulime este finit i reprezint o submulime a numerelor ntregi. Ea are urmtoarele 5 implimentri:
Integer, Word, Byte, ShortInt, LongInt.
5
n tabelul ce urmeaz sunt prezentate artate domeniile de valori, numrul se octei necesari pentru
reprezentarea valorilor respective i constantele predefinite ale tipurilor de date integer:
Valoare
Tip
Minima
Maxima
Semn
Numar octeti
Shortint
-128
127
Da
1
Byte
0
255
Nu
1
Integer
-32768
32767
MAXINT
Da
2
Word
0
65535
Nu
2
-2147483648
2147483647
4
Longint
MAXLOGINT
Da
Turbo Pascal permite, de asemenea folosirea valorilor ntregi hexazecimale (n baza 16) prin scrierea semnului $
n faa acestora. De exemplu, $27= 39.
Prin constanta predefinit MaxInt se nelege valoarea ntreag +32767. Tipul ntreg este un tip ordinal:
succesorul ntregului i este i+1 , predecesorul ntregului i este i-1. Ordinul ntregului n este egal cu n.
Diagrama de sintax a numerelor ntregi
Tipul real
Mulimea valorilor tipului real este o submulime a numerelor reale. Exist 5 tipuri reale: Real, Single
(precizie simpl), Double (precizie dubl), Extended i Comp (compatibile), care se deosebesc dup domeniul de
valori, dup numrul de octei necesari pentru reprezentarea n memorie, dup numrul de cifre semnificative.
n tabelul ce urmeaz sunt artate domeniile de valori, numrul se octei necesari pentru reprezentarea
valorilor respective i constantele predefinite:
Tip
Nr. octei
Domeniu de valori
Cifre zecimale
Real
6
2.9E-39 .. 1.7E38
11-12
Single
4
1.5E-45..3.4E38
7-8
Double
8
5.0E-324..1.7e308
15-16
Extended
10
1.9E-451..1.1E932
19-20
Comp
8
-2E63 +1.. 2E63 1
19-20
Exemple de declarare a variabilelor de tip Real: Var A,B,C :Real;
Evident, aceast declarare se scrie n compartimentul respectiv.
Operaiile pe acest tip sunt: + (adunare), -(scdere) ,*(nmulire) , / (mprire)
Rezultatul aplicrii unei astfel de operaii este de tip real, chiar dac unul din operatori este de tip ntreg. Pentru
valorile reale sunt permise operaiile relaionale: <, <= , >, >= , <>. Rezultatul unor astfel de operaii este de tip
boolean, avnd valorile True sau Fase.
Operaiile de nmulire * i cea de mprire / au cel mai nalt grad de prioritate.
Funciile tipului de date real:
1. Abs(x) Ex. Abs(-7.23)= 7.23; Abs(-10)= 10; -Abs(5)= -5; - tipul argumentului este ntreg sau real.
Rezultatul este identic cu argumentul.
7
2. Sqr(x) Ex. Sqr(2.1)=4.41; Sqr(9)=81- tipul argumentului este ntreg sau real. Rezultatul este identic cu
argumentul.
3. Sqrt(x) returneaz valoarea rdcinii ptrate din x. Ex. Sqrt(9.0)=3.0
4. Trunc(x) - returneaz partea ntreag a numrului real x.
Ex. Trunc(8.3)=8; Trunc(-2.7)=-2; Trunc(-3.4)=-3; Trunc(3.6)=3;
5. Round(x)- returneaz valoarea rotungit a numrului real x pn la ntreg n felul urmtor:
dac x>=0, round(x)=trunc(x) + 0.5
dac x<0, round(x)=trunc(x) - 0.5
Ex. Round(3.3)=3; Round(-3.3)=-3; Round(5.8)=6; Round(-8.9)=-9;
6. Frac(x)- returneaz partea fracionar a numrului real x. Ex. Frac(3.45)=0.45; Frac(-8.1)=0.1;
7. Randomize- returneaz n numr ntreg din intervalul 0-1.
8. Int(x) - returneaz partea ntreag a lui x. Atenie! Funcia Int(x) returneaz un numr real, de fapt,
partea ntreag a unui numr x, privit ca numr real.
Ex. Int(3.4)=3.0; Int(-3.4)=-4; Int(3.6)=3.0; Int(-3.6)=-4;
9. Sin(x)- sinus din x (x este exprimat n radiani). Argumentul poate fi ntreg sau real. Rezultatul este real.
10. Cos(x) cosinus din x. Argumentul poate fi ntreg sau real. Rezultatul este real.
11. Arctan(x) arctangenta din x. Argumentul poate fi ntreg sau real. Rezultatul este real.
12. Ln(x)- logaritm natural din x. Argumentul poate fi ntreg sau real. Rezultatul este real.
13. Exp(x) - ex (e are valoarea aproximativ 2,71). Argumentul poate fi ntreg sau real. Rezultatul este real.
14. Exp(y*Ln(x))- Xy . Argumentul poate fi ntreg sau real. Rezultatul este real.
15. Random - valoare aleatoare.Tipul rezultatului este real
Observaie: Pentru a obine partea ntreag ca numr ntreg a lui x, se poate scrie Trunc(Int(x))
Atenie! Tipul real nu-i ordinal, de aceea nu putem vorbi despre succesorul i predecesorul unui numr real.
Spre deosebirede variabilele de tip ntreg sau real, valorile variabilelor booleene nu pot fi citite de la tastatur cu
ajutorul procedurii-standard readln, ci vor fi date prin atribuire.
n limbajul Pascal prioritile operaiilor sunt:
NOT- prioritate superioar fa de AND, care la rndul ei are prioritare mai mare fa de OR.
Operatorii relaionali au cea mai joas prioritate din toi operatorii Pascal. Astfel:
NOT P=Q se trateaz: (NOT P)=Q
P<=Q AND R se trateaz: P<=(Q AND R)
P OR Q AND R se trateaz: P OR (Q AND R).
Astfel, n caz c n expresii lipsesc parantezele rotunde, atunci operaiile se efectueaz conform descreterii
prioritilor lor. Operaiile care se bucur de aceeai priotitate se efectueaz de la stnga la dreapta. Pentru a
schimba ordinea operaiilor se folosesc paranteze rotunde.
De exemplu, calcularea expresiei (A=B)And(C<=D) se efectueaz n ordinea: 1.Se determin valoarea
afirmaiei A=B; 2. Se determin valoarea afirmaiei C<=D; 3. Se efectueaz operaia logic AND.
Deci, nti se calculeaz expresiile din paranteze, apoi valorile primite se folosesc n calculele ulterioare.
Tipul de date logic este ordinal, adic elementele luoi pot fi ordonate. Deaceea, este adevrat: False < True .
Adic Ord(True)=1 i Ord(False) =0
n limbajul Pascal inegalitatea matematic: 1 < X < 2 se scrie: (X>1) AND (X<2).
La fel nscrierea A=B=C n Pascal se face: (A=B) AND (A=C).
Condiia c, X nu aparine domeniului 2 i +2 se scrie: NOT((X> 2) AND (X< 2)) sau (X < 2) AND (X>2).
Notaia x (-,1) U (2,) se exprim prin (x<1) Or (x>2).
Notaia c anul este bisect ( adic este multiplu de 4, dar nu multiplu de 100, n schimb multiplu de 400) este:
(an Mod 4=0) AND (an Mod 100<> 0) OR (an Mod 400=0)
n Pascal este definit funcia standard ODD(X), care returneaz valoarea True, dac argumentul X este un
numr ntreg impar; valoarea False, dac argumentul X este un numr ntreg par.