Introducere

Limbaje de programare

Alcătuirea internă

Variabilele

Operații cu variabile

Aplicații ale informaticii

Încheiere

Variabilele

În cazul primului nostru program, textul ce apărea pe ecran era conținut în instrucțiunea WRITELN. Dacă am dori ca să modificăm acest text ar trebui să intrăm în program și să modificăm însăși programul. Acest lucru este foarte nerentabil și dificil, deoarece nu toți care utilizează programe sunt și programatori. Să ne gândim că vindem un program unui client care nu știe deloc Pascal, ce s-ar întâmpla de fiecare dată când el ar dori modificarea rezultatului programului? Ar trebui să ne cheme pe noi ca să intervenim în structura programului. Din această cauză în orice program sunt folosite variabilele. Ele pot stoca datele noastre de intrare și ieșire, fără a fi necesară modificarea programului de către programator. Astfel toate programele fiind scrise nu pentru a rezolva o situație particulară sau o singură problemă, ci o familie de probleme care se bazează pe aceeași metodă sau formulă de rezolvare.

Variabilele = mărimi care își pot schimba conținutul o dată sau de mai multe ori pe parcursul execuției unui program. Avem în principal patru tipuri de variabile:

numerice
  pentru caractere

Variabilele integer - sunt folosite pentru memorarea numerelor întregi

Exemple de nr întregi: 0; 1; 20; -5; 100; -186;
Atentie se pot memora numere cuprinse doar în intervalul [-32768; 32767]. Dacă vom avea nevoie să lucrăm cu numere mai mari, va trebui să folosim variabile de tip real.

Variabilele real - sunt folosite pentru memorarea numerelor reale

Exemple de nr reale: 1.55; 2.8; -15.82; 3.14; 289.7435;
Atentie în Pascal, ca de altfel în notația americană, numerele zecimale nu se scriu cu virgulă ci cu punct.   1,55 = 1.55

Variabilele char - sunt folosite pentru memorarea unui singur caracter. Ca și caractere avem toate caracterele (literele) alfabetului, cele 10 cifre, precum și semnele de punctuație. Spațiul dintre cuvinte este și el considerat caracter. Acest tip de variabile memorează întotdeauna doar unul din aceste caractere și le veți folosi foarte des în programe mai complexe, dar care depășesc programa clasei a VI-a.

Caracterele: A, B, C, … Z, a, b, c, … z, 0, 1, 2, 3 , … 9 ; , . :
Atentie Pascalul fiind conceput de americani, lipsesc cu desăvârșire literele românești: ă, â, î, ș, ț.

Variabilele string - sunt folosite pentru memorarea șirurilor de caractere, sau propozițiilor.

Exemple de string: “Tata este inginer”, “Eu merg la scoala”, “How are you!”, “bla bla bla”.

 

Modul de lucru cu variabile

Pentru a folosi o variabilă trebuiesc urmați următorii pași:

  1. declararea variabilelor
  2. citirea lor, introducem o valoare de la tastatură ce va reprezenta conținutul acelei variabile
  3. (opțional deocamdată) operații asupra variabilelor
  4. afișarea variabilelor
  1. Declararea variabilelor - declararea unei variabile se face la începutul unui program, înainte de începerea execuției programului. Se stabilesc astfel numărul de variabile ce vor fi folosite în program, numele variabilelor și tipul lor.
    declararea_variabilelor
    VAR - comandă folosită la declararea variabilelor, și reprezintă așa numita secțiune de declarații.

    nume variabilă - poate fi orice nume dorit de noi : a, b, suma, coco, olala
    Atentie sunt totuși o serie de cuvinte care nu se pot atribui numelor unei variabile, așa numitele cuvinte rezervate și care sunt reținute de către limbajul Pascal deoarece însemnă altceva. Exemple: Write, begin, end, help, program, etc.
    Dacă avem de definit mai multe variabile de acelaș tip, numele lor va fi separat prin virgulă.

    Precizare: Peste tot în program unde vedem că este vorba de o variabilă, avem de a face defapt cu numele acelei variabile. Despre conținutul unei variabile vorbim doar în timpul rulării programului și numai atunci. Când un program nu este rulat, nici o variabilă scrisă în el nu are nici un conținut.

    tip variabilă - se alege oricare din cele 4 tipuri cunoscute, în funcție de tipul datelor ce vor fi conținute de către variabila respectivă pe timpul execuției programului.


  2. Citirea variabilelor: se face introducând o valoare de la tastatură și se realizează folosind instrucțiunea READLN (nume variabilă).
    Exemple:
    	
    	READLN (a);
    	READLN (suma);
    În momentul când programul ajunge la execuția unei instrucțiuni READLN, execuția programului se oprește, pe ecran apărând o linie verticală ce clipește intermitent, numită prompter. Aceasta însemnă că în momentul și la locul respectiv programul așteaptă introducerea de la tastatură de către utilizator a valorii ce va fi conținută în variabila resprectivă.
  3. operații asupra variabilelor - (vom vorbi mai târziu)
  4. Afișarea variabilelor: pentru a vedea pe monitor conținutul unei variabile, se folosește instrucțiunea WRITE (nume variabilă) sau WRITELN (nume variabilă).
    Exemple:
    	
    	WRITE (a);
    	WRITELN (suma);

