Sunteți pe pagina 1din 40

Jeni Ionela Moise

_____________

Informatica… la început

Clasa a V-a
Informatica… la început Jeni Ionela Moise

Prefaţă

Prezenta lucrare se adresează profesorilor care predau la clasa a V-a, unde sunt
întâmpinate cele mai multe dificultăţi la această materie, datorită faptului că are alocată o
oră, ca şi disciplină opţională. O oră care de obicei este prea scurtă sau în care cei mai mulţi
dintre elevi scriu încet sau iau notiţele pe sărite şi ajungând acasă descoperă că nu au după
ce învăţa.
Lucrarea este adaptată particularităţilor de vârstă ale elevilor din primul an de
gimnaziu şi este structurată pe trei capitole: Noţiuni introductive, Algoritmul şi Limbajul
Pascal.
Deoarece trăim intr-o lume avansată in tehnologie şi ţinând seama că majoritatea
elevilor „s-au născut cu calculatorul în braţe” nu am insistat prea mult pe partea de
tehnologie ci mai mult pe algoritmi şi implementarea lor în limbajul Pascal.

Jeni Ionela Moise

2
Informatica… la început Jeni Ionela Moise

Cuprins

Cap. I. Noţiuni introductive...................................................................................................... 4


1. Alcătuirea unui calculator ..................................................................................................... 5
2. Resurse fizice ........................................................................................................................ 6
3. Mediul Windows .................................................................................................................. 8
4. Lucrul cu ferestre .................................................................................................................. 9
5. Foldere şi fişiere .................................................................................................................. 10
II. ALGORITMUL .................................................................................................................. 11
1. Noţiunea de algoritm ........................................................................................................... 12
2. Datele cu care lucrează algoritmii ....................................................................................... 15
3. Etapele rezolvării unei probleme......................................................................................... 15
III. LIMBAJUL DE PROGRAMARE PASCAL.................................................................... 17
1. Vocabularul limbajului Pascal ............................................................................................ 19
2. Mediul limbajului de programare ........................................................................................ 20
3. Descrierea şi prelucrarea datelor ......................................................................................... 24
4. Structuri de control .............................................................................................................. 28
4.1 . Structuri alternative ......................................................................................................... 28
4.2 Structuri repetitive ............................................................................................................. 30
4.2.1 Structuri repetitive cu număr necunoscut de paşi........................................................... 30
4.2.2. Structura repetitivă cu număr cunoscut de paşi ............................................................. 33
5. Operaţii cu fişiere text ........................................................................................................ 35
6. Funcţii matematice uzuale ................................................................................................... 37
7. Implementarea algortmilor elementari ................................................................................ 38
7.1 Ecuaţia de gradul I............................................................................................................. 38
7.2 Numere prime .................................................................................................................... 38
7.3 Oglinditul unui număr (inversul unui număr) ................................................................... 39
Bibliografie selectivă............................................................................................................... 40

3
Informatica… la început Jeni Ionela Moise

Cap. I. Noţiuni introductive

În acest capitol vom învăţa:

1. Alcătuirea unui calculator

2. Resurse fizice

3. Mediul Windows

4. Lucrul cu ferestre

5. Foldere şi fişiere

4
Informatica… la început Jeni Ionela Moise

1. Alcătuirea unui calculator

Datorită evoluţiei spectaculoase desfăşurate în a doua jumătate a secolului XX şi începutul


secolului XXI, s-a ajuns astăzi, ca un calculator personal să aibă loc pe un birou simplu sau chiar
să fie portabil (laptopul).
Un sistem de calcul este un ansamblu de echipamente (dispozitive) electronice care permit
introducerea de date sau comenzi, prelucrarea datelor precum şi interpretarea comenzilor şi
furnizarea rezultatelor:
Dispozitivele sunt:
- pentru introducerea datelor – tastatură, mouse, scanner, altele;
- pentru prelucrarea datelor pe baza unui program – microprocesorul;
- pentru extragerea rezultatelor – imprimanta, monitorul şi nu numai;
- pentru memorarea datelor – memoria internă, hard-disk-ul, CD, DVD, etc.

O configuraţie minimală a unui sistem de calcul arată ca în imagine.

Însă acesteia i se pot ataşa diferite dispozitive care măresc aria de utilizare
a unui sistem de calcul, şi anume:
- imprimanta, cu ajutorul căreia rezultatele pot fi transpuse pe hârtie;

- scannerul, care preia date în formă grafică, imagini,


texte;
- modemul, prin intermediul căruia se poate comunica pe internet;
- boxele, care împreună cu placa de sunet pot să transforme calculatorul
într-o combină muzicală.

Descrierea tuturor echipamentelor care se pot ataşa unui sistem de calcul


este aproape imposibilă, existând în permanenţă noi apariţii.
Pentru ca tot acest ansamblu să funcţioneze, el trebuie să fie dotat cu
„inteligenţă”.
Calculatorul este format din doua părţi:
- Hardware – totalitatea resurselor fizice (tot ce se poate atinge)
- Software – totalitatea resurselor logice (programe).
Programul este reprezentarea codificată a unui sir de acţiuni.

5
Informatica… la început Jeni Ionela Moise

Activitate independentă

1. Deschideţi calculatorul la care lucraţi în laboratorul de informatică.


2. Realizaţi un document Word în care enumeraţi domeniile în care poate fi utilizat
calculatorul şi descrieţi pe scurt aplicaţiile acestuia.
3. Salvaţi documentul cu numele UTIL_CALC intr-un dosar(folder) cu numele vostru.

Temă pentru acasă


1. Căutaţi in Dicţionarul limbii române termenii informaţie, dispozitiv şi sistem. Transcrieţi
definiţiile in caiete.
2. Care sunt principalele funcţii ale unui sistem de calcul ?
3. Creaţi un document Word cu numele REPREZENTARE cu următorul conţinut şi salvaţi-l
pe un suport de memorie la alegere:
Sistemul de numeraţie binar. Reprezentarea datelor în calculator
În calculator datele se reprezintă codificat în sistemul de numeraţie binar. Sistemul de
numeraţie în baza 2 utilizează numai două simboluri: 0 şi 1. Un număr din baza 10 se
converteşte în baza 2 după următoarea regulă: Se împarte numărul la 2 şi se reţine restul,
apoi câtul obţinut se împarte la 2 şi se reţine restul; se repetă acest procedeu până se obţine
câtul 0. Numărul în baza 2 se obţine scriind toate resturile găsite de la ultimul la primul.
Exemplu: 5610=1110002

2. Resurse fizice

Unitatea centrală este dispozitivul cel mai important, care conţine, în forme miniaturizate,
subansamble şi componente cu o funcţionalitate bine determinată. Cele mai importante
componente sunt procesorul, memoria internă şi echipamentele de stocare a datelor.
Componentele unităţii centrale comunică intre ele prin canale specializate, încorporate pe
placa de baza.
Procesorul este un dispozitiv care efectuează calculele aritmetice şi logice. Un procesor
este cu atât mai performant cu cât poate efectua mai repede, mai multe operaţii. Viteza cu care
operează un procesor este dată de aşa numita „frecvenţă”.
Memoria este un dispozitiv care permite reprezentarea codificată a informaţiei. Cea mai
mică unitate de informaţie poartă numele de bit, având două valori convenţionale: 0 şi 1. Unităţile
de măsură ale informaţiei (memoriei) sunt:
 Byte (octet) reprezintă un şir de 8 biţi;
 Kilobyte(Kb) reprezintă 210 = 1024 octeţi;
 Megabyte(Mb) reprezintă 210 =1024 Kb;
 Gigabyte(Gb) reprezintă 210 = 1024 Mb;
 Terabyte(Tb) reprezintă 210 = 1024 Gb.

6
Informatica… la început Jeni Ionela Moise

În mod obişnuit, un sistem de calcul are doua tipuri de memorii:


- memoria internă, prescurtat RAM
- memoria externă.
Memoria internă este folosită pentru execuţia programelor. Mai precis, orice program este
adus în memoria RAM, apoi este executat, adică sunt urmate acţiunile codificate de program,
după care memoria devine disponibilă pentru alte acţiuni.
Programele, datele şi informaţiile în general, sunt păstrate pe dispozitive de memorie
speciale, cele mai cunoscute fiind:
o Hard disk-ul;
o Floppy disk-ul;
o CD-ROM sau CD-RW;
o DVD-ROM sau DVD-RW.
o

