Partile unui program PascalCele trei parti principale ale unui program PASCAL sunt: antetul (header-ul) programului, declaratiile in care se descriu obiectele asupra carora vor avea loc prelucrarile (in cadrul programului pe care il analizam, vom considera numai declararea variabilelor) si partea principala a programului in care se scriu instructiunile (ansamblul operatiilor ce urmeaza a fi executate).
Pentru a intelege aceasta structura, deloc complicata, sa analizam fara graba un program (Borland) PASCAL care calculeaza si afiseaza volumul unui paralelipiped. Este vorba de un program care declara variabile, citeste valorile acestora, efectueaza un calcul simplu si afiseaza rezultatul.
PROGRAM volumul;
{calculeaza si afiseaza volumul unui paralelipiped}
VAR
lungime, latime, inaltime, volum:real;
BEGIN
writeln('Introduceti valori: lungime, latime, inaltime');
readln(lungime, latime, inaltime);
volum:=lungime*latime*inaltime;
writeln('Volumul paralelipipedului= ', volum:9:5,' metri cubi')
END {volumul}
Cand programul este rulat, pe ecran se va afisa:
Introduceti valori: lungime, latime inaltime
8.3 7.25 6.29
Volumul paralelipipedului= 378.50075 metri cubi
De remarcat ca sirul "8.3 7.25 6.29" a fost introdus de la tastatura, fiind valorile pentru lungime, latime, respectiv inaltime.
Examinand acest program, vom putea vedea urmatoarele elemente:
Antetul (header-ul) programuluiPrima linie contine antetul programului.
Program este un cuvant rezervat cu care incepe (optional) un program (Borland) PASCAL. El este urmat de numele programului: volumul si de simbolul punct si virgula. Simbolul punct si virgula (" ; ") este un separator de instructiuni. Este strict necesar, bineinteles, cu unele mici exceptii, care le voi semnala la momentul potrivit.
O restrictie importanta a identificatorilor este aceea ca nu pot contine in interiorul lor blancuri (spatii).
Orice nume pe care il folositi intr-un program PASCAL se numeste identificator. El desemneaza: etichete, variabile, constante, tipuri de date, proceduri, functii, programe. Un identificator este o secventa de litere, cifre sau liniute de subliniere, primul caracter fiind obligatoriu o litera sau o liniuta de subliniere (" _ ").
P.S. Unde a scris Dumnezeu (God) e LEGE :lol: (it's a rule)
Cuvintele program, begin, end, var - se numesc cuvinte cheie (keywords) sau cuvinte rezervate (reserved words) deoarece sunt foarte importante si sunt definite sa aiba anumite semnificatii.
PASCAL are peste 50 de cuvinte rezervate.
ComentariileA doua linie a programului volumul este numita un comentariu.
Orice sir de caractere delimitat de acolade reprezinta un comentariu. Comentariile sunt folosite pentru a mari inteligibilitatea programelor (ele sunt ignorate de compilatorul PASCAL!).
Remarcati in ultima linie a programului prezenta comentariului {volumul}, tocmai pentru a reaminti cititorului numele programului care s-a incheiat. Comentariile pot fi plasate oriunde in cadrul programului, dar nu in interiorul identificatorilor.
In lipsa acoladelor de pe tastatura pe care lucrati, puteti folosi perechi de paranteze si asteriscuri: " (* " si " *) ".
Declararea variabilelorCuvantul cheie
var(prescurtare de la variables) incepe actiunea de declarare a variabilelor. Fiecare variabila trebuie sa poarte un nume. Programul volumul foloseste patru variabile (lungime, latime, inaltime, volum) identificate in faza de analiza structurata a programului. Acestea sunt grupate astfel.
Variabile de intrare:* lungime: lungimea paralelipipedului
* latime: latimea paralelipipedului
* inaltime: inaltimea paralelipipedului
Variabile de iesire :* volum: volumul paralelipipedului
Nu va speriati de denumirea pompoasa (de intrare, de iesire), se declara la fel, denumirea aceasta e folosita doar pentru a usura intelegerea rolului lor in program.
Tipuri de dateIn PASCAL exista doua tipuri (simple) de date pentru variabile numerice: intregi si reale.
Variabilele intregi pot lua valori numai numere intregi (pozitive sau negative) ca: 8, 23, 0 sau 8700.
Un calculator poate reprezenta numai o submultime finita de intregi. Un intreg poate fi reprezentat in memoria unui calculator numai daca valoarea sa apartine intervalului (-maxint-1, maxint), unde maxint este o constanta predefinita. In implementarile uzuale ale limbajului PASCAL maxint are valoarea 32767.
(Borland) PASCAL 7, in afara de tipul integer, pentru valorile intregi, permite si utilizarea tipurilor: byte, shortint, word, longint, comp. MaxInt si MaxLongInt reprezinta valorile maxime pentru datele de tip intreg (32767) respectiv longint (2147483647).
Daca o variabila PASCAL va avea o valoare fractionara sau mai mare decat maxint (maxlongint), variabila trebuie sa fie de tip real.
(Borland) PASCAL 7, in afara de tipul real, pentru valorile reprezentate in virgula mobila, permite si utilizarea tipurilor: single, double, extended.
Intr-un program (Borland) PASCAL tipul fiecarei variabile utilizate trebuie sa fie declarat. Omiterea declararii unei variabile folosite in partea principala a programului va genera o eroare. In programul pe care-l analizam (volumul), declararea variabilelor s-a facut utilizand enuntul:
VAR lungime,latime,inaltime,volum:real;
Odata intalnit acest enunt, compilatorul afla ca toate cele patru variabile sunt de tip real.
Zona de memorie alocata variabilelorFiecarei variabile din program i se asociaza o locatie de memorie pe care v-o puteti imagina ca pe o cutie avand inscriptionate: nume si tip. Continutul cutiei este dat de valoarea curenta a variabilei.
Tipul defineste categoria valorii din cutie. Programul refera variabila prin nume.
O variabila poate avea numai o singura valoare, la un moment dat, dar, in urma operatiilor ce se efectueaza asupra ei, in timpul executiei programului, poate sa isi schimbe valoarea.
Partea principala a programului reprezinta zona activa, executabila a programului. Cuvintele rezervate BEGIN si END delimiteaza instructiunile care descriu algoritmul principal al problemei de rezolvat.
Dupa ultimul END urmeaza intotdeauna un punct.
Begin-End * Daca nu exista cel putin un enunt intre BEGIN si END programul nu va face nimic (aceasta situatie nu deranjeaza, incercati! );
* Cuvintele cheie BEGIN si END sunt exemple de delimitatori (cuvinte sau simboluri care delimiteaza inceputul si sfarsitul unor zone ale programului);
* Spre deosebire de separatori (virgula, punct si virgula), delimitatorii se gasesc in pereche. Exemplu: BEGIN-END.
Enunturile (instructiunile) writelnEnunturile writeln sunt utilizate pentru afisarea pe un suport de informatie (de regula monitorul) a rezultatelor obtinute in urma prelucrarilor, a mesajelor catre utilizator etc.
WriteLn reprezinta in PASCAL un identificator predefinit (standard).
Spre deosebire de cuvintele cheie, identificatorii predefiniti (standard) pot fi redefiniti in cadrul programului (intelesul lor poate fi schimbat de programator).
De remarcat ca daca dati unui program numele "
write", nu mai aveti voie sa folositi in program nici un enunt write cu sensul predefinit (adica sa afiseze un text, variabila, etc).
Ori de cate ori se va executa un enunt writeln, calculatorul va afisa ad litteram tot ceea ce este inclus intre apostrofuri, precum si valorile oricarei variabile sau expresii aflate intre paranteze. Pentru separarea elementelor din corpul instructiunii se folosesc virgulele.
Primul enunt din programul analizat (volumul) determina calculatorul sa scrie pe ecran mesajul:
Introduceti valori: lungime, latime inaltime
dupa care va muta cursorul la inceputul liniei urmatoare.
Fara un astfel de mesaj este greu sa ne dam seama ca este timpul sa se tasteze ceva. Writeln forteaza calculatorul sa afiseze tot ceea ce s-a specificat in interiorul parantezelor
si sa treaca la linie noua. La un enunt write, cursorul va ramane pe pozitia imediat urmatoare ultimul caracter scris cu acest enunt.
Writeln poate fi folosit si fara parametri pentru a muta cursorul cu o linie mai jos.
Enuntul readlnIn momentul in care s-a executat instructiunea
readln(lungime, latime, inaltime);
calculatorul asteapta de la utilizator sa introduca trei numere. Primul va fi atribuit variabilei lungime, cel de-al doilea variabilei latime si in sfarsit cel de-al treilea variabilei inaltime. Nu uitati ca toate cele trei variabile sunt de tip real!
Aceste valori pot fi tastate pe o singura linie, cu spatii intre ele, sau cate una pe linie.
De remarcat ca valorile (folosind instructiunile Read / ReadLn) nu sunt citite pana la apasarea tastei Enter.
* Readln permite utilizatorului sa introduca valorile variabilelor de intrare in timpul executiei programului;
* Dupa executia unui enunt readln, cursorul se pozitioneaza la inceputul urmatoarei linii de pe ecran;
* Diferenta dintre read si readln este similara celei dintre write si writeln.
Utilizarea combinatiei write-readln in locul combinatiei writeln-readlnDe foarte multe ori, in programarea calculatoarelor se foloseste combinatia write-readln in locul combinatiei writeln-readln.
Avantajul combinatiei write-readln este acela ca valoarea care se introduce va aparea pe aceeasi linie a ecranului cu cererea, in loc sa apara pe o linie proprie, cum s-ar fi intamplat in cazul folosirii combinatiei writeln-readln.
Enuntul de atribuire (asignare)Enuntul ce urmeaza dupa enuntul readln
volum :=lungime*latime*inaltime;
se numeste enunt de atribuire intrucat el calculeaza ceva (produsul dintre lungime, latime si inaltime) si atribuie (asigneaza, afecteaza) rezultatul variabilei din stanga simbolului ":=". Partea dreapta a acestui enunt este un exemplu de expresie aritmetica.
Formatarea la iesire (iesire)Ultimul enunt din programul volumul:
writeln(�Volumul paralelipipedului= �,volum:9:5,� metri cubi�);
afiseaza intr-o forma explicita rezultatul:
Volumul paralelipipedului= 378.50075 metri cubi
Remarcati forma de prezentare a rezultatului. Pentru inceput, sirul de caractere "Volumul paralelipipedului", urmat de rezultatul propriu-zis, afisat insa intr-un sablon de 9 caractere, dintre care cinci reprezinta cifre zecimale. Acest mod de afisare a fost stabilit de specificatorul de format ":9:5" (9 caractere, din care 5 cifre zecimale). In cazul in care rezultatul ar fi avut 10 caractere (4 cifre inaintea virgulei, 5 cifre zecimale), specificatia ":9" nu era luata in seama. In cazul in care ar fi fost mai putine caractere (8 sau 7), atunci primul / primele caractere erau completate cu spatii. Specificatia de format " : x : y " este facultativa, dar fara acest specificator de format, volumul calculat ar fi fost afisat in notatie exponentiala (stiintifica), care este mai greu de citit. In sfarsit, sirul de caractere "metri cubi" completeaza imaginea rezultatului.
* Specificatorii de camp pot fi folositi pentru controlul formei de editare a rezultatelor, fie prin determinarea largimii zonei de scriere, fie prin declararea numarului de zecimale ce vor fi folosite la scrierea valorilor reale;
* Pot fi formatate: valorile intregi, reale, sirurile de caractere etc., dar numai la numere reale se vor declara numarul de zecimale
Continuarea aici