Reluăm acum primul nostru program, dar făcut mult mai flexibil prin folosirea variabilelor:

program text;
Var propoz: string;
begin
	Readln (propoz);
	Write (propoz);
end.

Primul rând al programului îl reprezintă numele programului și are doar rolul de a ne ajuta să identificăm mai ușor un program, atunci când avem mai multe. El poate fi acelaș sau diferit de numele fișierului în care am salvat programul, dar nu poate fi identic cu numele nici unei alte variabile din program.

Programul de mai sus conține o variabilă căreia i-am dat numele propoz și care este de tipul string, ea putând stoca deci orice șir de caractere dorit. De fiecare dată cînd programul este lansat în execuție el poate citi de la tastatură orice șir de caractere (propoziție) prin intermediul instrucțiunii Readln, urmând ca după aceea propoziția respectivă să fie afișată pe monitor, prin execuția instrucțiunii Write. Programul afișează deci, automat orice propoziție introdusă anterior de la tastatură, fără a se mai face nici o modificare în programul Pascal. Observăm deci că la fiecare rulare a programului, dacă clientul introduce altă propoziție, conținutul variabilei noastre se schimbă. De aceea se numește și variabilă.
Este posibil ca în unele programe mai complexe conținutul unor variabile să se poată schimba și de mai multe ori pe parcursul execuției programului.

Să vedem acum ce se întâmplă în interiorul calculatorului în timpul rulării programului și ce rol au principalele componente ale calculatorului. Cu 1, 2, 3, 4 am notat ordinea circulației datelor conținute de variabila noastră.

program_text

În momentul declarării variabilelor (deci înainte de begin și de execuția oricărei instrucțiuni) programul comandă automat microprocesorului să rezerve un loc în memoria internă pentru depozitarea ulterioară a conținutului variabilei (în exemplul nostru variabila propoz).
Ca o precizare putem spune că locațiile de memorie rezervate pot ocupa o celulă de memorie (adică 1 octet) sau mai multe, depinde de tipul fiecărei variabile, dar nu intrăm în amănunte.

Mai departe când execuția programului ajunge la instrucțiunea Readln programul așteaptă ca utilizatorul să introducă de la tastatură șirul de caractere (propoziția) dorită (în cazul exemplului nostru, să zicem Clasa a 6-a). Aceasta va constitui de acum înainte conținutul variabilei propoz (adică șirul de caractere Clasa a 6-a) și care va fi depozitat în memoria internă, în locul rezervat pentru aceasta.

După aceea în momentul executării instrucțiunii Write, se cere în program afișarea conținutului variabilei propoz. Pentru a afla acest conținut microprocesorul comandă citirea locației de memorie rezervat variabilei respective și afișarea lui.
Mai observăm că instrucțiunile se execută în ordinea succesivă în care sunt scrise în program, începând cu prima instrucțiune ce urmează după cuvântul rezervat begin iar în cele din urmă programul terminându-se cu cuvântul rezervat end. (vezi și execuția animată a programului). Pentru o mai bună înțelegere a funcționării programului, puteți eventual încerca și execuția pas-cu-pas a programului (vezi și anexă a utilizării programului Turbo Pascal).

Utilizarea textelor explicative:

În cadrul programelor complexe în care se folosesc mai multe variabile și se cere introducerea de la tastatură a conținutului unora dintre ele, precum și afișarea conținutului altora, pentru un utilizator care nu cunoaște limbajul Pascal și nici nu vede programul sursă, ar fi foarte greu să știe în fiecare moment, conținutul cărei variabile i se cere a introduce de la tastarură, precum și conținutul cărei variabile este afișat. De aceea într-un program se mai introduc și linii de text explicativ, care ușurează utilizarea lui de către un client. Linile de text explicative sunt introduse tot cu ajutorul instrucțiunii Write sau Writeln și ele nu influențează cu nimic rezultatul programului.
Trasnscriem mai jos programul nostru adăugând și explicațiile necesare.

program text2;
Var propoz: string;
Begin
	Write (‘Introduceti propozitia dorita: ‘);
	Readln (propoz);
	Write (‘Textul este: ‘);
	Write (propoz);
end.

Trebuie acordată o mare atenție ca valoarile variabilelor introduse de către utlizator de la tastatură să fie compatibile cu tipul variabilelor, declarate în secțiunea de declarații. Astfel o variabilă de tip integer sau real nu poate conține caractere (litere și nici semne de punctuație), de asemenea o variabilă de tip string poate conține și cifre, dar asupra ei nu se pot aplica operațiile aritmetice. Pentru a se evita deci, ca utilizatorul să introducă o valoare nepotrivită într-o variabilă se folosesc aceste texte explicative.

Cele două roluri ale instrucțiunilor Write și Writeln în program

Observăm acum că instrucțiunile Write (sau Writeln) pot fi folosite în două scopuri:

  1. Afișarea unui text explicativ, caz în care textul este încadrat între două apostroafe:
  2. 	Write (‘Textul este: ‘);
    
  3. Afișarea conținutului unei variabile, caz în care între paranteze este introdusă chiar numele variabilei respective, fără apostroafe:
  4. 	Write (propoz);
    

Aceste două situații pot fi conținute și într-un singur rând, adică de o singură instrucțiune Write (sau Writeln), dacă sunt separate prin virgulă. Astfel ultimele două instrucțiuni din exemplul dat anterior se pot echivala cu un singur rând în felul următor:

Write

Când rularea programului va ajunge la instrucțiunea Write, ea va produce deci afișarea:

Output

În continuare dăm exemplu un program în care sunt citite de la tastatură și apoi afișate două numere. Vom avea pentru aceasta două variabile numite nr1 și nr2, una de tipul integer iar alta real, care știm că pot stoca numere.

Putem da variabilelor orice nume dorim (cu excepția celor rezervate) dar de obicei se recomandă a se da niște nume sugestive. Celor două variabile le puteam da de exemplu și nume ca coco și miaumiau, dar pentru că în cazul nostru este vorba de niște variabile ce vor conține numere, am considerat mai potrivit să le denumim nr1 și nr2.

program numere;
Var nr1: integer;
	nr2: real;
Begin
	Write ('Introduceti numarul intreg=');
	Readln (nr1);
	Write ('Introduceti numarul real=');
	Readln (nr2);
	Writeln ('Numarul intreg este=', nr1);
	Writeln ('Numarul real este=', nr2);
end.
Atentie când introduceți de la tastarură numere reale, acestea se introduc cu punct nu cu virgulă. Spre exemplu numărul 1,55 se introduce 1.55

Deci la fiecare rulare a programului utilizatorul poate introduce oricare alte două numere dorite, acestea fiind apoi afișate întocmai.

Comentarii în programe Pascal:

Pe lîngă textele explicative ce transmit diverse mesaje de ghidare utilizatorului, într-un program Pascal se mai pot introduce și comentarii. Acestea sunt utile doar programatorului pentru a înscrie diverse informații despre ce face și despre cum este conceput respectivul program. Comentariile reprezintă orice text încadrat între două acolade și poate fi pe unul sau mai multe rânduri:

{acesta este un comentariu in Pascal}

și au următoarele caracteristici:

  1. sunt ignorate de către compilator. Rezultă de aici că:
    • nu sunt executate de către calculator
    • textul cuprins între acolade nu va fi afișat niciunde cînd vom rula programul
    • comentariile nu modifică cu nimic execuția programului și nici rezultatele afișate

  2. comentariile pot fi introduse oriunde în program și pot fi oricâte dorim.

Reluăm ca și exemplu scrierea programului de mai sus, dar în care am introdus și niște comentarii (poate prea multe):

{program care citeste 2 numere 
	si apoi le afiseaza asa cum sunt}
program numere_comentat;	{numele programului trebuie continut 
				intr-un singur cuvant, fara spatii}
Var nr1: integer;
	nr2: real;		{am definit o variabila ca si reala}

Begin				{de aici incepe programul}
	Write ('Introduceti numarul intreg=');
	Readln (nr1);
	Write ('Introduceti numarul real=');
	Readln (nr2);	{programul citeste variabila reala}
	Writeln ('Numarul intreg este=', nr1);
	Writeln ('Numarul real este=', nr2);
		{programul afiseaza deci, cele doua numere exact 
		asa cum au fost introduse, fara nici o modificare}
end.

Salvați și executați pe rând cele două programe numere și numere_comentat. Observați dacă în timpul rulării celor două programe exită vreo diferență.

Poate că acum la aceste programe simple și scurte nu vedeți utilitatea folosirii comentariilor. Dar în cazul unor programe mari, de zeci sau sute de instrucțiuni, linile de comentariu introduse din loc în loc și în punctele principale ale programului, vă vor ajuta foarte mult să vă dați seama despre ce este vorba în program, fie că reluați lucrul la acel program după un timp mai îndelungat, fie că după voi va urma un alt programator care va trebui să facă unele modificări.

 

Scrierea științifică:

Ați observat că în cazul variabilelor de tip real, valoarea conținută de ele este afișată prin instrucțiunea Write (sau Writeln) într-un mod mai deosebit. Este vorba de scrierea științifică. Aceasta este formată dintr-un număr cu 11 cifre, care deobicei conține multe zerouri și care conține și punctul zecimal, litera E, iar la sfârșit încă 2 cifre, numite exponent. Exemple de numere scrise științific:

stiintifica 4.3900000000E+00   6.0250000000E+03   7.5000000000E-02

Se vede de fiecare dată că punctul zecimal apare imediat după prima cifră din număr. Cum se citesc asemenea notații?

Regulă: pentru a transforma un număr scris științific în scriere obișnuită, se mută spre dreapta punctul zecimal după atâtea cifre câte ne arată exponentul. Dacă exponentul este cu semn minus punctul zecimal se va muta spre stânga.
Astfel exemplele noastre de mai sus devin:

Scriere științifică Scriere normală
3.3175000000E+02 331,75
4.3900000000E+00 4,39
6.0250000000E+03 6025
7.5000000000E-02 0,075

Pentru a se evita ca Pascal să afișeze conținutul unei variabile în format științific, instrucțiunea writeln din programul anterior se poate scrie și în forma:

regula stiintifica

unde ultima cifră (doi), reprezintă numărul de zecimale (adică două) cu care va fi afișat rezultatul.

 

Întrebări recapitulative:

Luați o foaie de hârtie și căutați să răspundeți la întrebările de mai jos:

  1. Care este definiția unei variabile și de ce folosim variabilele în program?
  2. Câte tipuri de variabile avem în Pascal?
  3. O cifră oarecare sau un semn de punctuație, pot fi conținute într-o variabilă de tip șir de caractere?
  4. Declararea unei variabile se poate face oriunde pe parcursul programului?
  5. Ce trebuie specificat când declarăm una sau mai multe variabile?
  6. Ce instrucțiune folosim când vrem ca programul să citească o variabilă?
  7. Unde este depozitat conținutul unei variabile, după ce acesta a fost introdus de la tastatură?
  8. Unde este depozitat conținutul unei variabile, înainte ca acesta să fi fost introdus de la tastatură?
  9. Ce diferență este între un text explicativ și un comentariu într-un program?

(răspunsuri)

  Precedenta Continuare

| Introducere | | Limbaje de programare | | Alcătuirea internă | | Variabilele | | Operații cu variabile | | Aplicații ale informaticii | | Încheiere |


  © 2005 Cicirean Nicolae - Toate drepturile rezervate