Limbajul PASCAL
Caracteristici:
Aparitia
limbajului Pascal este un rezultat al conceptelor dezvoltate ca urmare a crizei
programarii de la sfarsitul anilor '60. In aceasta perioada, raspandirea pe
plan mondial a prelucrarii automate a datelor a cunoscut o extindere remarcabila,
trecandu-se la abordarea si rezolvarea unor probleme din ce in ce mai complexe.
Programele mari asociate acestor probleme s-au complicat in asa masura incat au
devenit foarte greu accesibile, chiar si pentru autorii lor (programarea
empirica). Ca raspuns la cerinta de elaborare a unei metodologii generale de
dezvoltare sistematica a programelor s-a cristalizat metoda proiectarii si
programarii structurate.
Un program structurat este
constituit din unitati functionale bine conturate, ierarhizate conform naturii
intrinseci a problemei. In interiorul unor astfel de unitati, structura se
manifesta atat la nivelul actiunilor (instructiunilor), cat si al datelor.
Programarea structurata este o metoda independenta de limbajul de programare, actionand la nivelul stilului de lucru. Limbajul Pascal ofera programatorilor posibilitatea de a lucra structurat.
In prima forma a aparut in 1968, autorul sau
fiind profesorul elvetian Niklaus Wirth. Numele limbajului a fost ales ca un
omagiu adus marelui matematician, fizician, filosof si scriitor francez Blaise
Pascal (1623-1662), primul care, in 1642, a inventat o masina de calcul. Un
prim compilator devine operational in 1970, limbajul fiind publicat in 1971.
Interesul trezit de aparitia sa a condus la necesitatea unor consolidari ale
limbajului, finalizate prin publicarea in 1973 a unui raport revizuit, in care
se realizeaza o definire a formei de referinta numita Pascal Standard, redactata
ulterior conform normelor ISO si devenita baza comuna pentru diverse implementari.
Limbajul Pascal include conceptele programarii structurate in ambele laturi ale
efortului de abstractizare presupus de realizarea unui program - organizarea
datelor si conceperea actiunilor.
. Include o serie de instructiuni care reprezinta chiar structurile de control
impuse de tehnica programarii structurate (IF-THEN-ELSE, CASE, REPEAT, WHILE,
FOR).
. Are facilitati puternice si deosebit de flexibile pentru reprezentarea
datelor.
. Ofera posibilitati de modularizare a
programelor, prin structurarea lor in module carora le pot fi asociate
constructii ale limbajului (proceduri si functii).
Aceste caracteristici au facut ca, desi conceput initial pentru a servi ca
suport de studiu al programarii structurate, limbajul sa fie folosit intens si
de catre programatorii profesionisti. Ca efect, s-a ajuns rapid la o crestere
spectaculoasa a productivitatii muncii de programare, ducand la raspandirea
utilizarii limbajului.
Limbajul Pascal beneficiaza de implementari pe toate tipurile de sisteme de
calcul. Multe dintre aceste implementari marcheaza si dezvoltari ale limbajului
insusi, adica in raport cu care Pascal Standard apare ca un subset.
Firma Borland a realizat, incepand cu 1983, medii integrate de dezvoltare (IDE
- Integrated Development Environment) cu denumirile generice Turbo Pascal,
Borland Pascal si Delphi.
Versiunile din categoria Turbo Pascal sunt
destinate utilizarii sub DOS. Pentru dezvoltarea de aplicatii Windows a fost
lansata implementarea Borland Pascal 7.0
pentru Windows, cu posibilitati superioare de utilizare a POO. Ultima
realizare a firmei Borland o reprezinta Delphi, care implementeaza facilitati
de POO si programare vizuala.
Constructiile limbajului
Vocabularul limbajului:
Cuvinte ale vocabularului, care au rolul de a denumi elemente ale programului, se formeaza din litere, cifre, _, primul caracter fiind litera;
Cuvinte rezervate cheie), care au o semnificatie prestabilita si nu pot fi folosite in alt context
Cuvinte cheie si directive standard
and |
else |
interface |
record |
uses |
array |
end |
label |
repeat |
var |
asm |
file |
mod |
set |
while |
begin |
for |
nil |
shl |
with |
case |
function |
not |
shr |
xor |
const |
goto |
object |
string | |
constructor |
if |
of |
then | |
destructor |
implementation |
or |
to | |
div |
in |
packed |
type |
break |
do |
inherited |
procedure |
unit |
exit |
downto |
inline |
program |
until |
continue |
Directive standard
absolute |
external |
forward |
near |
public |
Constructii sintactice ale limbaju-lui
Pascal :
- expresiile, care sunt constructii formate din operanzi (date numerice, logice, de tip caracter etc.) si operatori (aritmetici, relationali,
logici etc.) si a caror evaluare produce o valoare de un anumit tip;
- declaratiile, care sunt constructii pentru definirea si descrierea
datelor (constante si/sau variabile, date scalare si/sau structuri de date
etc.);
- instructiunile, pentru descrierea actiunilor realizate asupra datelor;
- subprogramele de tip functie si procedura, care, pe baza
unor date de intrare, furnizeaza unu sau mai multe rezultate de iesire;
- programul, reprezentand constructia sintactica de nivel superior, care
poate face obiectul prelucrarii si executiei pe un sistem de calcul.
Structura programelor Pascal
Un program Pascal are doua parti: partea declarativa si partea
operativa. In prima apare numele programului si
declaratiile elementelor ce vor fi folosite in program: constante, variabile
etc. Partea operativa este programul propriu-zis, acesta cuprinde
instructiunile care vor fi executate, cuprinse intre cuvintele begin si end.
Iata un program simplu:
Programul sursa |
Explicatia |
program CalculPret; |
numele programului |
begin |
se incepe un grup de instructiuni Sfarsit program |
Dimensiunea maxima a unei linii in Turbo Pascal este de 126 caractere.
Tipuri de date
Un tip de data reprezinta o multime de valori pe care le poate lua o data si operatiile care se pot efectua asupra ei.
Exista tipuri de date standard(recunoscute de limbaj, fara a fi definite in program) si tipuri de date definite de utilizator.
Dupa modul de alocare a memoriei, pot sa fie statice (odata declarate, ocupa loc in memorie pana la incheierea programului) sau dinamice (alocarea memoriei se face pe parcursul executiei, numai cat timp este necesar, eliberand memoria, chiar si inainte de incheierea programului).
Tipuri simple (nestructurate)
Tipuri intregi
Tip |
Domeniu |
Format |
ShortInt |
8 biti cu semn |
|
Integer |
16 biti cu semn |
|
LongInt |
32 biti cu semn |
|
Byte |
8 biti fara semn |
|
Word |
16 biti fara semn |
Operatii
Cu datele de tip intreg se pot realiza urmatoarele operatii:
adunarea: 2+3=5; -2+(-10)=-12 sau operator unar: +2=2 |
|
scaderea: 2-6=4; sau oparatorul unar de schimbare a semnului |
|
inmultirea: 2*3=6 |
|
div |
impartirea
intreaga: x div y = catul impartirii lui x la y |
mod |
restul impartirii intregi a lui x la y: 7 mod 3 = 1 |
not |
negatie (operator unar pe biti) |
and |
si aritmetic (operator binar pe biti) |
xor |
sau exclusiv (operator binar pe biti) |
shl |
shift left (deplasare spre stanga) |
shr |
shift right (deplasare spre dreapta) |
Functii care opereaza pe tipul intreg:
Ord |
numarul de ordine = functia identica |
Succ |
succesorul Succ(x) = x + 1 |
Pred |
predecesorul Pred(x) = x - 1 |
Odd |
Odd(x) = adevarat sau fals, dupa cum x este impar sau par |
Lo |
Lo(x) = octetul inferior al lui x |
Hi |
Hi(x) = octetul superior al lui x |
Swap |
Swap(x) schimba intre ei octetii inferior si superior ai lui x |
Tipuri ordinale definite de utilizator
-Tipul enumerat
Exemple:
type zile=(luni, marti, miercuri, joi, vineri,
sambata, duminica);
Asupra datelor de tip enumerat se pot aplica functiile Ord, Succ si Pred.
De exemplu: Ord(luni)=0, Ord(marti)=1, iar Pred(vineri)=joi,
Succ(vineri)=sambata
Sunt permise si comparatiile. De exemplu, marti<miercuri.
-Tipul subdomeniu
Acesta reprezinta o succesiune de valori consecutive extrase dintr-un tip ordinal definit anterior (tip de baza).
Exemple:
type zile=(luni,
marti, miercuri, joi, vineri, sambata, duminica);
var zile_lucratoare=luni..vineri ;
Tipul caracter
Acesta este denumit de identificatorul char. Este format din caracterele codului ASCII.
Ocupa in memorie un octet in care se memoreaza valori binare intre 0 si 255.
Domeniul acestui tip este: multimea caracterelor, adica a tuturor cifrelor, a literelor mari si mici, precum si a caraterului spatiu sau a simbolurilor speciale: +-$(;,@! etc. Acestea trebuie sa fie cuprinse intre apostrofuri. Toate caracterele au o ordine predefinita, ele fiind asezate in lista ASCII. Deci fiecare caracter are un cod al sau.
Exemple de functii pentru tipul caracter:
Ord('A')=65;
Ord('b')=98;
Succ('A')='B';
Pred('b')='a';
Chr(65)='A';
UpCase('a')='A';
- Tipuri logice
Tipurile logice
(booleen) pot avea numai valorile True si False. Ord(False)=0; Ord(True)=1;
Succ(False)=True; Pred(True)=False;
O variabila de tip Boolean ocupa un octet.
Operatii specifice:
not |
False |
True |
True |
False |
and |
False |
True |
False |
False |
False |
True |
False |
True |
or/xor |
False |
True |
False |
False |
True |
True |
True |
True/False |
-Tipuri reale
Tipul |
Domeniul valorilor absolute |
Format |
Numar de cifre semnificative |
Real |
2.9E-39..1.7E38 |
6 octeti | |
Single |
1.5E-45..3.4E38 |
4 octti | |
Double |
5.0E-324..1.7E308 |
8 octeti | |
Extended |
3.4E-4932..1.1E4932 |
10 octeti | |
Comp |
8 octeti |
Valorile datelor de tip Comp sunt intregi, dar se bucura de operatiile cu tipurile reale.
Functii ce pot fi aplicate datelor de tip real sau care au ca rezultat numere real :
Functia |
Tipul argumentului (Real/Intreg) |
Rezultat de tip real/intreg |
Abs |
R R |
Abs(x)= | x | |
Sqr |
R R |
patratul argumentului |
Sin |
R/I R |
sinusul valorii argumentului exprimat in radiani |
Cos |
R/I R |
cosinusul valorii argumentului exprimat in radiani |
Arctan |
R/I R |
Arctan(x)=unghiul exprimat in radiani a carui tangenta este x |
Ln |
R/I R |
logaritmul natural al argumentului |
Exp |
R/I R |
Exp(x) = ex, unde e=2.718281828459 |
Sqrt |
R/I R |
Sqrt(x) = radicalul lui x |
Int |
R R |
Int(x) = partea intreaga a lui x |
Frac |
R/I R |
partea fractionara a argumentului |
Trunc |
R I |
Trunc(x) = valoarea trunchiata la un numar de tip LongInt a lui x |
Round |
R I |
Round(x) = cel mai apropiat numar intreg pentru x, de tip LongInt |
Exemple:
Round(3.4)=3, Round(-3.4)=-3, Round(3.6)=4, Trunc(3.4)=3, Int(3.6)=3.0
Constante
Constantele sunt informatii (date) ale caror valoare nu se poate schimba pe parcursul programului.
Constante intregi
Exemple: 30, +7, 6553, $A12, $FFF.
Ultimele doua numere sunt in baza 16 (hexazecimal) , fiind precedate de $.
Variabile
Prin variabila se intelege o informatie a carei valoare se schimba pe parcursul programului. Multimea de valori pe care le poate lua o variabila formeaza tipul acesteia.
Declarea variabilelor:
var v_1, v_2, v_3: tip_1;
w_1, w_2, w_3: tip_2;
.
Expresii
O expresie este fie o constanta, fie o variabila, fie un apel de functie, fie o combinatie corecta de expresii mai simple. Combinarea se realizeaza cu ajutorul operatorilor. Elementele care se combina se numesc operanzi.
Operatori
Operatori aritmetici
-(inversare semn) +(mentinere semn)
*(inmultire) /(impartire reala)
DIV(catul inpartirii intregi) MOD(restul impartirii intregi)
+(adunare) -(scadere)
Operatori relationali:
< <= = > >= <>(diferit)
Operatori logici:
NOT (negare)
AND (si)
OR (sau)
XOR (sau exclusiv)
Prioritatile operatorilor:
Prioritate |
Operator |
1 (maxima) |
NOT, +, - (operatori unari) |
AND, *, /, DIV, MOD, SHR, SHL (operatori multiplivativi) |
|
OR, XOR, +, - (operatori aditivi) |
|
4 (minima) |
=, <>, >, <, <=, >=, IN (operatori relationali) |
Obs. In cazul in care in expresiile logice se folosesc ca operanzi expresii relationale, datorita prioritatii mai mari a operatorilor logici fata de cei relationali, expresiile relationale se include in paranteze.
Ex. (a>4) AND (a<15)
Bibliografie
Cherciu, R., Homorodean,M., Petrescu, S., Buturoiu, R., Informatica, Editura Niculescu, Bucuresti, 2001
https://www.pascal.go.ro/tutorial
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |