Sunteți pe pagina 1din 25

pg1

Introducere
Informatica a apărut o dată cu construcţia primelor calculatoare electronice, 1946 Universitatea Pennsylvania.
Dar un calculator oricât ar fi de performant este ca şi mort, nu poate face nimic dacă nu dispune şi de un program.
Situaţia este oarecum asemănătoare cu a unui casetofon, care în lipsa unei casete înregistrate nu scoate nici un sunet.
Orice calculator pentru a putea fi funcţionabil el trebuie să fie programat. Pe scurt, printr-un program noi transmitem
calculatorului sarcini pe care acesta trebuie să le execute.

De-a lungul anilor calculatoarele au înregistrat o evoluţie explozivă, practic astăzi ele find prezente în toate
domeniile. La acest lucru a contribuit şi apariţia calculatoarelor personale în 1975 şi mai ales a celor fabricate de către
IBM din 1981 încoace şi numite PC. Dacă până la apariţia calculatoarele personale informatica era un domeniu exclusiv
oamenilor de ştiinţă (un calculator cântărea câteva sute de Kg sau mai mult şi necesita “îngrijirea” permanentă a unei
echipe de specialişti), o dată cu PC-urile s-a vrut ca acestea să poată fi utilizate şi de către o persoană obişnuită, chiar şi
de către copii.

Pentru a putea lucra, comunica, cu un calculator avem nevoie de un program, iar programele se scriu într-un
limbaj de programare. De-a lungul timpului au apărut multe limbaje de programare, dintre care unele astăzi nici nu se
mai folosesc. Pascal (denumire dată în cinstea fizicianului cu acelaş nume, care în 1641 a inventat prima maşină de calcul
mecanică cu roţi dinţate) este un limbaj de programare apărut încă din 1971, iniţial folosit pe marile calculatoare, dar
ulterior fiind adaptat şi pentru PC-uri primind denumirea de Turbo Pascal. Astăzi este folosit deoarece este simplu şi
comod de utilizat, repezentând astfel un mijloc pentru pătrunderea elevilor în tainele informaticii. Programarea este
domeniul care difereţiază un utilizator de un programator. Utiliztor de calculatoare poate fi aproape oricine, dar
programatori devin doar persoanele care dispun de un anumit nivel de inteligenţă, capacitate de concentrare şi
raţionament, precum şi obişnuinţa de a fi ordonat.

Prezentul curs de iniţiere în Pascal se adresează celor care nu au mai făcut nici o oră de programare, sau
începătorilor, cu precădere elevilor de gimnaziu, începând cu clasa a VI-a, dar poate fi ultilizat şi de către elevi din clasele
mai mari care doresc să înveţe singuri acasă sau să-şi complecteze cunoştinţele din şcoală. Am încercat ca prin
problemele şi exemplele folosite să urmăresc programa de matematică şi fizică a claselor a VI-a.

Desigur elevii trebuie să deţină deja cunoştinţe minime de operare a calculatorului, să cunoască noţiuni ca folder
sau director, fişier, fişier executabil, precum şi operaţii cu acestea (copiere, redenumire, mutare, ştergere) în general
este vorba de utilizarea Windows Explorer.

Revenind la acest curs, recomand să fie parcurse şi studiate toate exemplele din el, chiar dacă elevul are
impresia că a înţeles aspectele problemei, deoarece nu s-a putut lămuri şi explica detaliat toate problemele şi aspectele
unei programări corecte ce apar într-o situaţie, de la primul exemplu, ci unele detalii au fost explicate şi dezvăluite pe
parcursul a mai multor exerciţii. De mare importanţă este posibilitatea ca elevul să instaleze pe propriul calculator unul
din programele Turbo Pascal sau Borland Pascal şi apoi să scrie, să ruleze şi să observe cum funcţionează fiecare
program din exemplele date.
(în paginile acestui curs veţi găsii şi informaţii despre unde poate fi găsit şi cum trebuie instalat Turbo Pascal 7.0)
Limbaje de programare

pg2

Limbaje de programare. Limbajul Pascal


Primul program Pascal
Instrucţiunea WRITELN
Întrebări recapitulative
Ştim din matematica de clasa a V-a că există aşa numita matematică în baza doi, care foloseşte doar cifrele 0
şi 1. Această matematică a fost creată o dată cu primele calculatoare, deoarece acestea în interiorul lor nu ştiu calcula
decât în acest sistem binar de două cifre.
Deci, primele programe erau scrise folosind direct aceasta matematică, adică folosind doar cifrele 0 şi 1.

Aşa cum pentru a comunica între noi zi de zi în limba română sau orice altă limbă folosim un set de reguli numite
gramatică, tot aşa scrierea unui program pentru calculator presupune respectarea unor reguli şi convenţii. Acestea sînt
cuprinse în ceea ce numim limbaj de programare. Limbajul în care erau scrise primele programe se numeşte limbaj cod
maşină. Acest limbaj este defapt cel înţeles de mircoprocesoare.

Dar scrierea unui program în acest fel era foarte greu de făcut, cerea mult timp, iar posibilitatea apariţiei unor
greşeli era foarte mare.
De aceea mai tîrziu au fost inventate limbajele de nivel înalt, cum sunt Pascalul, C, C++, Java şi altele. Aceste limbaje
de nivel înalt sunt formate din instrucţiuni care pot fi mai uşor înţelese de om, iar sensul lor în general, este derivat din
limba engleză. Prin aceste instrucţiuni pur şi simplu spunem calculatorului ce să facă, (respectând binenţeles un anumit
set de reguli şi convenţii pe care le vom vedea în capitolul următor).

Calculatorul nu înţelege limbajele de nivel înalt, el nu ştie Pascal, nici C sau Java sau nici un alt limbaj de acesta
evoluat. De aceea un program scris în unul din aceste limbaje, numit şi program sursă, pentru a putea fi executat de
către calculator, el trebuie compilat înainte.

Compilarea: este operaţia de traducere a unui program scris într-un limbaj de nivel înalt în limbaj cod maşină,
care poate fi executat de către calculator.

Primul program Pascal


Pentru a scrie azi primul program în Pascal avem nevoie să învăţăm prima instrucţiune din Pascal, adică o
instrucţiune prin care comadăm calculatorului să scrie ceva, să afişeze un text, pe monitor. Numele acestei instrucţiuni
este WRITE (cei care ştiţi engleză trebuie că cunoaşteţi sensul verbului to write).

