Initiere Turbo Pascal

25
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) pg1

Transcript of Initiere Turbo Pascal

Page 1: Initiere Turbo Pascal

IntroducereInformatica 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 transmitemcalculatorului 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 toatedomeniile. La acest lucru a contribuit şi apariţia calculatoarelor personale în 1975 şi mai ales a celor fabricate de cătreIBM din 1981 încoace şi numite PC. Dacă până la apariţia calculatoarele personale informatica era un domeniu exclusivoamenilor de ştiinţă (un calculator cântărea câteva sute de Kg sau mai mult şi necesita “îngrijirea” permanentă a uneiechipe 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 şide către copii.

Pentru a putea lucra, comunica, cu un calculator avem nevoie de un program, iar programele se scriu într-unlimbaj de programare. De-a lungul timpului au apărut multe limbaje de programare, dintre care unele astăzi nici nu semai folosesc. Pascal (denumire dată în cinstea fizicianului cu acelaş nume, care în 1641 a inventat prima maşină de calculmecanică cu roţi dinţate) este un limbaj de programare apărut încă din 1971, iniţial folosit pe marile calculatoare, darulterior fiind adaptat şi pentru PC-uri primind denumirea de Turbo Pascal. Astăzi este folosit deoarece este simplu şicomod de utilizat, repezentând astfel un mijloc pentru pătrunderea elevilor în tainele informaticii. Programarea estedomeniul care difereţiază un utilizator de un programator. Utiliztor de calculatoare poate fi aproape oricine, darprogramatori devin doar persoanele care dispun de un anumit nivel de inteligenţă, capacitate de concentrare şiraţ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 claselemai mari care doresc să înveţe singuri acasă sau să-şi complecteze cunoştinţele din şcoală. Am încercat ca prinproblemele ş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 foldersau director, fişier, fişier executabil, precum şi operaţii cu acestea (copiere, redenumire, mutare, ştergere) în generaleste vorba de utilizarea Windows Explorer.

Revenind la acest curs, recomand să fie parcurse şi studiate toate exemplele din el, chiar dacă elevul areimpresia că a înţeles aspectele problemei, deoarece nu s-a putut lămuri şi explica detaliat toate problemele şi aspecteleunei programări corecte ce apar într-o situaţie, de la primul exemplu, ci unele detalii au fost explicate şi dezvăluite peparcursul a mai multor exerciţii. De mare importanţă este posibilitatea ca elevul să instaleze pe propriul calculator unuldin programele Turbo Pascal sau Borland Pascal şi apoi să scrie, să ruleze şi să observe cum funcţionează fiecareprogram 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)

pg1

Page 2: Initiere Turbo Pascal

Limbaje de programare. Limbajul Pascal

Primul program PascalInstrucţ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 calculadecâ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 numitegramatică, tot aşa scrierea unui program pentru calculator presupune respectarea unor reguli şi convenţii. Acestea sîntcuprinse în ceea ce numim limbaj de programare. Limbajul în care erau scrise primele programe se numeşte limbaj codmaş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 unorgreş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 limbajede nivel înalt sunt formate din instrucţiuni care pot fi mai uşor înţelese de om, iar sensul lor în general, este derivat dinlimba engleză. Prin aceste instrucţiuni pur şi simplu spunem calculatorului ce să facă, (respectând binenţeles un anumitset 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 acestaevoluat. De aceea un program scris în unul din aceste limbaje, numit şi program sursă, pentru a putea fi executat decă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ă oinstrucţiune prin care comadăm calculatorului să scrie ceva, să afişeze un text, pe monitor. Numele acestei instrucţiunieste 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:

beginWrite (‘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şitulprogramului se anunţă cu cuvântul end urmat de punct. Deasemenea fiecare linie de comandă se termină cu punct şivirgulă.

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

Pentru ca să vedem rezultatul execuţiei programului, trebuie ca el să fie scris aşa cum este în mediul de editareTurbo 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ămseparat o anexă a instalării şi utilizării programului Turbo Pascal 7.0. Cei care îl au instalat pe calculator şicunosc 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ătulrâ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:

Limbaje de programare

13.10.2009 09:51

pg2

Page 3: Initiere Turbo Pascal

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:

beginwrite (‘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 momentulrulă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:

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

(răspunsuri)

pg3

Page 4: Initiere Turbo Pascal

Limbaje de programare. Limbajul Pascal

Răspunsuri:

Limbajul cod maşină1..

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 dinlimba engleză. Exemple de astfel de limbaje sunt Pascal, C, C++, Java, Fortran, etc.

2.

Program sursă3..

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ătrecalculator

4.

.

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

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. Indiferentcum este scrisă, o instrucţiune are acelaş rol într-un program

6.

.

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

raspunsuri Limbaje

pg4

Page 5: Initiere Turbo Pascal

Alcătuirea internă a unui calculator

MicroprocesorulMemoria 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 altecomponente, dar nu intrăm în amănunte.

Alcatuirea interna a unui calculator

pg5

Page 6: Initiere Turbo Pascal

Memoria internă:

este componenta în care se stochează (memorează) programele cucare se lucrează la un moment dat.Ca să înţelegem mai bine rolul memoriei, să rezolvăm exerciţiul7x3+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 apelatla 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 amtrebuit să apelăm la memoria noastră, tot aşa şi microprocesorul arenevoie de memoria internă în orice moment al funcţionării sale.

Un dezavantaj al memoriei interne este acela că în momentulopririi alimentării cu curent electric al calculatorului, tot conţinutul ei sepierde, se şterge. De aceea într-un calculator este nevoie şi dememoria externă.Memoria internă mai este cunoscută şi după iniţialele RAM (RandomAccess Memory).

Memoria externă:

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

Memoria externă are calitatea de a nu-şi pierde conţinutul atuncicând calculatorul este oprit.Alte suporturi pentru memoria externă sunt discheta, CD-ul, DVD-ul,etc, suporturi de asemenea folosite pentru păstrarea programelor petimp î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 lortrimitem 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 dinaş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 celulede 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 însistemul binar. Adresa deţinută de fiecare celulă este unică şi permite microprocesorului să identifice celula respectivă şisă o apeleze când are nevoie. O dată ce microprocesorul a depus un anumit conţinut într-o celulă de memorie sau înmai 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ă. Deaceea î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 byte1 Mbyte = 1024 Kbyte = 1024 x 1024 byte1 Gbyte = 1024 Mbyte = 1024 x 1024 Kbyte

Alcatuirea interna a unui calculator

pg6

Page 7: Initiere Turbo Pascal

Deobicei astăzi capacităţiile memoriilor interne sunt de 128, 256, 512 Mbyte, iar hardiscurile au deobicei capacităţi destocare 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 1000de 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:

Ce rol are microprocesorul într-un calculator?1.Enumeraţi două diferenţe între memoria internă şi cea externă.2.Care este unitatea de măsură utilizată în informatică?3.

(răspunsuri)

Alcatuirea interna a unui calculator

pg7

Page 8: Initiere Turbo Pascal

Alcătuirea internă a unui calculator

Răspunsuri:

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

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 adoua 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 zecide gigaocteţi de programe şi date.

2.

Octetul = 8 biţi.3.

raspunsuri Alcatuirea interna

pg8

Page 9: Initiere Turbo Pascal

Variabilele

Modul de lucru cu variabileUtilizarea textelor explicative

Cele două roluri ale instrucţiunilor Write şi WritelnComentarii în programe PascalScrierea ştiinţificăÎntrebări recapitulative

În cazul primului nostru program, textul ce apărea pe ecran era conţinut în instrucţiunea WRITELN. Dacă amdori ca să modificăm acest text ar trebui să intrăm în program şi să modificăm însăşi programul. Acest lucru este foartenerentabil şi dificil, deoarece nu toţi care utilizează programe sunt şi programatori. Să ne gândim că vindem un programunui 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 folositevariabilele. Ele pot stoca datele noastre de intrare şi ieşire, fără a fi necesară modificarea programului de cătreprogramator. Astfel toate programele fiind scrise nu pentru a rezolva o situaţie particulară sau o singură problemă, ci ofamilie 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 tipde variabile memorează întotdeauna doar unul din aceste caractere şi le veţi folosi foarte des în programe maicomplexe, 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:

declararea variabilelor1.citirea lor, introducem o valoare de la tastatură ce va reprezenta conţinutul acelei variabile2.(opţional deocamdată) operaţii asupra variabilelor3.afişarea variabilelor4.

Declararea variabilelor - declararea unei variabile se face la începutul unui program, înainte de începerea execuţieiprogramului. Se stabilesc astfel numărul de variabile ce vor fi folosite în program, numele variabilelor şi tipullor.

1.

Variabilele

pg9

Page 10: Initiere Turbo Pascal

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 numeleacelei variabile. Despre conţinutul unei variabile vorbim doar în timpul rulării programului şi numai atunci. Cândun 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ătrevariabila respectivă pe timpul execuţiei programului.

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 lalocul respectiv programul aşteaptă introducerea de la tastatură de către utilizator a valorii ce va fi conţinută învariabila resprectivă.

2.

operaţii asupra variabilelor - (vom vorbi mai târziu)3.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);

4.

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 maiuşor un program, atunci când avem mai multe. El poate fi acelaş sau diferit de numele fişierului în care am salvatprogramul, 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, eaputând stoca deci orice şir de caractere dorit. De fiecare dată cînd programul este lansat în execuţie el poate citi de latastatură orice şir de caractere (propoziţie) prin intermediul instrucţiunii Readln, urmând ca după aceea propoziţiarespectivă să fie afişată pe monitor, prin execuţia instrucţiunii Write. Programul afişează deci, automat oricepropoziţ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 aceease 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 peparcursul execuţiei programului.

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

Variabilele

pg10

Page 11: Initiere Turbo Pascal

În momentul declarării variabilelor (deci înainte de begin şi de execuţia oricărei instrucţiuni) programulcomandă automat microprocesorului să rezerve un loc în memoria internă pentru depozitarea ulterioară aconţ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 maimulte, 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 careva 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 variabileipropoz. Pentru a afla acest conţinut microprocesorul comandă citirea locaţiei de memorie rezervat variabileirespective şi afişarea lui.Mai observăm că instrucţiunile se execută în ordinea succesivă în care sunt scrise în program, începând cu primainstrucţ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 şianexă 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ă aconţ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 introducede la tastarură, precum şi conţinutul cărei variabile este afişat. De aceea într-un program se mai introduc şi linii de textexplicativ, care uşurează utilizarea lui de către un client. Linile de text explicative sunt introduse tot cu ajutorulinstrucţ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ă fiecompatibile cu tipul variabilelor, declarate în secţiunea de declaraţii. Astfel o variabilă de tip integer sau real nupoate conţine caractere (litere şi nici semne de punctuaţie), de asemenea o variabilă de tip string poate conţine şicifre, dar asupra ei nu se pot aplica operaţiile aritmetice. Pentru a se evita deci, ca utilizatorul să introducă o valoarenepotrivită î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:

Afişarea unui text explicativ, caz în care textul este încadrat între două apostroafe:1.

Write (‘Textul este: ‘);

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

2.

Write (propoz);

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

Variabilele

pg11

Page 12: Initiere Turbo Pascal

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. Vomavea pentru aceasta două variabile numite nr1 şi nr2, una de tipul integer iar alta real, care ştim că pot stocanumere.

Putem da variabilelor orice nume dorim (cu excepţia celor rezervate) dar de obicei se recomandă a se da niştenume sugestive. Celor două variabile le puteam da de exemplu şi nume ca coco şi miaumiau, dar pentru că în cazulnostru 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 maipot introduce şi comentarii. Acestea sunt utile doar programatorului pentru a înscrie diverse informaţii despre ce face şidespre cum este conceput respectivul program. Comentariile reprezintă orice text încadrat între două acolade şi poate fipe unul sau mai multe rânduri:

{acesta este un comentariu in Pascal}

şi au următoarele caracteristici:

sunt ignorate de către compilator. Rezultă de aici că:1.nu sunt executate de către calculatortextul cuprins între acolade nu va fi afişat niciunde cînd vom rula programulcomentariile nu modifică cu nimic execuţia programului şi nici rezultatele afişate

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

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

pg12

Page 13: Initiere Turbo Pascal

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 timpulrulă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 programemari, de zeci sau sute de instrucţiuni, linile de comentariu introduse din loc în loc şi în punctele principale aleprogramului, vă vor ajuta foarte mult să vă daţi seama despre ce este vorba în program, fie că reluaţi lucrul la acelprogram după un timp mai îndelungat, fie că după voi va urma un alt programator care va trebui să facă unelemodifică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 cu11 cifre, care deobicei conţine multe zerouri şi care conţine şi punctul zecimal, litera E, iar la sfârşit încă 2 cifre, numiteexponent. 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 dinprogramul 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:

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

(răspunsuri)

Variabilele

pg13

Page 14: Initiere Turbo Pascal

Variabilele

Răspunsuri:

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-unprogram 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 doarconţinutul variabilelor, dar nu şi programul în sine.

1.

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

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

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

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

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

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

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

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 cuinstrucţiunile Write sau Writeln. În schimb comentarile sunt porţiuni de text cuprinse între acolade, nu sunt destinate utilizatorului ci doarprogramatorului şi nu se văd deloc în timpul execuţiei programului. De aceea ele pot fi scrise oriunde vrem (avem nevoie) într-un program.

9.

raspunsuri Variabilele

pg14

Page 15: Initiere Turbo Pascal

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 afost 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ă asupravariabilelor 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ţinutnu 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 constantadoi:

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

pg15

Page 16: Initiere Turbo Pascal

Dăm mai jos un exemplu de program care va citi de la tastatură două numere, apoi le va aduna şi în final vaafiş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 tipinteger. Rezultatul adunării va fi depus într-o variabilă numită sum, de asemenea de tip integer. La fiecarerulare 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ă, doarconţ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, identiccu numele atribuit în secţiunea de declaraţii. Ca exemplu dacă în secţiunea de declaraţii am declarat cele trei variabile cunumele nr1, nr2 şi sum, exact aceste nume şi numai acestea trebuiesc folosite peste tot mai departe în cuprinsulprogramului. Dacă am denumit deci o variabilă de intrare nr1, nu putem după aceea să-i introducem valoarea de latastatură folosind instrucţiunea readln şi scriind readln (n1), sau readln (numar1), deoarece limbajulPascal nu va recunoaşte cine este acest n1 sau numar1, sau orice alt nume diferit de nr1 şi prin urmare va afişa unmesaj de eroare în timpul compilării. Deasemenea numele programului scris în prima linie din program nu poate fi identiccu 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 finalva 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 tipinteger. 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 (cuzecimale). 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 trebuieconţ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, trebuieca 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 oricaredouă 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

pg16

Page 17: Initiere Turbo Pascal

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 doarexecuta ceea ce i-am spus noi să facă, intrucţiunile pe care i le dăm trebuie să fiescrise î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 oricelimbaj.Şi pentru că a greşi este totuşi omeneşte, să vedem ce erori pot apare în timpul scrieriiunui program şi unde trebuie să fiţi mai atenţi. În principal avem două tipuri de erori:

Erori de sintaxă: apar datorită neatenţiei şi sunt erorile cauzate de scriereaincorectă sau incompletă a unor porţiuni de program. Ca şi exemple am puteaaminti:

scrierea greşită a denumirilor de instrucţiuni, sau de variabile (în cel de aldoilea caz folosiţi defapt nume de variabile nedeclarate; vezi şiexemple 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 permitcompilarea programului, compilatorul afişând în schimb diverse mesaje de eroare.

A.

Erori logice: sunt datorate alegerii incorecte a metodei sau formulei de rezolvare a problemei pe care vrem s-orezolvă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, înformula 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?

B.

O metodă de verificare (deşi nu perfectă) a acestor erori logice, este compararea rezultatelor. Adică în primulrâ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 serezolvă 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 treiperechi de numera oarecare (puteţi să vă folosiţi şi de un calculator de buzunar). Sau puteţi să vă folosiţi şi de exemplerezolvate din manuale sau culegeri, dacă există. După aceasta calculaţi media aceloraşi perechi de numere prinintermediul 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 caacestea să fie scrise corect. Dar mai târziu când veţi ajunge să scrieţi programe mai lungi, mai complexe, ce conţincalcule 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:

Dorim să scriem un program prin care calculăm suma a trei numere întregi sau reale. De ce tip vom alege celetrei variabile?

1.

De ce unei variabile de tip string, care poate conţine orice tip de caractere (inclusiv cifrele), nu îi putematribui rezultatul unei operaţii aritmetice între două sau mai multe variabile de tip integer sau real?

2.

Ce diferenţe există între denumirile Readln şi readln şi ridln?3.

(răspunsuri)

Operatii cu variabile

pg17

Page 18: Initiere Turbo Pascal

Operaţii cu variabile

Răspunsuri:

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

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

2.

Dacă între denumirile Readln şi readln nu există nici o diferenţă, sunt denumirea uneia şi aceleiaşi instrucţiuni (Pascal nu ţine cont de literelemari sau mici), în schimb ridln este o eroare de sintaxă.

3.

raspunsuri Operatii cu variabile

pg18

Page 19: Initiere Turbo Pascal

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 altreilea.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 maisus, nici chiar pentru toate cele trei. Până scriem programul în Pascal, putem afla mult mai simplu şi mai repede măsuraunghiului 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 unghidacă 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:

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

1.

Elaborarea programului în Pascal: se indentifică variabilele, li se dă un nume fiecăreia, se specifică tipul lor şi sestabilesc care sunt variabilele de intrare şi variabilele de ieşire. Se elaborează programul, care constă dintr-osuccesiune 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.

2.

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.

3.

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 1800, 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

pg19

Page 20: Initiere Turbo Pascal

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

C = 1800 - 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 literemici, 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 nicidefinit, 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ă prinoperaţia de citire readln, ele se numesc variabile de intrare. În schimb conţinutul variabilei c nu se cunoaşte, el fiindcel 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ândulc:= 180 – a – b; avem o operaţie de atribuire şi anume variabilei c i se va atribui o valoare rezultată dinefectuarea 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 bSe cere: C c

Pentru a rezolva toate cele trei triunghiuri, programul va trebui rulat tot de trei ori, de fiecare dată pentru câteun triunghi. Observăm că programul nu se modifică cu nimic, variabilele rămân aceleaşi (numele lor adică), numărul şitipul lor la fel, ceea ce se schimbă la fiecare execuţie a programului este doar valoarea conţinută de variabileleprogramului.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-leatriunghi 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ăsuracelui de al treilea unghi pe baza formulei cunoscută din geometrie, lucru valabil pentru orice triunghi existent, adică pentruo 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 şisunt notate la fel în toate cele trei triunghiuri doar valoarea lor diferă de la un triunghi la altul. Concluzia o reprezintă ariafiecărui triunghi notată cu (de mână), notată deasemenea la fel în toate cele trei triunghiuri, doar valoarea ei va diferide la un triunghi la altul.

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

Aplicatii ale informaticii in geometrie si fizica

pg20

Page 21: Initiere Turbo Pascal

Î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 şiA.De ce tip vor fi aceste variabile? Ne uităm la unităţiile de măsură exprimate în acest caz în centimetrii. În problemaanterioară era vorba de grade. Lăsând la o parte unităţiile de măsură, observăm că datele noastre reprezintă defaptniş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 bazelortriunghiurilor, 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 şipentru 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 AA1Se 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 programulnostru 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 lungimeabazei ş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 cunoscviteza 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 şimă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 tipulinteger.

Mărimi fizice Variabile corespunzătoare în program

Se cunosc, se dă: v şi t v respectiv tSe 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 pentruafiş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 şianume unitatea de măsură Km scrisă şi ea după cum vedeţi, între apostroafe. Toate acestea sarcini pot fi executate deo singură instrucţiune Writeln, într-un singur rând, dacă sunt despărţite prin virgule.

Aplicatii ale informaticii in geometrie si fizica

pg21

Page 22: Initiere Turbo Pascal

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/ht= 6 oreD=?

v= 30 Km/ht= 3 oreD=?

v= 50 Km/ht= 2 oreD=?

v= 70 Km/ht= 12 oreD=?

v= 160 Km/ht= 4 oreD=?

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

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

Exerciţiu: realizaţi o altă variantă a programului miscare, (puteţi să-l numiţi miscare2) cu care să calculaţidistanţ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/ht= 6,3 oreD=?

v= 30,9 Km/ht= 3,4 oreD=?

v= 50,72 Km/ht= 2,5 oreD=?

v= 70,06 Km/ht= 12 oreD=?

v= 160 Km/ht= 4,8 oreD=?

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 cerea fi aflată. Numărul 9,8 reprezintă acceleraţia gravitaţională şi ştim din fizică că ea este o constantă. Prin urmareprogramul nostru Pascal va conţine doua variabile, notate la fel ca şi mărimile fizice corespunzătoare, adică variabila m şivariabila G.

Mărimi fizice Variabile corespunzătoare în program

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

Pentru simplificarea problemei convenim ca masele corpurilor sunt toate numere întregi, deci variabila m va fi detipul 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 vaface ca unele rezultate să fie deasemenea numere reale. Gândiţiv-ă la rezultatul înmulţirii a oricărui număr întreg mai micca 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 unitateade 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, cuajutorul 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 formulade 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

pg22

Page 23: Initiere Turbo Pascal

Avem deci:

Mărimi fizice Variabile corespunzătoare în program

Se cunosc, se dă: m şi V m respectiv VSe 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ă fiede 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 auurmătoarele valori:

m= 9000 g

V= 2,1 dm3m= 12300 g

V= 1,4 dm3m= 13850 g

V= 1,2 dm3m= 9420 g

V= 1,6 dm3m= 11860 g

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:

Referitor la datele unei probleme, de câte feluri sunt variabilele ce le corespund?1.Care sunt etapele rezolvării unei probleme cu ajutorul calculatorului?2.Unităţile de măsură ale mărimilor ce intervin într-o problemă, au vreo legătură cu programul Pascal cu carerezolvăm problema respectivă?

3.

(răspunsuri)

Aplicatii ale informaticii in geometrie si fizica

pg23

Page 24: Initiere Turbo Pascal

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

Răspunsuri:

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

1.

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

2.

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şezeDistanta parcursa este=540 Kmdecât doar,Distanta parcursa este=540

3.

raspunsuri Aplicatii ale informaticii

pg24

Page 25: Initiere Turbo Pascal

ÎncheiereSper 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 aconcepe 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ţiavea 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 fiordonat, î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 sealege 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 financiarefoarte 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 jumatatebenzină.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)"

Incheiere

pg25