1. Deschideţi calculatorul la care lucraţi în laborator.


2. Căutaţi pe Internet informaţii(caracteristici) despre următoarele dispozitive şi copiaţi-le în
caiete: monitor, tastatură, mouse.

Temă pentru acasă


1. Creaţi în folderul vostru un document Word numit COMPONENTE_CALC care să
conţină următorul text:
În interiorul calculatorului putem găsi:
Placa de bază pe care se află de regulă microprocesorul, memoriile şi circuitele de
comunicare între diferite componente. Pe aceasta se mai află, în nişte socluri speciale,
dispozitive numite carduri sau plăci, cum ar fi:
Placa video;
Placa de sunet;
Placa de reţea;
Modemul;
Dispozitivele de control pentru unităţile de memorie externă;
Alte dispozitive de intrare sau ieşire, de exemplu portul de imprimantă sau de
mouse.

7
Informatica… la început Jeni Ionela Moise

3. Mediul Windows

Fără resurse logice, un calculator este un echipament costisitor şi absolut inutil. Totalitatea
programelor care asigură funcţionarea de bază a unui calculator poartă numele de sistem de
operare.
Dintre cele mai cunoscute sisteme de operare menţionăm: UNIX, LINUX, DOS,
WINDOWS.
Lansat în 1985, sistemul de operare Windows a cunoscut numeroase versiuni, dintre care
amintim: Windows 3.11, Windows 95, Windows NT, Windows Me, Windows 2000, Windows
XP, Windows Vista, Windows 7, Windows 8. Sistemul de operare Windows foloseşte o serie de
elemente grafice care uşurează legătura om – calculator:
 Iconiţe sau pictograme;
 Ferestre;
 Meniuri, butoane, casete de dialog şi altele.
Lansarea sistemului de operare Windows se face automat la pornirea calculatorului.
Terminarea unei sesiuni de lucru se face folosind butonul START, opţiunea Shut Down. După
lansarea sistemului Windows se poate observa aspectul ecranului. Fundalul se numeşte desktop
sau suprafaţă de lucru. Aici sunt plasate o mulţime de iconiţe şi bara programelor lansate în
execuţie. Această bară este aşezată, de obicei, în partea de jos a suprafeţei de lucru, iar pe ea se
observă câte un buton pentru fiecare program lansat în execuţie – i se mai spune bara de task-uri.
Butonul START se află în colţul din stânga jos al ecranului, acţionarea sa deschizând o
fereastră de opţiuni. Aceasta este o caracteristică generală a mediului Windows, şi anume că
fiecare acţiune poate avea la rândul său opţiuni, care pot deschide la rândul lor alte variante de
selecţie, etc. Acţionarea butonului stâng al mouse-ului deasupra butonului Start va deschide o
fereastră de opţiuni, fiecare dintre ele având o arie specifică.
Pictograme. Fiecare iconiţă semnifică o aplicaţie, un grup de aplicaţii sau o funcţie. Pentru
execuţia unei aplicaţii se face dublu clic pe iconiţa respectivă. Orice iconiţă are ataşat un meniu de
comenzi rapide la care se obţine acces făcând clic pe butonul din dreapta al mouse-ului, fiind
poziţionaţi pe ea.

1. Încercaţi să testaţi fiecare opţiune a meniului de comenzi rapide ataşat iconiţei My


Documents. Explicaţi pe scurt efectul fiecărei opţiuni.
2. Desenaţi cu ajutorul programului Paint un calculator. Salvaţi fişierul cu numele
CALCULATOR pe Desktop.

Temă pentru acasă


1. Adăugaţi următorul text la documentul COMPONENTE_CALC realizat la tema
precedentă:
Toate calculatoarele moderne au dotare multimedia. Dispozitivele care fac parte din
acest ansamblu sunt:
- placa de sunet;
- CD-ROM;
- plăci specializate în preluarea imaginilor de pe un cablu TV sau video.
2. Desenaţi cu ajutorul programului Paint o faţă zâmbitoare. Salvaţi fişierul cu numele
SMILE în folderul cu numele vostru.

8
Informatica… la început Jeni Ionela Moise

4. Lucrul cu ferestre

Orice acţiune a utilizatorului se desfăşoară intr-o fereastră, deschisă de mediul Windows.


O fereastră este o zonă dreptunghiulară de ecran ce conţine:
Bara de titlu, care afişează numele aplicaţiei şi /sau al documentului;
Bara de meniuri aşezată imediat sub bara de titlu;
Barele de defilare – orizontală şi verticală;
Zona de lucru, care reprezintă porţiunea de ecran în care se execută lucrul propriu-zis cu
aplicaţia;
O mulţime de butoane.
butoane
Bara de titlu
Bara de meniuri

Zona de lucru
Bara de drulare

Cele trei butoane figurate in fereastra aplicaţiei Word de mai sus sunt: butonul de
minimizare, butonul de redimensionare şi butonul de maximizare.
O fereastră poate fi deschisă, mutată, închisă, mărită, micşorată, redimensionată sau redusă
la o iconiţă.

1. Deschideţi calculatorul la care lucraţi. Într-un document Word scrieţi un text oarecare.
Faceţi un printscreen documentului şi ataşaţi imaginea după text. Minimizaţi fişierul, după care
faceţi iar printscreen şi ataşaţi şi această imagine în continuare.
2. Salvaţi fişierul creat cu numele Lucru_ferestre.

9
Informatica… la început Jeni Ionela Moise

5. Foldere şi fişiere

Am tot vorbit despre foldere şi fişiere. Dar oare ce sunt?


Un fişier este o colecţie (mulţime) de date de acelaşi tip. Folderele sunt colecţii de fişiere şi
foldere mai mici numite subfoldere.
Orice fişier şi orice folder are un nume dat de utilizator. Fişierele, spre deosebire de foldere
mai au lângă nume şi extensia, formată din simbolul „punct” ( . ) urmat de un şir de trei caractere
alfanumerice. Extensia precizează tipul de date conţinute de fişierul respectiv.
În spaţiul de lucru fişierele sunt reprezentate de pictograme specifice şi ele tipului de date
conţinute, sub care se află numele fiecăruia.

Iconiţe pentru foldere şi fişiere.

Operaţii cu foldere şi fişiere:


- crearea – click dreapta pe mouse , se alege opţiunea New şi în funcţie de ce vrem să creem ne
alegem folder sau fişier.
- deschiderea – dublu click stânga mouse pe iconiţa folderului sau fişierului.
- închiderea – se apasă butonul închidere, sau din meniul Fişier (File) se alege opţiunea Ieşire
(Exit).
- mărire, micşorare, redimensionare – se realizează cu ajutorul butoanelor specifice.
- copierea – este operaţia de multiplicare a folderului sau fişierului şi se realizează cu opţiunea
Copiere - Lipire (Copy - Paste).
- mutarea – este operaţia de ducere dintr-un loc in altul şi se realizează fie prin tragerea cu
mouse-ul a pictogramei, fie cu opţiunea Decupare - Lipire (Cut - Paste).

10
Informatica… la început Jeni Ionela Moise

II. ALGORITMUL

În acest capitol vom învăţa:

1. Noţiunea de algoritm

- Proprietăţile algoritmilor

2. Datele cu care lucrează algoritmii

3. Etapele rezolvării unei probleme

11
Informatica… la început Jeni Ionela Moise

1. Noţiunea de algoritm

O problemă este formată din date cunoscute şi un enunţ care specifică relaţia existentă între
datele care trebuiesc aflate şi soluţia problemei.
Un algoritm reprezintă o succesiune de etape care se execută într-o anumită ordine astfel
încât plecând de la anumite date de intrare (date cunoscute), într-un timp finit, să se obţină datele
de ieşire (datele care trebuiesc aflate, adică soluţia) .
Făcând o analogie cu matematica, ipoteza (adică acele date cunoscute la începutul
problemei) constituie datele de intrare, iar concluzia (acele date pe care trebuie să aflăm)
constituie datele de ieşire.
Soluţia problemei se obţine prin executarea algoritmului, însă, algoritmul nu poate fi
executat dacă nu este introdus în calculator sub forma unui program folosindu-ne de un limbaj de
programare sau dacă nu este executat pe o maşină formală (in faza de proiectare şi analiză).