Iar primul program şi cel mai simplu poate arăta aşa:

begin
Write (‘Clasa a 6-a’);
end.

În Pascal există o regulă generală şi anume începutul oricărui program se face cu cuvântul begin iar sfârşitul
programului se anunţă cu cuvântul end urmat de punct. Deasemenea fiecare linie de comandă se termină cu punct şi
virgulă.

Execuţia programului va avea ca rezultat afişarea propoziţiei Clasa a 6-a.Observăm că pentru aceasta
textul nostru trebuie cuprins între două apostroafe şi închis între paranteze. Aceasta este ceea ce se numeşte sintaxa
intrucţiunii WRITE.

Pentru ca să vedem rezultatul execuţiei programului, trebuie ca el să fie scris aşa cum este în mediul de editare
Turbo Pascal sau Borland Pascal, apoi să fie compilat şi lansat în execuţie (rulat).

Petru cei care nu au instalat şi nu sunt familiarizaţi cu programul Turbo Pascal sau Borland Pascal, prezentăm
separat o anexă a instalării şi utilizării programului Turbo Pascal 7.0. Cei care îl au instalat pe calculator şi
cunosc deja modul de lucru cu acest program, pot sări peste anexa aceasta.

Instrucţiunea WRITELN
Instrucţiunea WRITELN face ca rîndul următor ce urmează după ea, să fie scris pe un rând nou şi de la capătul
rândului. Instrucţiunea WRITE nu presupune acest lucru.
Introduceţi şi rulaţi următorul program:

begin
writeln (‘clasa a 6-a’);
writeln (‘din scoala generala’);
end.
Observaţi în fereastra Output textul scris pe două rânduri separat:

13.10.2009 09:51
pg3

Deci printr-o analogie cu programul Word, am putea spune că

WRITELN = WRITE + Enter

Deasemenea în Pascal nu contează dacă instrucţiunile sunt scrise cu litere mari sau mici.

Se introduce următorul exemplu de program:

begin
write (‘eu ‘);
write (‘merg ‘);
write (‘la ‘);
write (‘scoala.’);
end.

Veţi observa că deşi textul este scris pe mai multe linii, deoarece am folosit numai instrucţiunea WRITE, în momentul
rulării programului tot textul va fi afişat doar pe un rând.
Ca exerciţiu înlocuiţi una sau mai multe numai instrucţiuni WRITE, cu WRITELN. Rulaţi programul de fiecare dată.
Observaţi ce se întâmplă.

Înlocuiţi toate instrucţiunile WRITE, cu WRITELN, ca mai jos:

begin
writeln (‘eu ‘);
writeln (‘merg ‘);
writeln (‘la ‘);
writeln (‘scoala.’);
end.
Care va fi rezultatul execuţiei programului? Ce se va afişa?

Î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 limbajul înţeles şi care poate fi executat de către calculator?


2. Prin ce se caracterizează limbajele de nivel înalt? Daţi exemple de cîteva dintre acestea.
3. Cum se numeşte un program scris într-un limbaj de nivel înalt?
4. Ce este operaţia de compilare şi de ce este ea necesară?
5. Care este diferenţa între instrucţiunea WRITE şi WRITELN?
6. Ce diferenţă există între rolul instrucţiunilor Write şi WRITE şi write?
7. Begin şi end sunt instrucţiuni? Ce semnificaţie au cele două?
(răspunsuri)
raspunsuri Limbaje

pg4

Limbaje de programare. Limbajul Pascal

Răspunsuri:
1. Limbajul cod maşină
.

2. Limbajele de nivel înalt sunt formate din instrucţiuni care pot fi mai uşor înţelese de către om. Iar sensul instrucţiunilor în general, este derivat din
limba engleză. Exemple de astfel de limbaje sunt Pascal, C, C++, Java, Fortran, etc.

3. Program sursă
.

4. Compilarea este operaţia de traducere a unui program scris într-un limbaj de nivel înalt în limbaj cod maşină, pentru a putea fi executat de către
calculator
.

5. Spre deosebire de WRITE, instrucţiunea WRITELN face ca rîndul următor ce urmează după ea, să fie scris pe un rând nou şi de la capătul acestuia
.

6. Nu există nici o diferenţă, sunt mai multe forme de scriere a aceleiaşi instrucţiuni. Limbajul Pascal nu ţine cont de literele mari sau mici. Indiferent
cum este scrisă, o instrucţiune are acelaş rol într-un program
.

7. Begin şi end sunt cuvinte rezervate. Begin arată unde începe un program Pascal, iar end unde se sfârşeşte.
Alcatuirea interna a unui calculator

pg5

Alcătuirea internă a unui calculator


Microprocesorul
Memoria internă
Memoria externă
Perifericele
Memoria internă (detalii)
Întrebări recapitulative
Pentru a putea programa un calculator trebuie să înţelegem bine cum funcţionează el. Pentru aceasta o scurtă
descriere a alcătuirii interne a unui calculator este binevenită.
Într-o prezentare sumară avem următoarea schemă:

Microprocesorul:
este componenta cea mai importantă dintr-un calculator, el execută
toate calculele, stabileşte care operaţii să se execute şi ordinea lor.
Desigur microprocesorul execută sarcinile astea ajutat de multe alte
componente, dar nu intrăm în amănunte.
Alcatuirea interna a unui calculator

pg6
Memoria internă:
este componenta în care se stochează (memorează) programele cu
care se lucrează la un moment dat.
Ca să înţelegem mai bine rolul memoriei, să rezolvăm exerciţiul
7x3+2. Rezultatul îl cunoaştem cu toţii, dar cum am procedat? Mai
întâi de toate am avut nevoie să ştim produsul 7x3, adică am apelat
la tabla înmulţirii învăţată în clasa a II-a, adică la memoria noastră.
Deci aşa cum pentru a putea rezolva această problemă noi am
trebuit să apelăm la memoria noastră, tot aşa şi microprocesorul are
nevoie de memoria internă în orice moment al funcţionării sale.

Un dezavantaj al memoriei interne este acela că în momentul


opririi alimentării cu curent electric al calculatorului, tot conţinutul ei se
pierde, se şterge. De aceea într-un calculator este nevoie şi de
memoria externă.
Memoria internă mai este cunoscută şi după iniţialele RAM (Random
Access Memory).

Memoria externă:
este constituită în principal de către harddisc şi este locul unde sunt
memorate toate programele instalate şi conţinute pe calculator.
Memoria externă are şi o capacitate de memorare mult mai mare
decât cea internă. Când dorim să lucrăm cu un anumit program,
microprocerorul încarcă fişierele acelui program în memoria internă şi
apoi se poate lucra cu programul cerut.

Memoria externă are calitatea de a nu-şi pierde conţinutul atunci


când calculatorul este oprit.
Alte suporturi pentru memoria externă sunt discheta, CD-ul, DVD-ul,
etc, suporturi de asemenea folosite pentru păstrarea programelor pe
timp îndelungat şi atunci când calculatorul este oprit.

Perifericele:
Tastatura, mouse-ul, precum monitorul şi imprimanta sunt periferice, de intrare, respectiv de ieşire. Cu ajutorul lor
trimitem comenzi şi date calculatorului, sau primim date de la calculator. Am numit aici doar perifericele cele mai uzuale
şi des întâlnite.
Cu linie punctată am simbolizat cutia calculatorului, numită şi Unitate centrală (UC). Toate aceste elemente fac parte din
aşa zis parte hardware a unui calculator.

Programele pe care voi le veţi face de acum înainte, defapt toate programele existente pe un calculator,
începând cu Windows-ul, se numesc software.

Hardware = partea unui calculator pe care o loveşti când apar probleme de software.

Memoria internă
Trecem în continuare la descrierea mai în detaliu a memoriei interne. Aceasta este alcătuită din mai multe celule
de memorie. Şi pentru a avea o imagine cât mai simplificată şi uşor de reţinut, o asemănăm cu un fagure de miere:

Fiecare celulă de memorie are aceeaşi capacitate de memorare (1 octet) şi are o adresă a ei, notată deasemenea în
sistemul binar. Adresa deţinută de fiecare celulă este unică şi permite microprocesorului să identifice celula respectivă şi
să o apeleze când are nevoie. O dată ce microprocesorul a depus un anumit conţinut într-o celulă de memorie sau în
mai multe, el trebuie să ştie în orice moment după aceea în care celulă (sau celule) se găseşte ceea ce a memorat.

Bit = unitate de măsură pentru cantitatea de informaţii şi care poate lua doar una din cele două stări: 0 sau 1.

Bitul find foarte mic deoarece poate avea doar stările 0 sau 1, nu este o unitate de măsură convenabilă. De
aceea în informatică ca unitate de măsură se foloseşte întotdeauna un grup de câte 8 biţi, numit octet sau byte.

1 octet = 1 byte = 8 biţi

Putem da mai jos exemple de scriere binară a unui octet:

sau

multiplii octetului sunt:

1 Kbyte = 1024 byte


1 Mbyte = 1024 Kbyte = 1024 x 1024 byte
1 Gbyte = 1024 Mbyte = 1024 x 1024 Kbyte
Alcatuirea interna a unui calculator

pg7
Deobicei astăzi capacităţiile memoriilor interne sunt de 128, 256, 512 Mbyte, iar hardiscurile au deobicei capacităţi de
stocare de 20, 40, 80 Gbyte, sau mai mult.

Care este diferenţa dintre un programator amator şi unul profesionist? Cel amator crede ca un kilobyte are 1000
de bytes, iar cel profesionist crede că un kilometru are 1024 de metri.

Î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. Ce rol are microprocesorul într-un calculator?


2. Enumeraţi două diferenţe între memoria internă şi cea externă.
3. Care este unitatea de măsură utilizată în informatică?

(răspunsuri)
raspunsuri Alcatuirea interna

pg8

Alcătuirea internă a unui calculator

Răspunsuri:
1. Un microprocesor are rolul de a efectua toate calculele şi de a coordona operaţiile executate de calculator.

2. Conţinutul memoriei interne se pierde la oprirea alimentării acesteia cu tensiune, în timp ce datele memorate în memoria externă se păstrează. O a
doua diferenţă ar fi faptul că o memorie internă are capacităţi de stocare de ordinul sutelor de megaocteţi, pe când un hardisc poate memora zeci
de gigaocteţi de programe şi date.

3. Octetul = 8 biţi.
Variabilele

pg9

Variabilele
Modul de lucru cu variabile
Utilizarea textelor explicative
Cele două roluri ale instrucţiunilor Write şi Writeln
Comentarii în programe Pascal
Scrierea ştiinţifică
Întrebări recapitulative
Î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;


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;


î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 ; , . :
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.
Variabilele

pg10

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
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ă.
Variabilele

pg11

Î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:

Write (‘Textul este: ‘);


2. Afişarea conţinutului unei variabile, caz în care între paranteze este introdusă chiar numele variabilei
respective, fără apostroafe:

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:
Variabilele

pg12

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

Î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.

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}
Variabilele

pg13
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:

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:

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)
raspunsuri Variabilele

pg14

Variabilele

Răspunsuri:
1. Variabila este o mărime ce îşi poate schimba conţinutul o dată sau de mai multe ori, pe parcursul execuţiei unui program. Folosim variabilele într-un
program pentru ca acesta o dată scris, să nu mai trebuiască să sufere modificări ulterioare. Ceea ce se va modifica de fiecare dată va fi doar
conţinutul variabilelor, dar nu şi programul în sine.

2. Am învăţat până acum patru tipuri de variabile Pascal: integer, real, char şi string.

3. Da, o variabilă string poate conţine unul sau mai multe caractere de orice fel.

4. Trebuie să declarăm toate variabilele înaintea începerii programului, în aşa numita secţiune de declaraţii.

5. La declararea fiecărei variabile trebuie specificat numele ei şi tipul de care este.

6. Pentru a putea introduce conţinutul unei variabile de la tastatură ne folosim de instrucţiunea Readln.

7. După ce am introdus de la tastatură, conţinutul unei variabile este depozitat în locaţia de memorie rezervată dinainte variabilei respective.

8. Înainte ca conţinutul unei variabile să fie citit de către program, variabila nu conţine nimic. Deci şi locaţia de memorie rezervată ei este goală.

9. Un text explicativ are rolul de a ghida utilizatorul pe parcursul rulării programului, apare în locul unde a fost scris în program şi se introduce cu
instrucţiunile Write sau Writeln. În schimb comentarile sunt porţiuni de text cuprinse între acolade, nu sunt destinate utilizatorului ci doar
programatorului şi nu se văd deloc în timpul execuţiei programului. De aceea ele pot fi scrise oriunde vrem (avem nevoie) într-un program.
Operatii cu variabile

pg15

Operaţii cu variabile

Un program nu foloseşte variabile doar pentru a citi conţinutul lor de la tastatură şi apoi al afişa întocmai cum a
fost introdus. Deobicei în cursul unui program se efectuează diferite operaţii asupra unor variabile.
Cunoaştem deci cele patru tipuri de variabile:

pentru valori numerice pentru caractere

Operaţii se pot face asupra tuturor tipurilor de variabile, dar în principal cele mai multe operaţii se efectuează asupra
variabilelor numerice.

În Pascal apar unele diferenţe fată de felul de notare cum sunteţi obişnuiţi de la matematică

Dacă în matematică scriem În Pascal scriem


5+2=7 7:= 5+2

Observaţi deci simbolul := ce difineşte operaţia de atribuire în Pascal, echivalent cu = din matematică.

Forma generala a unei operaţii de atribuire este:

Deasemenea în operaţia de atribuire a unei variabile, pot intra şi numere fixe, numite constante, al căror conţinut
nu se modifică în nici un fel, niciodată.
Cel mai simplu exemplu pentru aceasta este formula mediei aritmetice a două numere a şi b, în care avem constanta
doi:

media := (a+b)/2;

Dacă la adunare şi scădere simbolurile operaţiilor rămân aceleaşi, la înmulţire şi împărţire simbolurile operaţiilor se
schimbăl faţă de cele cunoscute din matematică:

Operaţia Simbol în matematică Simbol în Pascal


Adunare + +
Scădere — —
Înmulţire *
Împărţire /

Tastele corespunzătoare celor patru operaţii aritmetice le puteţi găsi dispuse şi lângă tastele numerice, în partea dreaptă
a tastaturii.
Deasemenea regula folosirii parantezelor pentru a schimba ordinea operaţiilor este aceeaşi ca şi la matematică.

Operaţii posibile şi imposibile:


Totdeauna trebuie să fim foarte atenţi la tipul variabilei conţinută în operaţia de atribuire:
Operatii cu variabile

pg16

Dăm mai jos un exemplu de program care va citi de la tastatură două numere, apoi le va aduna şi în final va
afişa rezultatul adunării.

program adunare;
Var nr1, nr2, sum: integer;
Begin
Write (‘Introduceti primul numar=‘);
Readln (nr1);
Write (‘Introduceti al doilea numar=‘);
Readln (nr2);
sum:= nr1 + nr2; {operatia de atribuire}
Writeln (‘Suma este= ‘, sum);
end.

Conţinutul celor două numere ce trebuiesc adunate va fi stocat în două variabile nr1 şi nr2 de tip
integer. Rezultatul adunării va fi depus într-o variabilă numită sum, de asemenea de tip integer. La fiecare
rulare a programului se pot introduce oricare alte două numere întregi, afişându-se apoi rezultatul adunării acestora.

Observăm că variabilele rămân tot aceleaşi (nr1, nr2 şi sum) numele şi tipul lor nu se mai modifică, doar
conţinutul lor poate fi altul la fiecare rulare a programului. Binenţeles acelaş lucru este valabil şi la programele anterioare:
text, text2 şi numere şi în oricare program Pascal scris corect. (vezi şi execuţia animată a programului).

trebuie acordată mare atenţie numelui variabilelor. Acesta trebuie să fie acelaş peste tot în program, identic
cu numele atribuit în secţiunea de declaraţii. Ca exemplu dacă în secţiunea de declaraţii am declarat cele trei variabile cu
numele nr1, nr2 şi sum, exact aceste nume şi numai acestea trebuiesc folosite peste tot mai departe în cuprinsul
programului. Dacă am denumit deci o variabilă de intrare nr1, nu putem după aceea să-i introducem valoarea de la
tastatură folosind instrucţiunea readln şi scriind readln (n1), sau readln (numar1), deoarece limbajul
Pascal nu va recunoaşte cine este acest n1 sau numar1, sau orice alt nume diferit de nr1 şi prin urmare va afişa un
mesaj de eroare în timpul compilării. Deasemenea numele programului scris în prima linie din program nu poate fi identic
cu numele vreunei variabile din program (vezi exemple de programe greşite ).

Dăm mai jos un exemplu de program care va citi de la tastatură două numere întregi, apoi le va împărţi şi în final
va afişa rezultatul împărţirii.

program impartire; {program pt impartirea a 2 nr intregi}


Var nr1, nr2: integer;
C: real;
Begin
Write ('Introduceti primul numar=');
Readln (nr1);
Write ('Introduceti al doilea numar=');
Readln (nr2);
C:= nr1/nr2;
Writeln ('Rezultatul este=', C);
end.

Conţinutul celor două numere ce trebuiesc împărţite unul la celălalt va fi stocat în două variabile nr1 şi nr2 de tip
integer. Rezultatul împărţirii va fi depus într-o variabilă numită C (de la cât) şi care este de tipul real.

la tipul variabilelor! Pentru a stabili corect tipul fiecărei variabile ne uităm la conţinutul pe care va trebui să-l
stocheze variabila, în orice situaţie posibilă matematic.
Deşi cele două numere ce se împart sunt de tipul integer, rezultatul împărţirii lor poate fi un număr întreg sau real (cu
zecimale). Ca exemplu gândiţi-vă doar la rezultatul împărţirii a 9 la 2, sau a lui 25 la 3. Deci pentru ca programul să
poată funcţiona în orice situaţie, adică pentru oricare două perechi de numere întregi, rezultatul împărţirii lor trebuie
conţinut într-o variabilă de tip real. De aceea am declarat variabila C de tipul real.

De reţinut: Deobicei când în calculul valorii unei variabile intervin operaţii de împărţire sau extragere de radical, trebuie
ca variabila să fie declarată de tip real, deoarece cu siguranţă vor fi situaţii când valoarea ei va fi un număr real.

Exerciţiu: cunoscând cele de până acum să se scrie un program care calculează media aritmetică a oricare
două numere reale. Afişaţi rezultatul cu 3 zecimale. Verificaţi-vă apoi cu program medie.

Erori ce pot apărea într-un program


Operatii cu variabile

pg17
Programarea este unul din domeniile ce solicită la maxim capacitatea de concentrare şi atenţia programatorului.
Deoarece calculatorul nu poate ghici ceea ce doream noi să execute, el poate doar
executa ceea ce i-am spus noi să facă, intrucţiunile pe care i le dăm trebuie să fie
scrise într-un limbaj folosit la modul cel mai corect. Binenţeles situaţia este valabilă
nu doar pentru programele scrise în Pascal, ci pentru toate programele scrise în orice
limbaj.
Şi pentru că a greşi este totuşi omeneşte, să vedem ce erori pot apare în timpul scrierii
unui program şi unde trebuie să fiţi mai atenţi. În principal avem două tipuri de erori:

A. Erori de sintaxă: apar datorită neatenţiei şi sunt erorile cauzate de scrierea


incorectă sau incompletă a unor porţiuni de program. Ca şi exemple am putea
aminti:
scrierea greşită a denumirilor de instrucţiuni, sau de variabile (în cel de al
doilea caz folosiţi defapt nume de variabile nedeclarate; vezi şi
exemple de programe greşite).
scrierea greşită a semnelor de punctuaţie (două puncte în loc de punct
şi virgulă sau invers, etc).
alegerea incorectă a tipului unor variabile (vezi şi Operaţii posibile şi imposibile ).
Toate aceste erori sunt detectate de către compilator în timpul operaţiei de compilare, ele nu permit
compilarea programului, compilatorul afişând în schimb diverse mesaje de eroare.

B. Erori logice: sunt datorate alegerii incorecte a metodei sau formulei de rezolvare a problemei pe care vrem s-o
rezolvăm cu ajutorul calculatorului. Ceea ce face şi mai dificilă depistarea şi corectarea acestor erori, este că
compilatorul nu le detectează.
Ca să luăm un exemplu simplu, să presupunem că în programul ce calculează media a două numere reale, în
formula de calcul a mediei nu folosim parantezele ci scriem media:=a+b/2;
Aici compilatorul nu are de unde ghici ce vrem noi defapt să calculăm şi dacă restul programului este scris corect,
compilarea este posibilă, deci şi execuţia programului. Dar oare rezultatul afişat va fi cel corect?

O metodă de verificare (deşi nu perfectă) a acestor erori logice, este compararea rezultatelor. Adică în primul
rând se rezolvă problema manual pe hârtie, luând doua-trei exemple (cu cât mai multe cu atât mai bine), iar apoi se
rezolvă problema şi cu ajutorul programului.
Ca să rămânem tot la exemplul nostru cu programul medie, luaţi mai întâi o hârtie şi calculaţi media a două sau trei
perechi de numera oarecare (puteţi să vă folosiţi şi de un calculator de buzunar). Sau puteţi să vă folosiţi şi de exemple
rezolvate din manuale sau culegeri, dacă există. După aceasta calculaţi media aceloraşi perechi de numere prin
intermediul programului scris de voi. Dacă rezultatele sunt identice, aveţi şanse ca programul să fie corect, dacă
rezultatele nu coincid trebuie revăzut programul şi depistate erorile.

Deisgur că în cazul unor programe simple cum este cel pentru calculul mediei aritmetice, nu este greu ca
acestea să fie scrise corect. Dar mai târziu când veţi ajunge să scrieţi programe mai lungi, mai complexe, ce conţin
calcule matematice complicate, posibilitatea apariţiei unor astfel de erori este foarte mare.

Î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. Dorim să scriem un program prin care calculăm suma a trei numere întregi sau reale. De ce tip vom alege cele
trei variabile?
2. De ce unei variabile de tip string, care poate conţine orice tip de caractere (inclusiv cifrele), nu îi putem
atribui rezultatul unei operaţii aritmetice între două sau mai multe variabile de tip integer sau real?
3. Ce diferenţe există între denumirile Readln şi readln şi ridln?

(răspunsuri)
raspunsuri Operatii cu variabile

pg18

Operaţii cu variabile

Răspunsuri:

1. Pentru ca variabilele să poată conţine oricând orice tip de număr, fie întreg fie real, le declarăm pe toate de tipul real.

2. Una este să introducem de la tastatură prin intermediul unei instrucţiuni Readln, o valoare variabilei de tip string, care oricum va fi considerată
ca un simplu şir de caractere (indiferent dacă acele caractere sunt litere şi cifre şi semne de punctuaţie) şi cu totul altceva este să atribuim unei
variabile de tip string rezultatul unei operaţii aritmetice (+ - */) între două sau mai multe variabile de tip integer sau real, rezultat care
este considerat un număr. Deci operaţii de forma sunt imposibile, deoarece o variabilă de tip string nu poate
conţine numere. Identic şi pentru variabilele de tip char.

3. Dacă între denumirile Readln şi readln nu există nici o diferenţă, sunt denumirea uneia şi aceleiaşi instrucţiuni (Pascal nu ţine cont de literele
mari sau mici), în schimb ridln este o eroare de sintaxă.
Aplicatii ale informaticii in geometrie si fizica

pg19

Aplicaţii ale informaticii în geometrie şi fizică


Problema 1

Problema 1: Dacă se cunosc măsurile a două unghiuri dintr-un triunghi, să se calculeze măsura celui de al
treilea.
Spre exemplificare avem desenate trei triunghiuri diferite:

În fiecare triunghi se cunosc măsurile a două din unghiuri, anume A şi B, şi se cere aflarea celui de al treilea C.

Se vede că nu este rentabil să facem un program doar pentru rezolvarea unui singur triunghi exemplificat mai
sus, nici chiar pentru toate cele trei. Până scriem programul în Pascal, putem afla mult mai simplu şi mai repede măsura
unghiului C, printr-un calcul mintal sau folosind un calculator de buzunar.

În cazul nostru trebuie să scriem un program cu ajutorul căruia să putem calcula măsura celui de al 3-lea unghi
dacă cunoaştem pe celelalte două, pentru toate tipurile de triunghiuri ce pot exista în natură (o infinitate de triunghiuri),
nu doar pentru cele trei exemplificate mai sus.

Etapele rezolvării unei probleme cu ajutorul calculatorului:


1. Definirea problemei: este etapa când se urmăreşte înţelegerea problemei şi stabilirea datelor care se cunosc şi
care se cer, ipoteza şi concluzia.

2. Elaborarea programului în Pascal: se indentifică variabilele, li se dă un nume fiecăreia, se specifică tipul lor şi se
stabilesc care sunt variabilele de intrare şi variabilele de ieşire. Se elaborează programul, care constă dintr-o
succesiune de instrucţiuni şi operaţii finite care să conducă la aflarea datelor care nu se cunosc şi se cer aflate,
succesiune numită şi algoritm.

3. Compilarea şi rularea programului: etapă în care se corectează eventualele erori (de sintaxă sau logice) apărute,
iar la final se obţine rezultatul corect al problemei.

Pe scurt deci, aşa cum:

Întotdeuna se porneşte de la rezolvarea matematică sau fizică a problemei. De la geometrie ştim că în


orice triunghi măsura unhiurilor este egală cu 180 0, adică scris matematic: A + B + C = 1800.

Observăm că în toate din cele trei exemple datele noaste de intrare sunt măsurile unghiurilor A şi B care se cunosc iniţial,
iar concluzia reprezintă măsura unghiului C, care trebuie aflată.
Aplicatii ale informaticii in geometrie si fizica

pg20
Formula de calcul a unghiului C valabilă pentru orice triunghi este deci:

C = 180 0 - A - B.

Putem trece la elaborarea programului Pascal:


Vom defini trei variabile, câte una pentru fiecare unghi şi denumite la fel ca şi unghiurile triunghiului, dar notate cu litere
mici, pentru nu se confunda unghiul A cu variabila a, corespunzătoare lui. Variabile sunt de tipul integer
(presupunând că măsurile unghiurilor sunt valori întregi, fără zecimale). Numărul 180 este o constantă, el nu trebuie nici
definit, nici citit de la tastatură, el face parte din formulă şi atât.

program unghiuri;
VAR a, b, c: integer;
begin
write(‘Introduceti masura primului unghi=’);
readln(a); {prima variabila isi primeste valoarea}
write(‘Introduceti masura celui de al doilea unghi=’);
readln(b); {a 2-a variabila isi primeste valoarea}
c:=180–a–b; {a 3-a variabila isi primeste valoarea}
writeln(‘Masura unghiului cerut este= ‘,c);
end.

Conţinutul a doua din aceste variabile (a şi b) se cunoaşte dinainte, deci va fi introdus de la tastatură prin
operaţia de citire readln, ele se numesc variabile de intrare. În schimb conţinutul variabilei c nu se cunoaşte, el fiind
cel care reprezintă defapt soluţia problemei şi se numeşte variabilă de ieşire.
Dar variabilei c i se poate atribui o valoare aflată prin calcul, pe baza formulei cunoscută din geometrie. Deci în rândul
c:= 180 – a – b; avem o operaţie de atribuire şi anume variabilei c i se va atribui o valoare rezultată din
efectuarea calculului aritmetic pe baza fomulei descrisă. Mai precis din 180 se scad valorile conţinute de variabilele a şi b
în momentul respectiv.

Cu riscul de a vă plictisi, vreau să rezum cele spuse de mai sus în următorul tabel:

Mărimi matematice Variabile corespunzătoare în program


Se cunosc, se dă: A şi B a respectiv b
Se cere: C c
Pentru a rezolva toate cele trei triunghiuri, programul va trebui rulat tot de trei ori, de fiecare dată pentru câte
un triunghi. Observăm că programul nu se modifică cu nimic, variabilele rămân aceleaşi (numele lor adică), numărul şi
tipul lor la fel, ceea ce se schimbă la fiecare execuţie a programului este doar valoarea conţinută de variabilele
programului.
Dacă luăm ca exemplu primul triunghi, vom avea a=60 şi b=60 de unde va rezulta prin calcul c=60, în al 2-lea
triunghi vom avea a=80 şi b=70 iar valoare lui c va rezulta 30.

Şi aşa mai departe, dacă se cunosc măsurile a două unghiuri dintr-un triunghi, programul poate calcula măsura
celui de al treilea unghi pe baza formulei cunoscută din geometrie, lucru valabil pentru orice triunghi existent, adică pentru
o infinitate de triunghiuri.

Elevii sunt invitaţi să rezolve cu ajutorul acestui program şi alte probleme din manuaul de matematică de clasa a VI-a,
sau culegeri.

Acesta este avantajul informaticii şi anume că se scrie programul o singură dată, pentru o clasă de probleme,
urmând ca după aceea cu ajutorul acelui program, să se poată rezolva toate problemele de acel gen.

Problema 2: Să se calculeze aria unui triunghi, când se cunosc baza şi înălţimea sa.

În toate cele trei triunghiuri se cunosc lungimea bazei BC şi înălţimea AA1. Acestea reprezintă datele ce se dau, ipoteza şi
sunt notate la fel în toate cele trei triunghiuri doar valoarea lor diferă de la un triunghi la altul. Concluzia o reprezintă aria
fiecărui triunghi notată cu (de mână), notată deasemenea la fel în toate cele trei triunghiuri, doar valoarea ei va diferi
de la un triunghi la altul.

Din geometrie ştim că aria unui triunghi este dată de formula:


Aplicatii ale informaticii in geometrie si fizica

pg21

În etapa scrierii programului observăm că pentru a scrie programul Pascal avem nevoie să definim trei variabile,
tot atâtea câte mărimi sunt prezente în formula de mai sus şi notate la fel ca şi datele problemei noastre: BC, AA1 şi
A.
De ce tip vor fi aceste variabile? Ne uităm la unităţiile de măsură exprimate în acest caz în centimetrii. În problema
anterioară era vorba de grade. Lăsând la o parte unităţiile de măsură, observăm că datele noastre reprezintă defapt
nişte numere şi atât. Deci variabilele noastre vor fi de tip numeric, mai precis integer sau real. Asta pentru că
dacă luăm ca exemplu o adunare 40 + 60 va da întodeuna ca şi rezultat 100, indiferent ca aceştia reprezintă grade,
centimetri, litri, metri, sau orice altceva, iar limbajul Pascal nu ţine cont de unităţiile de măsură.

Vom avea deci variabila BC ce va reprezenta baza triunghiurilor noastre, ea va conţine valorile bazelor
triunghiurilor, iar dacă vom lua ca exemplu datele din primul triunghi, variabila BC va primi valoarea de 25. Faptul că
aceştia sunt centimetrii nu mai interesează programului nostru, programul îi va considera un simplu număr. Analog şi
pentru celelalte două variabile AA1 şi A, valorile ce le vor conţine vor fi privite ca simple numere.

Observăm deci că:

Mărimi matematice Variabile corespunzătoare în program


Se cunosc, se dă: BC şi AA1 BC respectiv AA1
Se cere: A

Programul poate arata în felul următor:

program arii; {program pt calculul ariei


oricarui triunghi}
VAR BC, AA1, A: real;
begin
write (‘Introduceti baza triunghiului=’);
readln (BC);
write (‘Introduceti inaltimea triunghiului=’);
readln (AA1);
A:=(BC+AA1)/2;
writeln (‘Aria triunghiului este=‘,A:6:2);
end.
Aşa cum formula din geometrie este valabilă pentru calculul ariei oricărui triunghi (o infinitate) şi programul
nostru poate calcula aria oricărui triunghi, dacă se cunosc şi se introduc valorile corespunzătoare bazei triunghiului şi a
înălţimii acestuia.
Exerciţii:
Determinaţi aria celor trei triunghiuri din figură cu ajutorul programului de mai sus.
Folosind manualul de matematică sau culegeri, se pot da mai multe exemple de triunghiuri în care se cunoaşte lungimea
bazei şi a înălţimii pentru a exersa calculul ariei, utilizând programul arii.

Problema 3: Calcululaţi distanţa parcursă de un vehicul ce se mişcă rectiliniu şi uniform, atunci când se cunosc
viteza acestuia şi timpul parcurs.

Pornim de la formula cunoscută de la fizică şi anume: D=v t

unde aşa cum am spus, viteza şi timpul se cunosc, iar concluzia o reprezintă distanţa parcursă.

Pentru a scrie un program în Pascal care să rezolve această problemă vom defini trei variabile, notate tot ca şi
mărimile din fizică corespunzătoare şi anume D, v şi t. Pentru a simplifica problema convenim ca datele de intrare,
adică vitezele şi timpii să fie numere întregi, fără zecimale şi putem defini atunci variabilele programului ca fiind de tipul
integer.
Mărimi fizice Variabile corespunzătoare în program
Se cunosc, se dă: v şi t v respectiv t
Se cere: D D
Programul acesta poate arata în felul următor:

program miscare; {program pt calculul vitezei unui vehicul}


VAR D, v, t: integer;
begin
write (‘Ce viteza are vehicolul? = ’);
readln (v);
write (‘Care este timpul parcurs? = ’);
readln (t);
D:=v*t;
writeln (‘Distanta parcursa este=‘,D,’ Km’);
end.

Observaţi că am utilizat cele două scopuri ale instrucţiunii Writeln repetat. Primul scop l-am folosit pentru
afişarea textului explicativ Distanta parcursa este= care apare în program scris între apostroafe, urmează
afişarea valorii variabilei D, iar a treia oară folosim din nou instrucţiunea Writeln pentru a afişa un text explicativ şi
anume unitatea de măsură Km scrisă şi ea după cum vedeţi, între apostroafe. Toate acestea sarcini pot fi executate de
o singură instrucţiune Writeln, într-un singur rând, dacă sunt despărţite prin virgule.
Aplicatii ale informaticii in geometrie si fizica

pg22

Pentru a vedea cum funcţionează programul, elevii sunt invitaţi sa-l ruleze folosind datele din tabelul de mai jos
şi complectând apoi valorile necunoscute cu rezultatele obţinute pe calculator.

automobil tractor autobuz camion motocicletă

v= 90 Km/h v= 30 Km/h v= 50 Km/h v= 70 Km/h v= 160 Km/h


t= 6 ore t= 3 ore t= 2 ore t= 12 ore t= 4 ore
D=? D=? D=? D=? D=?

Ne-am înţeles deci, că introduceţi doar valorile numerice ale mărimilor viteză şi timp. Unităţile de măsură din tabel au
doar rol simbolic, informativ. Iar la afişarea rezultatului, unitatea de măsură se afişează deasemenea cu scop sugestiv şi
estetic, importantă fiind defapt valoarea distanţei parcurse.

Desigur programul este valabil pentru calculul deplasării oricărui autovehicul, când se cunosc viteza acestuia şi
timpul parcurs, nu doar pentru cele 5 exemple de mai sus. Se mai pot găsi şi alte exemple de acest gen de probleme în
manualul de fizică.

Exerciţiu: realizaţi o altă variantă a programului miscare, (puteţi să-l numiţi miscare2) cu care să calculaţi
distanţa parcursă de vehicole, ţinând cont de valorile vitezei şi timpului din tabelul de mai jos:

automobil tractor autobuz camion motocicletă

v= 90,4 Km/h v= 30,9 Km/h v= 50,72 Km/h v= 70,06 Km/h v= 160 Km/h
t= 6,3 ore t= 3,4 ore t= 2,5 ore t= 12 ore t= 4,8 ore
D=? D=? D=? D=? D=?

Afişaţi la final distanţa parcursă, cu două zecimale.

Problema 4: Dacă se cunoaşte masa unui corp, atunci să se afle greutatea sa.

Ca deobicei pornim de la formula din fizică şi anume G= 9,8 m

Ne uităm la formulă şi ne întrebăm câte mărimi avem?, care este ipoteza şi care concluzia?

Ştim deci că se dă masa corpului, notată cu m care se ştie, iar concluzia o reprezintă greutatea G care se cere
a fi aflată. Numărul 9,8 reprezintă acceleraţia gravitaţională şi ştim din fizică că ea este o constantă. Prin urmare
programul nostru Pascal va conţine doua variabile, notate la fel ca şi mărimile fizice corespunzătoare, adică variabila m şi
variabila G.

Mărimi fizice Variabile corespunzătoare în program


Se cunosc, se dă: m m
Se cere: G G

Pentru simplificarea problemei convenim ca masele corpurilor sunt toate numere întregi, deci variabila m va fi de
tipul integer.
De ce tip va fi variabila G? Deşi m este de tip integer totuşi datorită prezenţei în formulă a constantei 9,8 aceasta va
face ca unele rezultate să fie deasemenea numere reale. Gândiţiv-ă la rezultatul înmulţirii a oricărui număr întreg mai mic
ca 10 cu 9,8. Deci pentru ca variabila G să poată conţine orice valoare, ea va trebui să fie de tipul real.

Scriem acum programul:

program greutati; {program pt determinarea greutatii unui corp}


VAR m: integer;
G: real;
begin
write (‘Introduceti masa corpului=’);
readln (m);
G:=9.8*m;
writeln (‘Greutatea corpului este=‘,G:6:2);
end.
Pentru a vedea câteva exemple, complectaţi tabelul de mai jos, folosindu-vă de datele cunoscute din prima linie,
rulând programul de tot atâtea ori:

Se dă: m= 7 Kg m= 10 Kg m= 27 Kg m= 146 Kg m= 2 Kg m= 78 Kg m= 5 Kg m= 59 Kg
Să se afle: G=? G=? G=? G=? G=? G=? G=? G=?

Exerciţiu: modificaţi programul în aşa fel încât la final, după afişarea valorii greutăţii, să apară de fiecare dată şi unitatea
de măsură a acesteia, adică N.

Problema 5: Un geolog a găsit mai multe feluri de minerale. Se cere să se realizeze un program în Pascal, cu
ajutorul căruia geologul să poată stabili densitatea mineralelor sale, dacă le cunoaşte iniţial masa şi volumul.

Din fizică cunoaştem formula densităţii unui corp în funcţie de masa şi volumul acestuia:

Se observă că programul nostru va trebui să aibă trei variabile, tot atâtea câte mărimi sunt prezente în formula
de mai sus. Deoarece pe tastatura nu există litera grecească convenim să notăm variabila corespunzătoare densităţii
cu d. În schimb celelalte două variabile pot fi notate ca şi mărimile fizice corespunzătoare lor şi anume m şi V.
Aplicatii ale informaticii in geometrie si fizica

pg23
Avem deci:

Mărimi fizice Variabile corespunzătoare în program


Se cunosc, se dă: m şi V m respectiv V
Se cere: d

Deoarece în natură nu există minerale de mase şi volume cu valori numere întregi, ci mai mult ca sigur că
masele şi volumele mineralelor geologului vor avea valori cu zecimale, rezultă că toate variabilele noastre trebuie să fie
de tipul real.

Trecem la scrierea programului, care poate arăta aşa:

program densitati; {program pt determinarea densitatii unui corp}


VAR m, V, d: real;
begin
write (‘Introduceti masa corpului=’);
readln (m);
write (‘Introduceti volumul corpului=’);
readln (V);
d:=m/V;
writeln (‘Densitatea corpului este=‘,d:6:2,' g/dm3');
end.
Pentru a vedea funcţionarea programului, presupunem de exemplu că mineralele geologului nostru au
următoarele valori:

m= 9000 g m= 12300 g m= 13850 g m= 9420 g m= 11860 g


V= 2,1 dm3 V= 1,4 dm3 V= 1,2 dm3 V= 1,6 dm3 V= 1,8 dm3
=? =? =? =? =?

Se cere complectarea tabelului de către elevi, rulând programul pentru fiecare mineral în parte.

Î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. Referitor la datele unei probleme, de câte feluri sunt variabilele ce le corespund?


2. Care sunt etapele rezolvării unei probleme cu ajutorul calculatorului?
3. Unităţile de măsură ale mărimilor ce intervin într-o problemă, au vreo legătură cu programul Pascal cu care
rezolvăm problema respectivă?

(răspunsuri)
raspunsuri Aplicatii ale informaticii

pg24

Aplicaţii ale informaticii în geometrie şi fizică

Răspunsuri:
1. Avem variabile de intrare, corespunzătoare datelor ce se cunosc într-o problemă (ipotezei) şi variabile de ieşire, corespunzătoare datelor ce se
cer calculate (concluziei).

2. Etapele sunt:
definirea problemei (când se stabilesc ipoteza şi concluzia)
elaborarea programului Pascal
compilarea şi lansarea în execuţie a programului (cu corectarea eventualelor greşeli), în final obţinându-se rezultatul căutat.

3. Nu, unităţiile de măsură nu au nici un rol într-un program Pascal, deoacere limbajul Pascal nu ţine cont de ele. La introducerea datelor de la tastatură
se introduc numai valorile numerice, iar la sfârşit putem afişa eventual şi unităţile de măsură, cu scop informativ şi estetic.
De exemplu, în cazul programului miscare (cazul automobilului), este mai sugestiv şi estetic ca programul să afişeze
Distanta parcursa este=540 Km
decât doar,
Distanta parcursa este=540
Incheiere

pg25

Încheiere
Sper ca prezentul curs să vă fi alungat unele neclarităţi şi mai ales temeri cu privire la acest tărâm atât de greu
accesibil unora, numit informatica. Dar mai ales, sper că v-a trezit interesul şi dorinţa de a învăţa programare şi de a
concepe programe, de a vedea cum calculatorul se transformă în mâinile voastre într-o unealtă nu doar prietenoasă, ci
şi docilă şi ascultătoare, care execută întocmai tot ce-i “porunciţi” să facă prin intermediul programelor.

Acest curs este doar începutul studiului vostru în ştiinţa şi arta programării. Vă aşteaptă un drum lung în care veţi
avea multe de învăţat şi asimilat.
Veţi avea ca tovarăşi pe acest drum doar puterea voastră de concentrare şi raţionament, logica şi obişnuinţa de a fi
ordonat, în tot ceea ce veţi face. Să nu uităm şi cunoştinţele de matematică, fără de care nu puteţi face programare.

Mai mult ca sigur, la un moment dat, va trebui să treceţi la alte limbaje de programare, mai complexe. Dar dacă
acum în acest curs aţi înţeles noţiunile de bază ale programării, ce este o variabilă şi care este rolul ei în program, cum se
alege tipul unei variabile în funcţie de datele pe care le va memora, vă va fi mai uşor să continuaţi studiul limbajului Pascal
şi ulterior, a altor limbaje.

Perseverând, informatică vă poate aduce multe satisfacţii şi bucurii şi nu în ultimul rând, avantaje financiare
foarte mari. Mult succes!

Se întâlneşte pe stradă un programator (de o viaţă) şi un mecanic auto (de o viaţă). După ce se salută,

programatorul se adresează către mecanic:


- Dacă aş fi fost eu mecanic, în locul tău aş fi inventat o maşină care depăşea viteza sunetului şi consuma pe jumatate
benzină.
La care mecanicul îi replică:
- Dacă tu inventa-i maşina de care zici, când trebuia să frânez brusc, apărea pe un ecran un mesaj care mă întreba:
"Eşti sigur că vrei să frânezi? (DA/NU)"