De exemplu:
- Algoritmul de interpretare a muzicii prin urmărirea notelor de pe partitură;
- Algoritmul de funcţionare a unei maşini de spălat
- Rezolvarea unei probleme de matematică, fizică, chimie… ; ca de exemplu: regula de trei
simplă, rezolvarea ecuaţiilor de gradul I şi II, găsirea ariei unui dreptunghi, aflarea volumului unei
piramide, schema lui Horner…
- Respiraţia
- Succesiunea zilelor şi nopţilor
- Programul zilnic
- etc.

Problemă :

Să ne gândim, de exemplu, că dorim să facem cartofi prăjiţi. Poate nu vă vine să credeţi, dar şi în
spatele acestei activităţi se ascunde un algoritm.

Să vedem de ce avem nevoie:


- 3 cartofi
- sare
- condimente
- ulei (aceste date constituie datele de intrare.)
Soluţia ar fi produsul finit, adică cartofii prăjiţi.
Paşii care trebuiesc făcuţi după ce am pus deoparte ingredientele până am obţinut cartofii prăjiţi,
constituie algoritmul.

Să vedem o variantă de algoritm pentru a prepara cartofi prăjiţi:


12
Informatica… la început Jeni Ionela Moise

1. Curăţăm cartofii
2. Spălăm cartofii
3. Tăiem cartofii în bucăţele mai mici
4. Punem o tigaie pe focul aragazului şi ulei în tigaie
5. Punem cartofii în tigaie
6. Aşteptăm să se prăjească întorcându-i din când în când
7. Când sunt prăjiţi scoatem cartofii din tigaie şi îi punem într-un castron. Nu uităm să oprim
focul!
8. Punem un pic de sare şi condimente după gust.

POFTĂ BUNĂ!

Temă:

După modelul de mai sus încercaţi un algoritm din viaţa de zi cu zi.

Proprietăţile algoritmilor

1. Claritatea: proprietatea algoritmului de a descrie cu exactitate (fără ambiguităţi) paşii care


trebuiesc parcurşi pentru rezolvarea unei probleme.

De exemplu, nu putem scrie un algoritm pentru următoarea problemă: Dacă Ionuţ ia nota 10 la
examenul de bacalaureat la matematică fie urmează cursurile la Automatică fie urmează cursurile
la Telecomunicaţii.

De asemenea, e bine ca un algoritm să fie clar pentru că, în cazul în care îl implementăm într-un
limbaj de programare şi rulăm programul, să ştim locul de unde ar putea proveni greşeala.

2. Corectitudinea: reprezintă proprietatea algoritmului de a prezenta o soluţie corectă a problemei


date. Din acest motiv este preferabil ca algoritmii să se bazeze pe fapte şi relaţii matematice
demonstrabile.

De exemplu: Se dau valorile pentru lungimea şi lăţimea unui dreptunghi. Să se găsească aria
dreptunghiului.

3. Caracterul determinist: reprezintă proprietatea algoritmului de a furniza întotdeauna aceiaşi


soluţie pentru aceleaşi date de intrare.

Un algoritm nu trebuie să furnizeze la prima execuţie pentru problema 2+5=? rezultatul 7 iar la o
altă execuţie rezultatul -7 sau alt rezultat.

4. Verificabilitatea: reprezintă proprietatea algoritmilor ca în orice moment, în orice etapă să i se


poată verifica corectitudinea de către o persoana umană.

De exemplu, atunci când un algoritm este transpus într-un limbaj de programare, programatorul
poate să execute programul după terminarea fiecărei etape a problemei pe care doreşte să o
rezolve iar în felul acesta să elimine încă din faza de proiectare cea mai mare parte din erori sau

13
Informatica… la început Jeni Ionela Moise

toate. De asemenea, precizăm faptul că majoritatea limbajelor de programare prezintă o funcţie de


executarea a programului pas cu pas şi de urmărire a rezultatelor intermediare care se obţin.

5. Optimalitatea: proprietatea algoritmilor de a găsi o soluţie optimă pentru rezolvarea problemei


atât din punct de vedere a timpului de execuţie cât şi a memoriei ocupate.

De exemplu, dacă dorim să realizăm suma primelor n numere naturale: 1+2+3+...+n

metoda 1: folosim formula n*(n+1)/2

metoda 2: adunăm numerele 1,2,3,..,n pe rând

Metoda 1 este cea optima atât din punct de vedere al timpului de execuţie (o singură instrucţiune)
cât şi a memoriei ocupate de variabilele pe care le folosim.

6. Eficienţa: reprezintă proprietatea unui algoritm de a se termina într-un număr finit şi "rezonabil"
de paşi chiar dacă această soluţie nu este cea optimă. Un algoritm este ineficient dacă se termină
după un timp mai lung sau dorit.

De exemplu, dacă în programul în care a fost implementat algoritmul are ca limită de timp pentru
rulare 1 secundă şi el se termină în 2 secunde, atunci algoritmul nu este eficient.

7. Existenţa unei intrări: deoarece un algoritm trebuie să rezolve o problemă pe baza unor date
cunoscute, existenţa acestor date de intrare este obligatorie.

8. Existenţa unei ieşiri: utilitatea unui algoritm nu se vede dacă nu furnizează o soluţie. De
exemplu, dacă implementăm într-un limbaj de programare algoritmul pentru suma a două numere
şi programatorul uită să scrie instrucţiunea pentru afişarea rezultatului pe ecran, utilizatorul care
execută programul nu poate vedea soluţia problemei.

9. Generalitatea: un algoritm se scrie pentru o clasă de probleme nu doar pentru o problemă.

De exemplu, problema următoare este un caz particular.


Maria are la informatică notele 9 si 8. Ce medie va avea Maria?

Pe când următoarea este o problemă enunţată pentru un caz general:


La o disciplină sunt două note x şi y. Care este media pentru disciplina respectivă?

10. Finitudinea: reprezintă proprietatea algoritmilor de a se termina după un număr finit de paşi.
Dacă un algoritm rulează la nesfârşit atunci trebuie introdusă o condiţie la îndeplinirea căreia
algoritmul să se oprească.

De exemplu: Să se afişeze divizorii naturali ai numărului x.

14
Informatica… la început Jeni Ionela Moise

2. Datele cu care lucrează algoritmii

Orice algoritm lucrează cu date. Aşa cum am mai precizat avem date de intrare (datele
cunoscute înainte de a rezolva problema), datele de ieşire (soluţia problemei, datele care trebuiesc
aflate) dar, în cele mai multe cazuri, pot apare şi date intermediare (numite şi date de manevră)
care sunt temporare şi ajută să se obţină datele de ieşire pe baza datelor de intrare.

Datele cu care lucrează algoritmii pot fi clasificate din mai multe puncte de vedere.
1. În funcţie de posibilitatea de a-şi modifica valoarea:
a) constante: acele date care nu-şi schimbă valoarea (cifre, litere, CNP...)
b) variabile: acele date care îşi schimbă valoarea (temperatura, starea vremii, numele unei
persoane, numărul de telefon...)

O variabilă are următoarele proprietăţi:

- e referită printr-un nume (succesiune de litere şi cifre, primul caracter fiind obligatoriu literă)
- are asociată o valoare
- numele unei variabile nu se schimbă pe parcursul executării algoritmului însă valoarea acesteia
se poate schimba.

2. În funcţie de valoare:

a) date numerice: au ca valori numere naturale, întregi sau reale


b) alfanumerice: au ca valori caractere sau şiruri de caractere
c) logice: pot avea doar valorile adevărat sau fals.

3. Din punctul de vedere a informaţiei pe care o poarta:

a) simple: conţin doar o valoare (număr, caracter, valoare logică)


b) structurate: formate din mai multe date simple între care exista o relaţie de structură.

Dacă datele componente sunt de acelaşi tip atunci structura se numeşte omogenă altfel,
poartă numele de eterogenă. Un exemplu de dată structurată este numele unei persoane care este
formată din mai multe caractere unul după altul, formând astfel un şir de caractere.

3. Etapele rezolvării unei probleme

Rezolvarea unei probleme este un proces care se realizează în mai multe etape:

1. Enunţarea problemei: în aceasta etapă se formulează problema care trebuie rezolvată

2. Analiza problemei:
- stabilirea cerinţelor problemei
- stabilirea datelor de intrare şi ieşire

15
Informatica… la început Jeni Ionela Moise

- stabilirea unui raţionament pentru rezolvarea problemei. Acest raţionament poate să


comporte o formulare matematică şi apoi putem alege modelele şi metodele de rezolvare

3. Elaborarea unui algoritm de rezolvare a problemei. Se realizează prin reprezentarea


algoritmului într-o formă simplă şi clară. Cel mai des se foloseşte reprezentarea algoritmilor în
pseudocod (limbaj natural) sau schema logică.

4. Implementarea algoritmului într-un limbaj de programare

5. Verificarea corectitudinii algoritmului propus. Pentru acest lucru e nevoie să se realizeze


mai multe seturi de date de intrare care să acopere o gamă cât mai largă de valori posibile
incluzând situaţii de excepţie. De asemenea, este recomandabil să se verifice după rezolvarea
fiecărei subprobleme a problemei dacă aceasta este rezolvată corect. Prin această testare se pot
pune în evidenţă omisiuni sau erori de concepţie a algoritmului dar nu garantează corectitudinea
algoritmului pentru orice set de date de intrare. În aceasta etapă se îndepărtează un număr mare de
erori de concepţie şi execuţie.

6. Analiza complexităţii algoritmului: în general există mai mulţi algoritmi pentru a rezolva o
anumită problemă. Ideal este să optimizăm algoritmii găsiţi şi să-i facem mai eficienţi. Eficienţa
unui algoritm se evaluează din două puncte de vedere:
- spaţiul de memorie folosit pentru valorile variabilelor care intervin in algoritm
- timpul de execuţie.
7. La programele mai mari care sunt exploatate de mai mulţi utilizatori e nevoie şi de
- elaborarea documentaţiei pentru folosirea programului
- depistarea erorilor în timpul exploatării de alţi utilizatori şi îndepărtarea acestora în
versiunile următoare ale programului.

După câte observăm, elaborarea algoritmilor nu este un proces liniar. De cele mai multe ori
este nevoie să revenim asupra unei etape şi să o repetăm în vederea îndepărtării erorilor sau a
optimizării programului.

16
Informatica… la început Jeni Ionela Moise

III. LIMBAJUL DE PROGRAMARE PASCAL

În acest capitol vom învăţa:

1. Vobabularul Limbajului Pascal


- Setul de caractere
- Identificatori
- Separatori
- Comentarii
2. Mediul limbajului de programare
3. Descrierea şi prelucrarea datelor
3.1 . Tipuri de date
3.2. Constante, variabile şi expresii
3.3. Citirea şi scrirea datelor
4. Structuri de control
4.1 structuri alternative
- Instrucţiunea If
- Instrucţiunea de selecţie
4.2 Structuri repetitive
4.2.1 Structuri repetitive cu număr necunoscut de paşi
- Structura repetitivă cu test iniţial
- Structura repetitivă cu test final
4.2.2 Structura repetitivă cu număr cunoscut de paşi
- Cu contor crescător
- Cu contor descrescător
5. Operaţii cu fişiere text
- Citirea datelor din fişiere
- Scrierea datelor în fişiere
6. Funcţii matematice uzuale
7. Implementarea algolritmilor elementari
- Ecuaţia de gradul I
- Numere prime
- Oglinditul unui număr

17
Informatica… la început Jeni Ionela Moise

Limbajul de programare reprezintă un mijloc de comunicare între un utilizator, adică o


persoană şi un sistem de calcul, un calculator.
Descrierea algoritmului în limbaj de programare se face cu ajutorul unui program.
Un program reprezintă o succesiune de instrucţiuni, comenzi care sunt executate de către
calculator. Calculatorul poate înţelege mai multe limbaje de programare întrucât fiecare limbaj are
propriul său compilator sau, în limbaj uzual „traducător”.
Deci, un program descrie datele şi prelucrările unui algoritm. Opţional, pot exista şi
declaraţii tehnice prin care se solicită anumite resurse ale calculatorului (biblioteci, opţiuni de
compilare, preprocesare).
În limbajul Pascal, structura unui program are forma:

program identificator_program;
Declaraţii opţiuni de compilare;
Declaraţii de UNIT-uri; (fişiere bibliotecă)
Uses crt, graph, dos;
Definiţii de constante; const n=15;
Definiţii de tipuri de date type sir = array[1..5] of real;
Declaraţii de variabile; var x, y : byte;
Declaraţii de subprograme (funcţii şi sau proceduri);
begin
instrucţiuni;
apeluri de subprograme;
end.

Precizări:

1. Un program Pascal este un ansamblu de instrucţiuni, grupate în corpul programului


principal şi în subprograme, definite de programator dacă acestea sunt necesare.
2. Corpul programului principal este delimitat prin begin şi end.
3. Un bloc de instrucţiuni este delimitat prin begin şi end.
4. Fiecare instrucţiune se termină cu ; (punct şi virgulă).

Exemplu:

Program simplu;
Begin
Writeln („ Un exemplu de program‟);
Writeln („OK‟) ;
End.

18
Informatica… la început Jeni Ionela Moise

1. Vocabularul limbajului Pascal

Orice limbaj de programare foloseşte un vocabular, acesta este format din: setul de
caractere, identificatori, separatori şi comentarii.

Setul de caractere
Prin set de caractere se înţelege totalitatea caracterelor cu ajutorul cărora se poate scrie un
program. El este alcătuit din:
- literele mici şi mari ale alfabetului englez: a, b, ……, z, A, B, …..Z, numite caractere
alfabetice;
- cifrele sistemului zecimal de numeraţie: 0 – 9, numite caractere numerice;
- caractere speciale: +, -, *, /, =, <, >, (, ), [, ], {, }, ., ,, :, ;, “, „, @, !, #, $, %, ^, &, _, |,
blank(spaţiu) etc.

Identificatori
Identificatorul reprezintă numele asociat unui program, variabilă, constantă, etc. având
întotdeauna primul caracter o literă şi nu poate conţine nici un caracter special cu excepţia
caracterului „_”. Poate avea orice lungime.

Exemple:
- identificatori corecţi: a, b1, cod_0, sumă, maxim.
- Identificatori incorecţi: 3a, nr*m, %c.

Există un set de identificatori predefiniţi, numiţi cuvinte – cheie sau cuvinte rezervate:
and, or, while, if, for, do, repeat, array, mod, div, trunc, begin, end, type, procedure,
function, nill.

Separatori
Succesiunile de caractere care luate împreună au o semnificaţie bine definită (unităţile
lexicale) pot fi diferenţiate între ele prin separatori. Aceştia sunt, după caz: blank (caracterul
„spaţiu”), caracterul de sfârşit de linie (EOL), caracterul „;”(punct şi virgulă) care se utilizează
pentru separarea instrucţiunilor şi a declaraţiilor.

Comentarii
Într-un program, sunt necesare note explicative (comentarii) ataşate unor secvenţe de
operaţii, declarări de tipuri de date sau variabile, care nu au rol activ în derularea programului.
Acestea sunt delimitate prin {…} sau (*…*).

Exemplu:
Se citesc două numere naturale a şi b. Să se afişeze suma lor.

program exemplu;
var a, b: integer; (* declararea variabilelor*)
begin {Corpul programului}
write („a= „); readln(a); (*citirea, pe rând, a celor doua numere*)
write („b= „); readln(b);
writeln („Suma a+b = „, a+b); {calcularea şi afişarea sumei}

19
Informatica… la început Jeni Ionela Moise

end.

Temă:

Încercuiţi litera corespunzătoare identificatorului corect definit şi justificaţi răspunsul:


a. e2 b. 5_as c. linie d. nr pare e. da_ca f. ma#ma

2. Mediul limbajului de programare

Mediul de programare este o aplicaţie cu meniu interactiv care are o interfaţă accesibilă
pentru operaţiile necesare dezvoltării, compilării, execuţiei şi depanării programelor (FILE, EDIT,
COMPILE, RUN, DEBUG).

Descrierea unei sesiuni de lucru cu mediul de programare


Pas 1. Lansarea in execuţie a mediului de programare
Lansarea se face fie de pe Desktop, prin activarea pictogramei corespunzătoare limbajului,
fie prin punerea în execuţie a fişierului executabil din directorul BIN numit turbo.exe
Exemplu: C:\tp\bin\turbo.exe

Pas 2. Schimbarea directorului de lucru


În directorul de lucru se salvează programele elaborate pe durata unei sesiuni de lucru.
Pentru schimbare se alege File Change directory… (ca in figură)

Pas 3. Accesul la fişiere


Putem realiza accesul la fişiere în două moduri:
1. dacă vrem să creăm un fişier nou folosim calea File → New.

20
Informatica… la început Jeni Ionela Moise

2. dacă există fişierul folosim calea File →Open, alegând fişierul dorit ( fie cel sursă, fie cel
text cu date de intrare pentru testarea programelor)

Pas 4. Salvarea
Salvarea fişierului se realizează prin următoarele căi:
1. dacă fişierul se salvează în directorul ales, se alege File →Save sau apăsând tasta
funcţională F2.

2. dacă fişierul se salvează sub un alt nume sau intr-un alt director, se alege File →Save as

21
Informatica… la început Jeni Ionela Moise

Pas 5. Editarea programului


Programul se scrie linie cu linie de la tastatură.
E bine de reţinut să salvăm din când în când, apăsând tasta F2!

Pas 6. Compilarea

Compilarea liniilor de program se realizează alegând opţiunea Compile din meniul Compile
sau apăsând concomitent tastele Alt + F9.

22
Informatica… la început Jeni Ionela Moise

Pas 7. Lansarea în execuţie

Se realizează prin alegerea opţiunii Run din meniul Run sau prin apăsarea tastelor Ctrl+F9.

Dacă, după executarea programului, observăm că rezultatele obţinute nu sunt corecte, se


verifică algoritmul şi se reiau paşii 5 – 7 până când programul furnizează date de ieşire corecte.
E posibil ca pe parcursul realizării programului şi lansării acestuia în execuţie să apară erori
de concepţie sau erori de scriere. Pentru tratarea erorilor de concepţie este utilă opţiunea din
meniul Debug →Add Watches.

Pas 9. Închiderea şi părăsirea mediului de programare

Închiderea unui fişier se realizează fie prin combinaţia de taste Alt + F4, fie prin alegerea
opţiunii File →Exit.
23
Informatica… la început Jeni Ionela Moise

Temă:

Deschideţi o sesiune de lucru (fişier) în Turbo Pascal şi realizaţi următoarele cerinţe:


1. Editaţi un fişier sursă cu textul de program de la exemplul din subcapitolul anterior şi
executaţi operaţiile de la paşii 6 şi 7.
2. Inspectaţi meniul mediului de programare şi descrieţi succint opţiunile şi tastele
funcţionale.

3. Descrierea şi prelucrarea datelor

3.1. Tipuri de date


Aşa cum am spus în capitolul anterior, din punct de vedere a informaţiei pe care o poartă,
datele pot fi:
- simple (sau elementare)
- structurate (sau compuse)

Tipurile simple: - intregi:integer, shortint, longint, byte, word.


- reale: real, single, double, extended.
- caracter: char
- logice: boolean

Tipurile structurate – se obţin din tipuri simple prin:


a. compunerea, în memoria internă, a unui număr finit de elemente de acelaşi tip ( tablouri de
date)
b. compunerea, în memoria externă, a unui număr nelimitat de componente (fişiere text) –
texte.

3.2. Constante, variabile şi expresii


3.2.1. Constantele sunt datele care nu îşi modifică valoarea pe parcursul execuţiei
programului.
Tipuri de constante:
- întregi – valorile întregi pot fi numere
- zecimale (baza 10); exemple: 43, 187
- hexazecimale (baza 16)
- reale – atât partea întreagă, cât şi partea zecimală trebuie să conţină cel puţin o cifră.
Exemple: 2.5, 15.17
- caracter – orice caracter scris între apostrofuri
Exemple: „A‟, „4‟
- şiruri de caractere – o succesiune de caractere (cuvinte) scrise tot între apostrofuri
- constante definite prin cuvinte – cheie
Exemple: true, false, MAXINT.

Unei constante de orice tip i se poate ataşa un identificator de constantă, adică un nume. În
cadrul unui program o constantă se declară în secţiunea de declaraţii, astfel:

Const <nume> = <valoare>;


24
Informatica… la început Jeni Ionela Moise

Unde: <nume>→identificatorul de constantă pe care îl dăm constantei


<valoare> → valoarea constantei.
Exemplu: const pi = 3.14;

Observaţii:
 Dacă avem de declarat mai multe constante, vom scrie cuvântul const o singură dată;
 Tipul unei constante rezultă chiar din valoarea sa.

3.2.2. Variabilele sunt datele care nu îşi modifică numele dar îşi modifica valoarea pe
parcursul execuţiei programului. Pe lângă nume şi tip, variabilele mai au şi adresă.
Tipul unei variabile defineşte mulţimea valorilor pe care le poate lua variabila respectivă.

Ca şi constantele, variabilele trebuie declarate în zona de declaraţii a programului.


Declararea lor se face cu ajutorul cuvântului cheie var, astfel:

Var <v1>, <v2>, ……: <tip>;

Unde:
<v1>, <v2>, ……→identificatori de variabilă, separaţi prin virgulă;
<tip> →tipul variabilelor <v1>, <v2>, ……

Observaţii:
 Dacă avem mai multe linii de declaraţii, cuvântul cheie var se scrie o singură data, la
începutul primei linii;
 Putem declara intr-o singură linie mai multe variabile de acelaşi tip, separându-le
prin virgulă.

Exemplu:
Program cu_variabile;
var a1, b: integer;
media_info: real;
begin
………………..
end.

3.2.3 Expresii
O expresie este formată din unul sau mai mulţi operanzi (constante, variabile, funcţii), legaţi
prin operatori. O expresie are o valoare şi un tip.
Într-o expresie, ordinea în care se execută operaţiile este dată de aşa – numitele reguli de
prioritate a operatorilor.
Operatorii sunt de următoarele tipuri:
- operatori aritmetici: +(adunare), - (scădere), * (înmulţire), / (împărţire), div (câtul
împărţirii întregi), mod (restul împărţirii întregi);
- operatori relaţionali: < (mai mic), <=(mai mic şi egal), > (mai mare), >= (mai mare şi
egal), = (egal ) , <> (diferit);
- operatori logici: and (şi), or (sau), not (nu);
25
Informatica… la început Jeni Ionela Moise

- operatorul de atribuire: „:=”.

Astfel, primele se execută operaţiile aritmetice, apoi se evaluează operatorii logici, iar în
final cei relaţionali.

Exemple:
1. expresie numerică :
e:= a*x+b;
2. expresie logica:
(a>0) and (b<0);

Tema:

Deschideţi o sesiune de lucru (fişier) în Turbo Pascal şi realizaţi următoarele cerinţe:


1. Afişaţi expresiile:
a. E1 = „ x este un număr par şi y nu se divide cu 3, 5 şi 7”
b. E2 = „x este mai mic sau cel mult egal cu y şi y este multiplu de 11 şi 9”.
2. Evaluaţi următoarele expresii pentru a=5, b=2, c=3:
a. E1= a+b/2+c * a +b
b. E2 = -c +b* a + (c * b/ a +b + c) / (a * b)

3.3 Citirea şi scrierea datelor


Operaţiile de citire a datelor de intrare şi de scriere a datelor de ieşire se pot realiza prin două
căi:
1. citirea de la tastatură şi afişarea pe ecran;
2. citirea din fişier text şi afişarea în fişier text.

Pentru fiecare tip de operaţie de citire sau de scriere, există comenzi specifice implementate
în bibliotecile limbajelor de programare.
Operaţiile de citire a datelor de intrare de la tastatură şi de scriere (afişare) a celor de ieşire
pe ecran sunt prezentate mai jos cu ajutorul procedurilor. Valorile afişate pot fi cele reţinute în
zonele de memorie sau cele rezultate din evaluarea unor expresii.
Citirea de la tastatură se face cu:
read (id_v1[, id_v2, …,id_vn]);
readln( id_v1[, id_v2, …,id_vn]);
unde id_v1, id_v2,…, id_vn sunt identificatori de variabile elementare de orice tip, cu
excepţia celor logice.
Procedura readln are acelaşi rol cu cel al procedurii read, cu diferenţa că, la terminarea
citirii, cursorul este poziţionat pe linia următoare a ecranului.
Scrierea (afişarea) pe ecran se face cu:
write( id1[, id2,…, idn]);
writeln(id1[, id2,…, idn]);
unde id1, id2, …, idn sunt identificatori de variabile de orice tip sau de constante.
La terminarea scrierii(afişării), cu procedura writeln , cursorul este adus pe prima poziţie a
rândului următor.

26
Informatica… la început Jeni Ionela Moise

Exemplul1: Se consideră două numere întregi. Să se scrie un program care


măreşte aceste numere cu 100.

Program P1;
Var x,y: integer;
Begin
Writeln('Introduceti doua numere intregi:');
Write('x='); Readln(x);
Write('y='); Readln(y);
x:=x+100;
y:=y+100;
Write('Numerele mărite cu 100: ');
Writeln('x=',x,' ','y=',y);
Readln;
End.

Exemplul2: Se consideră trei numere intregi. Să se scrie un program care


calculează media lor aritmetică.

Program P2;
Var a,b,c,Suma: integer;
media: real;
Begin
Write('Introduceti trei numere intregi: ');
Readln(a,b,c);
Suma:=a+b+c;
Writeln('Suma numerelor ',a,', ',b,'si ',c,' este: ',Suma);
media:=Suma/3;
Write('Media aritmetica este: ');
Writeln(media:5:2);
Readln;
End.

Despre citirea şi scrierea datelor din / în fişiere vom vorbi şi studia într-un capitol separat.

Temă:

1. Marin a cumpărat x caiete, preţul unuia fiind de p1 lei, şi y creioane cu p2 lei bucata. Să se scrie
un program care calculează suma cheltuită de Marin.
2. O cameră de arie cunoscută trebuie mochetată. Cât costă mochetarea camerei ştiind că 1 m2
costă 126 lei?

27
Informatica… la început Jeni Ionela Moise

4. Structuri de control

4.1 . Structuri alternative

1. Instrucţiunea if
Definiţie:
Instrucţiunea IF este o structură de calcul alternativă, care permite în funcţie de anumite
condiţii, executarea (sau neexecutarea) unei anumite instrucţiuni sau secvenţă de instrucţiuni.

Instrucţiunea if este o instrucţiune condiţionată, deoarece urmăreşte să conţină în algoritm situaţii


condiţionate. Din engleză "if " se traduce "dacă".

În viaţa de zi cu zi de foarte multe ori folosim expresii ca:

Dacă plouă atunci merg cu taxi.


sau
Dacă plouă atunci merg cu taxi, altfel merg pe jos.

În mod algoritmic aceste exemple se pot structura astfel:


caz I:
dacă plouă atunci
merg cu taxi

caz II:
dacă plouă atunci
merg cu taxi
altfel
merg pe jos

În ambele cazuri plouă reprezintă o condiţie, iar merg cu taxi şi respectiv merg pe
jos reprezintă instrucţiuni.

Instrucţiunea if are două forme:


1)if <condiţie> then <instructiune1>
else <instructiune2>;
Atenţie: în cazul folosirii acestei sintaxe, semnul " ; " (punct si virgula) este interzis să fie pus
înainte de ELSE.
2)if <condiţie> then <instrucţiune>;
Atenţie: în cazul folosirii acestei sintaxe, semnul " ; " (punct şi virgula) este strict necesar
după instructiune1.
"<condiţie>" este o expresie cu valoare logică, iar "<instrucţiune1>", "<instrucţiune2>" şi
"<instrucţiune>" sunt instrucţiuni Pascal.

Principiul de execuţie:
· se evaluează expresia logică;
· dacă aceasta are valoarea TRUE, atunci se execută secvenţa prezentată în cadrul
instrucţiune1 iar în caz contrar se execută secvenţa prezentată în cadrul instrucţiune2 sau se iese
din structură (când construcţia ELSE lipseşte).

28
Informatica… la început Jeni Ionela Moise

Atenţie: dacă secvenţele cuprind mai mult de 2 instrucţiuni,acestea trebuie cuprinse între
BEGIN şi END;

Exemplu 1.
Să se elaboreze un program care citeşte de la tastatură un număr şi să
stabilească paritatea lui.
Program P1;
{Determinarea parităţii unui număr}
var x: integer;
begin
writeln ('Daţi numărul: ');
write ('x=');
readln (x);
if x mod 2=0 then
writeln ('număr par')
else
writeln ('număr impar');
readln;
end.

Temă:

1. Realizaţi programul pentru rezolvarea ecuaţiei de gradul I, de forma ax +b =0, cu


coeficienţi reali.
2. Realizaţi un program care afişează mesaj dacă un număr natural x, citit de la tastatură este
divizibil cu 3.
3. Se citesc două numere naturale a şi b. Realizaţi un program care afişează care număr este
mai mare.

2. Instrucţiunea de selecţie
Definiţie:
Structura alternativă de selecţie dirijează execuţia unei secvenţe de instrucţiuni (s1, s2, …, sn) în
funcţie de valoarea unui selector. Indexul lui CASE trebuie sa fie o expresie (selector) sau o
variabila de tip ordinal.

case expresie_ordinală of
caz1: instr1;
caz2: instr2;
..............
cazn: instrn

else instr
end;

Principiul de execuţie:

După ce este evaluata expresia selector, calculatorul caută printre etichetele


instrucţiunii CASE una egala ca valoare cu cea a expresiei selector;

29
Informatica… la început Jeni Ionela Moise

Dacă eticheta căutata este găsita, se execută acţiunea corespunzătoare, după care se trece la
executarea primei acţiuni după END;
Dacă nu se găseşte o astfel de etichetă se execută enunţul asociat lui ELSE; dacă acesta
din urma nu există, atunci nu se execută nimic.

Exemple:
case Ch of
'A'..'Z', 'a'..'z': WriteLn('Litera');
'0'..'9': WriteLn('Cifra');
'+','-','*','/': WriteLn('Operator')
else WriteLn('Caracter special')
end;

Temă:

1. Se citesc de la tastatură două numere întregi a şi b. Să se scrie un program care realizează


una dintre operaţiile aritmetice, potrivit opţiunii utilizatorului: sumă, diferenţă, produs, câtul
împărţirii întregi.
2. Să se scrie un program care afişează lunile anului în funcţie de opţiunea utilizatorului .
3. Să se scrie un program care afişează zilele săptămânii în funcţie de opţiunea utilizatorului.

4.2 Structuri repetitive

Dacă o secvenţă de instrucţiuni se repetă intr-un algoritm atunci se folosesc structuri


repetitive. Ele sunt de două feluri: cu număr necunoscut de paşi (cu condiţie) şi cu număr
cunoscut de paşi (cu contor).

4.2.1 Structuri repetitive cu număr necunoscut de paşi

Structurile repetitive cu număr necunoscut de paşi sunt structurile care se repetă cât timp /
până când este îndeplinită o condiţie. Ele se numesc: structuri repetitive cu test iniţial şi
structuri repetitive cu test final.

1. Structura repetitivă cu test iniţial


Structura repetitivă cu test iniţial este codificată prin instrucţiunea while. Evaluarea condiţiei
precede secvenţa de operaţii; secvenţa se repetă cât timp condiţia este îndeplinită.
Această instrucţiune are sintaxa:
While <cond> Do <instr>
unde <cond> este o expresie logică, iar <instr> este o instrucţiune Pascal.
Semnificaţia instrucţiunii While este aceeaşi cu a propoziţiei Pseudocod
Cât_Timp <cond> Execută <instr> Sf_Cât_Timp
Deci, execuţia instrucţiunii While cere următoarele:
1. evaluarea expresiei logice <cond>;
30
Informatica… la început Jeni Ionela Moise

2. dacă valoarea expresiei este True ,atunci se execută instrucţiunea <instr> şi se revine la
pasul 1, altfel execuţia se termină.
Cu alte cuvinte, ea cere execuţia repetată a unei instrucţiuni Pascal în funcţie de valoarea de
adevăr a unei expresii logice. Dacă iniţial expresia logică este falsă execuţia instrucţiunii
respective nu va avea loc niciodată.
Observaţii:
Pentru ca structură repetitivă să nu intre într-un ciclu infinit, trebuie ca secvenţa de
instrucţiuni să modifice cel puţin una din variabilele care intervin în condiţie astfel încât aceasta să
poată deveni falsă la un moment dat.
Dacă de la bun început condiţia are valoarea fals, secvenţa de instrucţiuni nu se execută nici
măcar o dată.
Exemplu:
1. Se afişează pe ecran, suma cifrelor unui număr natural nenul. Numărul x se citeşte de la
tastatură.
Explicarea algoritmului: Rezolvarea presupune că se extrag pe rând cifre din număr şi se
adaugă la sumă. Soluţia se poate exprima în cuvinte astfel: CÂT TIMP numărul este diferit de
zero (deci mai sunt cifre de extras), EXECUTĂ extrage şi elimină ultima cifră din numărul x apoi
adaugă cifra la sumă.
Soluţia are două componente:
• condiţia, trascrisă prin “ numărul este diferit de zero”;
• acţiune transcrisă prin “ extrage şi elimină ultima cifră din numărul x apoi adaugă cifra la
sumă”;
Notând numărul dat cu „x”, cifra eliminată cu „c” şi suma cifrelor cu „s”, algoritmul de
rezolvare va fi:
Var x, c, s : word;
Begin
Write („x= „); read(x);
S:=0; {se iniţializează suma cu 0 }
While x<>0 do begin
C:=x mod 10; {extrage ultima cifră}
S:= s+ c; {adună cifra la sumă}
X:= x div 10; {elimină ultima cifră din număr}
End;
Writeln(„suma cifrelor = „, s);
Readln;
End.

2. Exemplu: numărul de numere pare


Să considerăm urmatoarea problemă: Se citesc numere întregi mai mici decât 10000,
până la citirea lui zero. Se cere să se afișeze numărul de numere pare citite.
Var x, nr:integer;
Begin
Write(‟x=‟);readln(x);
Nr:=0;
While (x<>0)do
Begin
If x mod 2 = 0 then nr:=nr +1;
Write(‟x=‟);readln(x);
End;
Write(‟Au fost citite ‟, nr, ‟ numere pare‟);
End.
31
Informatica… la început Jeni Ionela Moise

Temă:

1. Să se afişeze pe ecran, produsul cifrelor unui număr citit de la tastatură.


2. Să se calculeze şi să se afişeze câte cifre are un număr citit de la tastatură.
3. Se dă un şir de numere care se termină cu valoarea 0. Să se calculeze suma elementelor
pare din şir şi produsul elementelor impare din şir.
4. Se dă un sir de numere care se termină cu valoarea 0. Să se calculeze câte elemente pare
şi câte elemente impare sunt in şir

2. Structura repetitivă cu test final


Structura repetitivă cu test final este codificată prin instrucţiunea repeat_until.
Evaluarea condiţiei se face după execuţia secvenţei de operaţii şi determină repetarea
secvenţei sau ieşirea din structură.
Ea are sintaxa
Repeat <ins> { ; <ins> } Until <cond>
unde <ins> este o instrucţiune Pascal, iar <cond> este o expresie logică.
Instrucţiunea este echivalentă cu propoziţia Pseudocod Repetă, deci semnificaţia
instrucţiunii este următoarea:
1. se execută instrucţiunile scrise între cuvintele Repeat şi Until;
2. se evaluează expresia logică <cond>. Dacă valoarea expresiei este True atunci execuţia
se termină, altfel se revine la pasul 1.
Observaţii:
Pentru ca structură repetitivă să nu intre într-un ciclu infinit, trebuie ca secvenţa de
instrucţiuni să modifice cel puţin una din variabilele care intervin în condiţie astfel încât aceasta să
poată deveni falsă la un moment dat.
Spre deosebire de structură repetitivă cu test iniţial, structură repetitivă cu test final
efectuează o data secvenţa de instrucţiuni înainte de a testa condiţia.
1. Exemplu: numărul de numere pare
Să considerăm urmatoarea problemă: Se citesc numere întregi mai mici decât 10000, până la
citirea lui zero. Se cere să se afișeze numărul de numere pare citite.
Var x, nr:integer;
Begin
Write(‟x=‟);readln(x);
repeat
If x mod 2 = 0 then inc(nr);
Write(‟x=‟);readln(x);
Until x=0;
Write(‟Au fost citite ‟, nr, ‟ numere pare‟);
End.

32
Informatica… la început Jeni Ionela Moise

2. Se afişează pe ecran, produsul cifrelor unui număr natural nenul. Numărul x se citeşte
de la tastatură.
Var x, c, p : word;
Begin
Write („x= „); read(x);
p:=0; {se iniţializează produsul cu 1 }
While x<>0 do begin
C:=x mod 10; {extrage ultima cifră}
p:= p* c; {înmulţeşte cifra la produsul iniţial}
X:= x div 10; {elimină ultima cifră din număr}
End;
Writeln(„produsul cifrelor = „, p);
Readln;
End.

Temă:

1. Să se afişeze pe ecran, suma cifrelor unui număr x citit de la tastatură.


2. Să se calculeze şi să se afişeze câte cifre are un număr citit de la tastatură.
3. Se dă un şir de numere care se termină cu valoarea 0. Să se calculeze suma elementelor
pare din şir şi produsul elementelor impare din şir.
4. Se dă un sir de numere care se termină cu valoarea 0. Să se calculeze câte elemente pare
şi câte elemente impare sunt in şir

4.2.2. Structura repetitivă cu număr cunoscut de paşi


Structura repetitivă cu contor (cu număr cunoscut de paşi) este codificată prin instrucţiunea
for.
Sintaxa instrucţiunii este:
-cu contorul în creştere:
for v:=e1 to e2 do
<instr>

-cu contorul în descreştere:


for v:=e1 downto e2 do
<instr>
În ambele forme, v este o variabilă de tip scalar, numită contor, iar e1 şi e2 sunt două
expresii de aceleaşi tip cu v, numite respectiv expresie iniţială şi expresie finală, iar <instr> este
orice gen de instrucţiune, chiar şi o altă instrucţiune for.

Semantica:

33
Informatica… la început Jeni Ionela Moise

V primeşte valoarea expresiei e1. Apoi, se verifică, dacă s-a depăşit valoarea e2. Dacă da,
ciclul se incheie, iar dacă nu, atunci se execută instrucţiunea <instr>, apoi v creşte la succesorul
său, apoi se reia verificarea condiţiei de continuare a ciclului.
In forma cu downto, avem un test invers de continuare.

Exemplu:
1. Sa se determine suma primelor n numere naturale.
Var i,n,s: word;
Begin
Write (‟dati numărul de numere naturale‟); read(n)ş
S:=0;
For i:=1 to n do s:=s+i;
Write(‟suma este‟ , s);
Readln; end.

2. Sa se calculeze media aritmetică a n numere naturale.


Var i,n,s,ma: word;
Begin
Write (‟dati numărul de numere naturale‟); read(n);
S:=0;
For i:=1 to n do s:=s+i;
Ma:=s/n;
Write(‟media aritmetică este‟ , ma);
Readln;
end.

3. Să se afişeze următorul triunghi de numere:

12

123

......

1 2 3 ..n

program triunghi;
var i,j,n:word;
BEGIN
write('n=');readln(n);
for i:=1 to n do
begin
for j:=1 to i do
write(j,' ');
writeln;
end;
34
Informatica… la început Jeni Ionela Moise

readln;
END.

Temă:

1. Sa se determine suma primelor 10 numere naturale


2. Sa se determine suma primelor 100 numere naturale
3. Sa se determine produsul primelor n numere naturale
4. Sa se determine suma primelor n numere pare
5. Sa se determine produsul primelor n numere impare
6. Sa se determine suma patratelor primelor n numere
7. Suma S=12+32+52+…+(2n+1)2

5. Operaţii cu fişiere text


Datele cu care lucrează un program pot fi memorate în fişiere text. Astfel se asigură
păstrarea datelor şi reducerea timpului de operare la testarea/ utilizarea programului.
Un fişier text este format dintr-o succesiune de caractere ASCII scrise pe una sau mai
multe linii (rânduri), pe memorie externă. Sfârşitul fişierului este marcat de o etichetă specială:
EOF (End Of File). Prelucrarea unui fişier se face prin mai multe operaţii: deschidere, citire,
scriere, inchidere. La nivel de program, fişierul este recunoscut printr-o variabilă asociată, numită
identificator de fişier.
1. Citirea datelor din fişiere text
Are următoarele etape:
Definirea identificatorului de fişier var id_f:text;
Asocierea dintre fişierul fizic şi identificator: assign(id_f,’nume_f’);
Deschiderea fişierului pentru citire: reset(id_f);
Citirea variabilelor din fişier se face cu ajutorul procedurilor: read şi readln:
Read(id_f, id_v1[,id_v2, …, id_vn]);
Readln(id_f, id_v1[,id_v2, …, id_vn]);
Unde id_v1, id_v2,…id_vn sunt identificatori de variabile elementare de orice tip, cu excepţia
celor logice.
Închiderea fişierului: close(id_f).

2. Scrierea datelor în fişiere text


Are următoarele etape:
Definirea identificatorului de fişier var id_f:text;
Asocierea dintre fişierul fizic şi identificator: assign(id_f,’nume_f’);
Deschiderea fişierului pentru scriere: rewrite (id_f);
Scrierea variabilelor în fişier se face cu ajutorul procedurilor: write şi writeln:
write(id_f, id_v1[,id_v2, …, id_vn]);
writeln(id_f, id_v1[,id_v2, …, id_vn]);

35
Informatica… la început Jeni Ionela Moise

Unde id_v1, id_v2,…id_vn sunt identificatori de variabile elementare de orice tip sau
constante
Închiderea fişierului: close(id_f).

Un fişier text poate fi creat direct din mediul de programare File →New, salvat cu extensia
dorită (exemplu: date.in) şi folosit în program.
Exemplu:
Din fişierul date.in (creat in directorul curent), se citesc variabilele reale a, b şi c, separate
prin câte un spaţiu.
În fişierul date.out se vor afişa valorile citite,pe prima linie, cu câte un spaţiu între ele, iar
pe urmatoarele linii, suma şi produsul lor.

Date.in date.out
345 345
12
60

Var f,g: text;


A,b,c,s,p : word;
Begin
Assign ( f ,‟date.in‟); reset(f);
Assign ( g,‟date.out‟); rewrite(g);
Read(f,a,b,c);
S:=a+b+c;
P:=a*b*c;
Writeln(g,a, ‟ ‟, b,‟ ‟, c);
Writeln(g,‟suma este‟, s);
Writeln(g,‟produsul este ‟, p);
Close(f);
Close(g);
End.

Temă:

1. Să se afişeze în fişierul date.out , suma cifrelor unui număr x citit de pe primul rand al
fişierului date.in.
2. Să se calculeze şi să se afişeze în fişierul date.out câte cifre are un număr citit din
fişierul date.in.
3. Se dă un şir de numere care se termină cu valoarea 0. Să se calculeze suma elementelor
pare din şir şi produsul elementelor impare din şir şi să se afişeze în fişierul date.out.
4. Se dă un sir de numere care se termină cu valoarea 0. Să se calculeze câte elemente pare
şi câte elemente impare sunt in şir şi să se afişeze în fişierul date.out.
5. Să se afişeze următorul triunghi de numere in fişierul „triunghi.txt”:

36
Informatica… la început Jeni Ionela Moise

12

123

......

1 2 3 ..n

6. Funcţii matematice uzuale

Limbajele de programare au biblioteci ăn care se află subprograme pentru determinarea


valorilor celor mai frecvente funcţii matematice. Biblioteca limbajului Pascal se află în unit-ul
System.
Întrucât în definirea expresiilor se folosesc şi funcţii, prezentăm în tabelul următor câteva
funcţii Pascal predefinite :
Funcţia Semnificaţia
abs ( i ) valoarea (întreagă) absolută a întregului i
abs ( x ) valoarea (reală) absolută a realului x
sqr ( i ) pătratul întregului i (dacă i*i < Maxint) (valoare întreagă)
sqr ( x ) pătratul numărului real x
sqrt ( x ) radical din x, x>=0
int (x) partea întreagă a numărului real x
trunc (x) întregul obţinut din numărul real x prin eliminarea părţii
fracţionare
round ( x ) cel mai apropiat întreg de numărul real x
frac ( x ) valoarea x - int(x) , pentru x real
exp ( x ) e la puterea x, x întreg sau real (e= 2,71 constanta Euler)
ln ( x ) logaritm natural din x, x întreg sau real>0
sin ( x ) sinusul lui x, x reprezintă măsura în radiani a unui unghi
cos ( x ) cosinusul lui x,
arctan ( x ) arctangenta din x,
succ ( i ) succesorul valorii ordinale i
pred ( i ) predecesorul valorii ordinale i
ord ( e ) numărul de ordine al valorii lui e în tipul expresiei ordinale e
chr ( i ) caracterul de ordin i în tipul Char
odd ( i ) funcţie logică cu valoarea True dacă i este impar şi False dacă
este par

Exemple:
abs(9)=9......abs(8.5)=8.5
abs(-9)=9.....abs(-8.5)=8.5
abs(0)=0......abs(-12.0)=12.0
round(5.62)= 6.00
int(5.62)= 5
trunc(5.62)= 5
sqr(6)= 36
sqrt(81)= 9

37
Informatica… la început Jeni Ionela Moise

R emarcă:
Funcţia sqrt are o quasi-inversă numită sqr care calculează pătratul lui x - pozitiv sau
negativ - cu condiţia ca pătratul (lui x) să nu depăşească maxint, pentru x întreg, sau să
nu depăşească maxreal (!) atunci când x are valori reale.
O numim quasi - inversă deoarece numai pentru x real şi pozitiv este adevărat că
sqr(sqrt(x))=x=sqrt(sqr(x))
şi chiar în acest caz este adevărat numai pentru x pentru care:
sqr(x)<=maxreal.

Regulă:
Funcţia sqrt returnează întotdeauna o valoare reală, indiferent de tipul argumentului
(întreg sau real).

7. Implementarea algortmilor elementari

7.1 Ecuaţia de gradul I

Fie ecuaţia de grad I cu forma: ax+b =0. Să se scrie un program care rezolvă ecuaţia.

program ecuatie_de_gradul_intai;
var a,b,x:real;
begin
writeln('Ecuatia de gradul I: ax+b=0');
writeln;
write('Introduceti o valoare pentru a: ');
readln(a);
write('Introduceti o valoare pentru b: ');
readln(b);
if a=0 then
writeln('Ecuatia nu are sens')
else
begin
x:=-b/a;
writeln('Valoarea lui x este: ',x);
end;
Readln;
end.

7.2 Numere prime


Se citesc n numere naturale. Se afişează, pe linii distincte, numerele care sunt prime.

Un număr prim este un număr natural care are exact doi divizori: numărul 1 și numărul în sine. Cel
mai mic număr prim este 2, în afară de 2 toate numerele prime sunt numere impare.

38
Informatica… la început Jeni Ionela Moise

În acest fel pentru fiecare număr din şir trebuie să verificăm dacă este prim (dacă are
numere mai mici decat el care se împart exact la el).
var n, x, i, j :word;
prim: boolean;
begin
write (‟n= ‟); readln (x);
for i:= 1 to n do
begin
write(‟numărul = ‟); readln (x);
if x=1 then prim:=false
else
begin
prim:= true; j :=2;
while (prim=true) and (j<=trunc(sqrt(x))) do
if x mod j = 0 then prim := false
else j:= j+1;
end;
if prim = true then writeln(x);
end;
end.

7.3 Oglinditul unui număr (inversul unui număr)


Se citeşte un număr natural x de la tastatură. Să se afişeze inversul numărului citit.

var x, c, d, inv: word;


begin
writeln( ‟daţi numărul x = ‟); read(x);
d:=x;
inv:= 0;
while d<>0 do
begin
c:= d mod 10;
inv:= inv*10 + c;
d:= d div 10;
end;
writeln(‟oglinditul numărului este ‟, inv);
readln;
end.

39
Informatica… la început Jeni Ionela Moise

Bibliografie selectivă

1. Liliana Arici, Informatică – caiet de lucru pentru clasa a V-a, ed. Polirom, 2003
2. Mioara Gheorghe, Constanţa Năstase, Monica Tătărâm, Informatică – manual
pentru clasa a X-a, ed. Corint, 2005
3. Sorin Tudor, Informatică, manual pentru clasa a IX-a, ed. L&S Infomat,
Bucureşti
4. Daniela Oprescu, Marcel Călinoaia, Informatică. Manual pentru clasa a IX-a, ed.
Niculescu, Bucureşti, 2000

40

S-ar putea să vă placă și