Sunteți pe pagina 1din 131

Ctlina MAIER

Mircea DIMA

PROGRAM FACTOR_PRIM;
VAR NR, i, PUTERE : INTEGER;
BEGIN
READ(NR);
i:=2;
REPEAT(*PRIM*)
(*DIVIDE NR CU i si DETERMINA
PUTEREA*)
PUTERE:=0;
WHILE NR MOD i=0 DO
(*PUTERE*)
BEGIN
NR:=NR DIV i;

PROGRAMAREA
CALCULATOARELOR I LIMBAJE
DE PROGRAMARE

PUTERE PUTERE 1

GALAI
2008

Ctlina MAIER

Mircea DIMA

PROGRAMAREA
CALCULATOARELOR I LIMBAJE
DE PROGRAMARE

GALAI
2008

CUPRINS
MODULUL 1. ALGORITMI
1.1. GENERALITATI
1.2. PRINCIPII DE ELABORARE A ALGORITMILOR IN
PROGRAMAREA STRUCTURATA
1.3. STRUCTURILE FUNDAMENTALE ALE ALGORTMILOR
APLICATII

3
3
6
7
11

MODULUL 2. ELEMENTE DE LIMBAJ TURBO-PASCAL


2.1. STRUCTURA GENERALA A PROGRAMELOR
2.2. TIPURI DE DATE
2.2.1. DATELE SIMPLE (ELEMENTARE)
2.2.2. DATELE STRUCTURATE
APLICATII LA TIPURILE DE DATE
2.3. DECLARATII IN TURBO-PASCAL
2.4. INSTRUCTIUNI ALE LIMBAJULUI TURBO-PASCAL
2.4.1. CLASIFICREA INSTRUCTIUNILOR
2.4.2. INSTRUCTIUNILE SIMPLE
2.4.3. INSTRUCIUNI COMPUSE ALE LIMBAJULUI PASCAL
3. CONSIDERATII PRIVIND SCRIEREA PROGRAMELOR TURBOPASCAL
4. TIPURI DE DATE IN TURBO-PASCAL. DATE STRUCTURATE
5. SUBPROGRAME
5.1. PROCEDURI
5.2. FUNCII
5.3. DOMENIUL DE VALABILITATE A VARIABILELOR SI
ETICHETELOR

36
36
37
37
43
44
46
49
49
50
58
65

MODULUL 3. NOTIUNI DE EXCEL


1. NOTIUNI INTRODUCTIVE
1.1. INTRODUCERE
1.2. LANSAREA UNEI APLICATII EXCEL
1.3. FEREASTRA DE LUCRU A PROGRAMULUI EXCEL

85
85
85
85
87

70
74
75
79
80

2. CREAREA UNUI FISIER


2.1. INCHIDEREA FISIERULUI DE LUCRU EXCEL
2.2. DESCHIDEREA UNUI FISIER EXCEL EXISTENT
2.3. LUCRUL CU MAI MULTE PAGINI SIMULTAN
3. PARAMETRI EXCEL
3.1. AFISAREA BAREI DE MENIU
3.2. BARA DE SCRIERE A FORMULELOR
3.3. FORMATAREA CELULELOR
3.4. MODIFICAREA CONTINUTULUI UNEI CELULE
3.5. SELECTAREA MAI MULTOR CELULE
3.6. SELECTIONAREA UNEI LINII SAU COLOANE
4. MODIFICAREA UNUI TABEL
4.1. DEPLASAREA UNEI CELULE
4.2. INSERAREA UNEI CELULE
4.3. APLICAREA ACELEIASI FORMULE PE O INTREAGA
COLOANA
4.4. CREAREA UNUI CALCUL
5. REALIZAREA GRAFICELOR
6. ORDONAREA DATELOR
7. FILTRAREA DATELOR
BIBLIOGRAFIE

89
90
90
90
99
99
100
101
103
103
104
104
104
104
105
106
111
113
118
129

MODULUL 1. ALGORITMI

1.1. GENERALITATI
Termenul de produs program desemneaz att programul surs
propiu-zis ct i documentaia necesar pentru a-l dezvolta, a-l utiliza i
a-l ntreine. n procesul de elaborare a programelor trebuie respectate
urmtoarele principii:
a). MODULARIZAREA const n descompunerea oricrei probleme
complexe n subprograme sau module mai uor de neles i de stpnit
n procesul elaborrii produselor-program. Modularizarea se realizeaz
dup criteriile urmtoare:
- omogenitatea funciilor;
- folosirea unor date comune;
- nelegere mai uoar.
Fiecare modul va fi autonom i pentru el se vor specifica:
- problema de rezolvat sau funcia ndeplinit;
- datele de intrare;
- datele de ieire.
Modularizarea simplific problemele complexe prin descompunerea
acestora n subprobleme, ns conduce i la apariia unor probleme noi
cum ar fi: interfaa dintre module, testarea parial, integrarea
modulelor, testarea total, s.a.

Avantajele modularizrii sunt:


calitatea superioar a produselor-program deoarece
programatorul poate nelege foarte uor un modul ce execut o
funcie bine definit i poate avea o idee clar asupra logicii
interne a modulului; n acest mod se d mai mult atenie fiecrei
funcii a produsului-program i astfel numarul erorilor scade
foarte mult, verificarea fcandu-se pentru fiecare modul separat;
- flexibilitatea produselor-program n sensul c prin
modularizare exist mai mult libertate n alegerea limbajului de
programare; rezult astfel o adaptare mai uoar la schimbarea
tipului de sistem de calcul(calculator);
- standardizarea const n selectarea unor module frecvent
utilizate i stocarea acestora ntr-o bibliotec de module
standard, ceea ce conduce i la economisirea unei mari cantitti
de munc;
- economie i control prin estimarea precis a volumului de
munc necesar elaborrii produsului-program; aceasta
determin respectarea termenelor de predare a lor; economia de
timp se realizeaz pe baza:
- modificrilor, daca este cazul, doar la nivelul modulelor
nu la nivelul ntregului program, ceea ce are si un efect
psihologic;
- reducerii timpului de testare.
-

n modularizare se poate stabili un optim n sensul c, o mprtire


n foarte multe module poate duce la un moment dat, nu la scderea ci
la cresterea costului produsului-program.

cost

cost total

cost realizare
interfete dintre
module

cost realizare
module

numar optim

numar module

Figura 1.1
b). INCAPSULAREA sau ascunderea informatiei conform creia orice
modul trebuie sa fie privit ca o entitate inchis, ,,black box, despre care
se cunosc doar datele de intrare, datele de iesire si functia de indeplinit.
c). ABSTRACTIZAREA este principiul conform cruia, in procesul de
elaborare a enuntului unei probleme sunt extrase mai intai aspectele
esentiale, fcundu-se abstractie de cele neesentiale. Aceste aspecte
devin apoi functii de realizat de ctre module si stau la baza
modularizrii.
d). LOCALIZAREA se refer la dispunerea fizic in aceeasi vecintate
a intructiunilor care realizeaza aceeasi functie de transformare a datelor
de intrare in date de iesire. Un exemplu de localizare il constituie
subprogramele, fisierele etc. Prin respectarea acestui principiu se
reduce foarte mult utilizarea intructiunii de salt neconditionat de tip GO
TO.

1.2. PRINCIPII DE ELABORARE A ALGORITMILOR IN


PROGRAMAREA STRUCTURATA
Un program de calcul descrie un proces de calcul, iar
instructiunile sale descriu operatii de prelucrare pe care un calculator le
poate executa. Ordinea in care sunt executate intructiunile unui program
constituie structura de control (algoritmul) acestuia.
Structurile de control pot fi:
- secventiale;
- nesecventiale.
In cadrul unui program cu cea mai simpla structura secventiala
instructiunile sunt executate in ordinea in care apar in programul-sursa,
conform schemei urmatoare:

S1

S2

Sn

Un program cu o astfel de structura secventiala


este putin practic. In realitate programele contin
secvente de instructiuni care se executa numai
in anumite conditii si/sau secvente care se
executa cat timp sau pana cand anumite
conditii sunt indeplinite si numai in cadrul
acestor secvente programul are o structura
secventiala. Rezulta astfel ca programele
secventiale pot avea o structura secvential:
- alternativa;
- repetitiva.

1.3. STRUCTURILE FUNDAMENTALE ALE ALGORTMILOR


Structurile fundamentale care stau la baza programarii structurate sunt:
a). structura secventiala reprezentata sub forma urmatoare :
schema logica

pseudo-cod

S1

# sectiune 1
# sectiune 2
# sectiune 3
.
# sectiune n

S2

Sn

b). structura alternativa cu doua ramuri


schema logica
DA

S1

pseudo-cod
NU

DACA # conditie c
ATUNCI
#secventa 1
ALTFEL
#secventa 2
Sfarsit

S2

Valoarea logica a conditiei c poate fi ADEVARAT sau FALS.


c). structura alternativa cu o ramura vida deriva din structura
alternativa cu doua ramuri cand secventa S2 nu contine nici o
instructiune.
schema logica

DA

pseudo-cod

NU

DACA # conditie c
ATUNCI
#secventa 1
Sfarsit

S1

d). structura alernativa generalizata este structura alternativa care


are mai mult de doua ramuri.
schema logica

pseudo-cod
ALEGE # v dintre:
cazul 1: # secventa 1
cazul 2 # secventa 2
.
cazul n # secventa n
ALTFEL: # secventa n+1
Sfarsit

In cadrul acestei structuri v este variabila. Aceasta structura


functioneaza in modul urmator: daca variabila v are valoarea k, unde k
apartine multimii {1,2,3,4,n}, atunci se executa actiunea k ; daca
valoarea k nu apartine acestei multimi, atunci se executa actiunea n+1.
e). structura repetitiva cu test initial
schema logica

pseudo-cod

CAT TIMP #conditie c


# secventa 1
REPETA

f). structura repetitiva cu test final


schema logica

pseudo-cod
CICLU (REPETA)
# secventa 1
PANA CAND # conditie c

g). structura repetitiva cu contor


In cadrul acesteia, secventa S1 reprezinta corpul structurii
repetitive. Se evidentiaza etapele :
- initializarea contorului (v=m1) ;
- corpul structurii repetitive;
- avansarea contorului cu pasul m3 (valoarea implicita a pasului de
avans este 1) ;
- testarea contorului (blocul de decizie v<=m2).
care definesc structura repetitiva cu contor.
Structura repetitiva cu contor este prezentata, sub forma de
schema logica si pseudo-cod, in cele ce urmeaza.
schema logica

pseudo-cod

PENTRU #v=m1 LA m2 (pas m3)


# secventa 1
REPETA

Toate structurile prezentate au propietatea ca au o singura intrare


si o singura iesire si ele pot fi interpretate ca operatii unice, distincte
(mai complexe) intr-un proces de calcul secvential.
10

APLICATII
APLICATIILE 1-4
Enuntul problemei :
Sa se scrie algoritmul pentru calculul sumei, respectiv produsului
numerelor pare, respectiv impare cuprinse intre 1 si 2N, respectiv 2N+1.
APLICATIA 1
Formula de recurenta ce se va folosi in cazul sumei numerelor pare
este:
S=S+2*i
Algoritmul poate fi scris sub forma de psedo-cod sau schema logica
astel:

pseudo-cod
inceput program
citeste N
atribuie S=0
pentru i=1 la N
atribuie S=S+2*i
repeta
scrie S
sfarsit program

11

schema logica

12

Verificarea algoritmului se realizeaza dand valori datelor de intare.


Consideram, de exemplu N=5. Rezulta:
N=5
i=1
i=2
i=3
i=4
i=5
i=6

S=0
25
35
45
55
65

DA
DA
DA
DA
NU

S=0+2*1=2
S=2+2*2=2+4=6
S=6+2*3=6+6=12
S=12+2*4=12+8=20
S=20+2*5=20+10=30
S=30

Am folosit sublinierea pentru a evidentia pasii parcursi in cadrul structurii


repettive.

13

APLICATIA 2
Formula de recurenta ce se va folosi in cazul produsului numerelor
pare este:
P=P*2*i
Asa cum s-a observat in aplicatia anterioara, inainte de a incepe
structura repetitiva cu contor in cadrul careia se aplica formula de
recurenta, se impune initilizarea varabilei de calculat. De regula, suma
se initializeaza la 0 iar produsul se initializeaza la 1, astfel incat la
parcurgerea primului pas al structurii repetitive aceasta variabila S,
respectiv P sa aiba o valoare iar aceasta sa nu altereze rezultatul.
Algoritmul poate fi scris sub forma de schema logica sau pseudo-cod
astel:

pseudo-cod
inceput program
citeste N
atribuie P=1
pentru i=1 la N
atribuie P=P*2*i
repeta
scrie P
sfarsit program

14

schema logica

15

Verificarea algoritmului se va face pentru N=5, astfel incat rezulta:


N=5
i=1
i=2
i=3
i=4
i=5
i=6

P=1
25
35
45
55
65

DA
DA
DA
DA
NU

P=1*2*1=2
P=2*2*2=8
P=8*2*3=48
P=48*2*4=384
P=384*2*5=3840
P=3840

APLICATIA 3
Formula de recurenta ce se foloseste in cazul sumei numerelor impare
poate fi:
S=S+(2*i+1)
sau
S=S+(2*i-1)
in sensul ca numarul impar poate fi generat cu una din cele doua relatii
scrise intre parateze. Avand in vedere aceste doua variante se impune
verificarea limitelor intervalului de variatie a contorului i pentru fiecare
dintre ele.
Astfel, in cazul primei formule de recurenta:
pentru i=1 se genereaza numarul impar 2*1+1=3, ceea ce inseamna ca
nu se considera primul numar impar ce trebuie adunat; pentru
rezolvarea acestei probleme se initializeaza suma, in mod exceptional,
la 1;

16

pentru i=N se genereza numarul impar 2*N+1, cel care este ultimul de
adunat la suma S, conform enuntului.
In cazul celei de a doua formule de recurenta:
pentru i=1 se genereaza numarul impar 2*1-1=1, cel care este primul
numar de adunat la suma S, conform enuntului;
pentru i=N se genereza numarul impar 2*N-1, ceea ce inseamna ca nu
se aduna ultimul numar impar cerut conform enuntului; rezolvarea
acestei probleme se face considerand ca ultima valoare a contorului i
este N+1 pentru care se genereaza numarul impar 2*(N+1)-1=2*N+21=2*N+1, ultimul numar de adunat, conform enuntului.
Algoritmul pentru cazul primei formule de recurenta poate fi scris, sub
forma de schema logica sau psedo-cod, astel:
pseudo-cod
inceput program
citeste N
atribuie S=1
pentru i=1 la N
atribuie S=S+(2*i+1)
repeta
scrie S
sfarsit program

17

schema logica

18

APLICATIA 4
Formula de recurenta ce se foloseste in cazul produsului numerelor
impare poate fi: P=P*(2*i+1) sau P=P*(2*i-1), rezultand algoritmii de
mai jos:

19

20

In cazul produsului s-au prezentat algoritmii corespunzatori celor doua


formule de recurenta, tinanad cont de limitele intervalului de variatie a
contorului i pentru ambele cazuri. Se observa ca, in cazul produsului
calculat cu prima formula de recurenta, nu se pierde nimic daca
valoarea initiala a contorului este i=1, deci nu apar modificari privind
initializarea produsului P. In schimb, in cazul celei de a doua formule de
recurenta, s-a realizat modificarea limitei superioare (N+1 in loc de N)
de variatie a contorului i pentru a se inmulti si numarul 2*N+1 cerut prin
enuntul problemei.
Cazul primei formule de recurenta :
pseudo-cod
inceput program
citeste N
atribuie P=1
pentru i=1 la N
atribuie P=P*(2*i+1)
repeta
scrie P
sfarsit program
Cazul celei de a doua formule de recurenta :
pseudo-cod
inceput program
citeste N
atribuie P=1
pentru i=1 la N+1
atribuie P=P*(2*i-1)
repeta
scrie P
sfarsit program
21

APLICATIILE 5-6
Enuntul problemei :
Sa se scrie algoritmul pentru calculul minimului, respectiv
maximului elementelor unui sir V(i) de N numere date.
Se observa ca problema enuntata folosese, fata de problemele
anterioare, si date structurate (sirul sau vectorul V), nu numai date
elementare.
Problema se poate rezolva in doua variante.
Varianta 1
Varianta 1 de rezolvare a problemei de determinare a minimului,
respectiv maximului, consta in initializarea variabilei numita MIN,
respectiv MAX, la o valoare egala cu primul element al vectorului V.
Acesta, impreuna cu variabila N se citesc inainte de inceperea structurii
repetitive cu contor. Ceea ce se va repeta, deci va constitui corp al
structurii repetitive, este citirea elementului curent V(i) al vectorului si
structura alternativa cu o ramura vida in cadrul careia se realizeaza
compararea acestuia cu valoarea variabiabilei MIN, respectiv MAX la
momentul respectiv.
Dupa cum avem de rezolvat problema determinarii minimului sau
maximului elementelor vectorului V, structura alternativa cu o ramura
vida corespunde rationamentului urmator:
- pentru
valoarea
acesta;
- pentru
valoarea
acesta.

minim: daca valoarea variabilei MIN este mai mare decat


elementului V(i) al vectorului, atunci MIN se inlocuieste cu
maxim: daca valoarea variabilei MAX este mai mica decat
elementului V(i) al vectorului, atunci MAX se inlocuieste cu

22

Algoritmul corespunzator celor doua probleme minim/maxim este


prezentat in continuare sub forma de pseudo-cod si schema logica.
MINIM
pseudo-cod
Inceput program
citeste N
citeste V(1)
atribuie MIN = V(1)
pentru i=2 la N
citeste V(i)
daca V(i)<MIN
atunci
atribuie MIN=V(i)
sfarsit
repeta
scrie MIN
Sfarsit program

23

schema logica

24

MAXIM
schema logica

25

Varianta 2
Varianta 2 are la baza ideea ordonarii crescatoare a elementelor
vectorului V dat. La sfarsit, primul element va fi minimul iar ultimul,
maximul.
Se compara doua cate doua valorile succesive din sir (vector) pentru i=1
la N-1.
Ex: daca v(i)>v(i+1)
inversam valorile succesive folosind o
variabila auxiliara si schimbam valoarea lui inv, de exemplu, pentru a
arata ca un ca am facut o inversare.
Inversarea consta in parcurgerea pasilor urmatori:
aux=v[i]
v[i]=v[i+1]
v[i+1]=aux
Algoritmul foloseste structurile fundamentale urmatoare:
- repetitiva cu test initial
- repetitiva cu contor
- alternativa cu o ramura vida
- alternativa cu 2 ramuri
Algoritmul pentru determinarea maximului si, respectiv, minimului unui
sir de valori este reprezentat, in cele ce urmeaza, sub forma de schema
logica si pseudo-cod astfel:

26

27

Inceput program
citeste N
pentru i=1 la N
citeste v(i)
repeta
atribuie inv=1
cat timp inv=1
atribuie inv =0
pentru i=1 la N-1
daca v(i)>v(i+1)
atunci
atribuie aux=v(i)
atribuie v(i)=v(i+1)
atribuie v(i+1)=aux
atribuie inv=1
sfarsit
repeta
repeta
atribuie MIN=v(1)
atribuie MAX=v(N)
Sfarsit program
Pentru toti algoritmii de la aplicatiile 5-6 se recomanda sa se faca
verificarea dand un exemplu, cum ar fi: N=6 si V={1,5,0,3,2,8}.

28

APLICATIILE 7-8
Enuntul problemei :
Sa se scrie algoritmul pentru calculul sumei, respectiv produsului
elementelor de pe diagonala principala a matricei A de N linii si N
coloane.
Algoritmul corespunzator celor doua aplicatii este prezentat in cele ce
urmeaza. Se observa ca, pentru simplificarea algritmului s-au citit doar
elementele de pe diagonala principala a matricei A, stiind ca acestea au
indicele liniei egal cu cel al coloanei.
Schema logica pentru calculul sumei elementelor de pe diagonala
principala

29

Schema logica pentru calculul produsului elementelor de pe diagonala


principala

30

Verificarea algoritmului:
Sa se faca verificarea schemei logice pentru N=4 si matricea A de
forma:

A=

Acest exercitiu
autoevaluare.

este

propus

studentilor

spre

rezolvare

pentru

APLICATIILE 9-10
Sa se scrie schema logica pentru calculul sumei, respectiv
produsului elementelor minime de pe liniile matricei A(N*N) date.
In cele ce urmeaza sunt prezentate schemele logice corespunzatoare
celor doi algoritmi ceruti prin enuntul de mai sus, respectiv cel pentru
calculul sumei si cel pentru calculul produsului elementelor minime de
pe liniile matricei patrate A.

31

32

33

Detaliere modul de determinare a minimului mini de pe linia i.

34

Verificarea algoritmului modulului


Se propune verificarea algoritmului modului considerand linia i astfel:
{7,

0,
ai1

5,
ai 2

3,

2} , deci N=5.

ai 3 ai 4 ai 5

35

MODULUL 2. ELEMENTE DE LIMBAJ TURBOPASCAL

2.1. STRUCTURA GENERALA A PROGRAMEOR


Un program PASCAL are urmtoarea structur general:
PROGRAM nume
lista declaraiilor
BEGIN
lista de instruciuni
END.
In cadrul listei declaraiilor, printre altele se descriu datele cu care
lucreaz programul iar lista de instruciuni descrie aciunile care se
execut asupra acestor date.
In vocabularul limbajului PASCAL intr:

Literele mici si mari ale alfabetului latin;

Cifrele sistemului de numeraie zecimal:

Simbolurile speciale, alctuite din unul sau mai multe caractere si


reprezentnd:

Operatori
- aritmetici: +, -, *, /, DIV, MOD
- relaionali: <, >, <>, < =, > =, =
- logici: NOT, AND, OR

Delimitatori: (, ), [, ], {, }, . , , , , ; , : , blanc

Cuvinte cheie: IF, REPEAT, UNTIL, DO, FOR, READ,


WRITE, etc.
36

2.2. TIPURI DE DATE


DEFINITIE :
Un tip de date reprezint:
- mulimea valorilor pe care le pot avea datele de tipul respectiv, si
- mulimea operaiilor care pot fi efectuate asupra acestora.
Tipurile de date utilizate de limbajul PASCAL sunt:
a). date simple (elementare);
b). date structurate.
2.2.1. DATELE SIMPLE (ELEMENTARE) pot fi, la randul lor, de tipul:
- scalar (enumerat) si
- standard, respectiv: ntreg, real, logic, caracter.

Datele elementare si operaiile aplicate acestora


TIPUL SCALAR (ENUMERAT)
Tipul scalar (enumerat) reprezint o mulime ordonat de date.
Ordinea datelor este dat de ordinea apariiei lor in list. Aceeai dat
NU poate fi utilizat ca element component in mai multe date de tip
enumerat.
Exemplu:
(AVION, TREN, VAPOR, AUTOMOBIL)
(LUNI, MARTI, ... , DUMINICA)
Datorit ordonrii datelor unui tip scalar (enumerat), asupra lor
putem folosi operatorii relaionali <, >, <>, < =, > =, =. Rezultatul aplicrii
37

unui operator relaional asupra datelor de tip scalar este o valoare logic
adevrat sau fals.
Funciile standard ce pot folosi ca argument date de tip scalar
sau elemente ale acestora sunt:
SUCC care determina succesorul argumentului;
PRED catre determin predecesorul argumentului;
ORD care determin rangul (poziia) argumentului in enumerare tiind
ca primul element are rangul zero i intre dou elemente consecutive
rangul crete cu 1.
Pentru folosirea acestor funcii se precizeaz numele funciei si
argumentul scris intre paranteze.
Exemplu:
SUCC (TREN) = VAPOR
PRED (JOI) = MIERCURI
ORD (AVION) = 0
TIPURILE DE DATE STANDARD
Dup cum s-a artat, n limbajul PASCAL exist patru tipuri de date
elementare standard:
- ntreg, declarat prin INTEGER,
- real, declarat prin REAL,
- logic, declarat prin BOOLEAN,
- caracter, declarat prin CHAR.
TIPUL INTREG
Tipul ntreg reprezint submulimea numerelor ntregi cuprinse intre
-MAXINT si +MAXINT, unde MAXINT este o constant perdefinit care
depinde de modul de reprezentare a valorilor ntregi in structura intern
a calculatorului.
Asupra datelor de tip ntreg se pot aplica:
38


operatori aritmetici binari care au ca rezultat tot valori ntregi, cu
unele excepii
operatori relaionali

Astfel:
OPERATOR

OPERATIA

TIPUL
REZULTATULUI

aritmetic
*
/
DIV
MOD
+
logic
=
<
>
<=
>=
<>

nmulire
mprire
mprire ntreag (ctul
mpririi)
restul mpririi ntregi
X MOD Y=X-(X DIV Y)*Y
Adunare
Scdere

ntreg
real
intreg

Egal
strict mai mic
strict mai mare
mai mic sau egal
mai mare sau egal
diferit

logic
logic
logic
logic
logic
logic

real
ntreg
ntreg

Funciile standard care produc rezultate de tip intreg sunt:


NUMELE
FUNCTIEI
ABS
SQR
TRUNC
ROUND

TIPUL
ARGUMENTULUI
ntreg
ntreg
real
real

SEMNIFICATIA REZULTATULUI
valoare absolut a argumentului
ptratul valorii argumentului
partea ntreaga a argumentului
valoarea argumentului rotunjit la
cel mai apropiat ntreg
39

Funciile TRUNC si ROUND se numesc funcii de transfer deoarece


permit trecerea de la un tip de dat la altul (de la real la intreg in acest
caz).
TIPUL REAL
Datele de tip real corespund numerelor reale din matematic.
Principala diferen in folosirea tipurilor ntreg si real const in faptul ca,
in timp ce rezultatele operaiilor asupra datelor de tip ntreg reproduc cu
exactitate rezultatele din aritmetica ntregilor, operaiile asupra datelor
de tip real sunt, de regula, aproximative datorit erorilor de rotunjire
cauzate de numrul de cifre folosite in reprezentarea valorilor reale in
structura intern a calculatorului.
Operatorii aritmetici binari care, aplicai datelor de tip real, dau ca
rezultat valori reale, sunt:
OPERATORUL
*
+
/

OPERATIA
nmulire
adunare
scdere
mprire

Aceste operatii se pot efectua i cu operanzi numerici micsti,


ntreg si real. In acest caz valoarea operandului de tip ntreg este, mai
nti, convertit la valoarea reala iar rezultatul este de tip real.
Funciile standard care produc rezultate de tip real sunt prezentate
in tabelul de mai jos.
In cazul argumentelor ntregi, naintea aplicrii funciei se face
conversia in real a valorii argumentului.
Asupra datelor de tip real se pot aplica toi operatorii relaionali.

40

NUMELE
FUNCTIEI
ABS
SQR
SQRT
SIN
COS
ARCTAN
LN
EXP

TIPUL
SEMNIFICAIA REZULTATULUI
ARGUMENTULUI
real
valoare absoluta a argumentului
real
ptratul valorii argumentului
ntreg, real
rdcin ptrat din valoarea
argumentului
ntreg, real
sinusul valorii argumentului
ntreg, real
cosinusul valorii argumentului
ntreg, real
arctangenta din valoarea
argumentului
ntreg, real
logaritm natural din valoarea
argumentului
ntreg, real
exponeniala valorii argumentului

OBSERVATIE: Dei tipul real este un tip elementar, datele reale


nu pot fi folosite in anumite situaii valabile pentru toate celelalte date
elementare, si anume:
- argument pentru funciile SUCC si PRED;
- indice pentru variabilele de tip tablou;
- contor pentru instructiunea repetitiv FOR;
- tip de baz pentru o mulime.
TIPUL LOGIC
Datele de tip logic se declar ntr-un program PASCAL prin
BOOLEAN si pot avea una din variabilele predefinite:
FALSE = fals,
TRUE = adevrat.
Asupra datelor de tip logic se pot aplica operatorii logici binari:
OR (disjuncia logic),
AND (conjuncia logic).
si operatorul logic unar NOT (negaia logic), rezultatul fiind, de
asemenea, logic.

41

Datorit modului de definire menionat, asupra valorilor logice se


pot aplica operatorii relaionali cu rezultate interesane, asfel:
OPERATORUL
SEMNIFICAIA
echivalena
=
non-echivalena (sau
<>
exclusiv)
implicaia
<=
excepia
<
implicaia invers
>=
excepia invers
<
Funciile standard care produc rezultate de tip logic sunt:
OPERATIA
(FUNCTIA)
ODD
EOLN
EOF

TIPUL
SEMNIFICATIA
ARGUMENTULUI REZULTATULUI
ntreg
impar
fiier text
sfrit de linie
fiier
sfrit de fiier

Dac argumentul ARE semnificaia indicat pentru funcie atunci


rezultatul aplicrii funciei are valoarea logic adevrat.
TIPUL CARACTER
Tipul standard caracter reprezint o enumerare a unei mulimi de
caractere.
Nu exist operatori pentru valorile de tip caracter.
Funcia standard CHR aplicat unei date de tip ntreg pozitiv, are ca
rezultat caracterul avnd ca numr de ordine, in setul de caractere,
exact valoarea ntreag folosit ca argument. Funcia invers este ORD.
Datelor de tip caracter li se pot aplica funciile standard ORD, SUCC
si PRED. Fcnd trecerea de la tipul caracter la tipul ntreg si invers,

42

funciile ORD si CHR sunt funcii de transfer ca si funciile ROUND si


TRUNC.
2.2.2. DATELE STRUCTURATE
Datele structurate sunt ansambluri de date elementare organizate
in conformitate cu o anumita structur.
Tabloul (masivul) reprezint un ansamblu de date elementare de
acelai tip, purtnd toate acelai nume i ordonate spaial dup una sau
mai multe direcii. In descrierea algoritmilor, pentru desemnarea valorilor
componentelor unui tablou se utilizeaz o notaie indicial, numit
variabil indexat. Un element oarecare este specificat prin numele
tabloului nsoit de lista indicilor cuprins ntre paranteze. Prelucrarea
unui tablou se bazeaz pe executarea unor operaii efectuate asupra
componentelor sale.
Inregistrarea const dintr-un numr fix de componente care pot fi
de tipuri diferite. Componentele unei nregistrri se numesc cmpuri si
identificatorul unui cmp, cu ajutorul cruia acesta poate fi referit se
numete selector de cmp.
Mulimea este realizat asemntor cu un masiv dar ea difer de
acesta prin operaiile specifice care se pot realiza: intersecia,
reuniunea.
Fiierul are o mare aplicabilitate n domeniul economic. El
reprezint o colecie omogen de date care cuantific proprietile
obiectelor ce trebuie descrise din punct de vedere informaional.
Organizarea fiierelor poate fi:
- secvenial:
- indexat:
- secvenial indexat.
Pe masura ce se va avansa privind cunostintele de limbaj
TURBO-PASCAL, vom detalia informatiile despre datele structurate.

43

APLICATII LA TIPURILE DE DATE


APLICATIA 1
Fie definitia unei date de tip enumerat: (ROSU, GALBEN, VERDE,
ALBASTRU)
Sa se determine valorile urmatoarelor expresii
a) SUCC(GALBEN); PRED(ALBASTRU);
SUCC(SUCC(PRED(GALBEN)))
b) SUCC(ORD(PRED(ALBASTRU)));
SUCC(SUCC(ORD(ALBASTRU)));
c) SUCC(SUCC(ROSU))<>GALBEN
d) PRED(SUCC(SUCC(PRED(VERDE))))=VERDE; GALBEN >
GALBEN
e) ROSU<=ROSU;VERDE > ALBASTRU
Exemplu de rezolvare:
a). SUCC(SUCC(PRED(GALBEN)))
ROSU
GALBEN
VERDE
Celelalte exercitii sunt propse pentru autoevaluare.

44

APLICATIA 2
Consideram ca A si B sunt date de tip intreg, iar C si D sunt date
de tip real. Precizati care din expresiile urmatoare sunt corecte si care
sunt incorecte.
A = B+1.
B=A+2
C=A+B
D=A*C

A=B*2
B=A/2
C=A/B
D=B*3.

C=A+5.
D=C-A
A=C+B
B=D+1

Exemplu de rezolvare:
Suma dintre un numar intreg, B si un numar real, 1., este un
numar real ce nu poate fi atribuit unei date de tip intreg cum este A.
Deci, prima expresie este incorecta.
Celelalte exercitii sunt propuse pentru autoevaluare.

45

MODULUL 2. ELEMENTE DE LIMBAJ TURBOPASCAL (continuare)


2.3. DECLARATII IN TURBO-PASCAL
In limbajul TURBO-PASCAL declaratiile se clasifica astfel:
a). DECLARAREA ETICHETELOR introduce siruri de cel mult patru
cifre zecimale ce constituie etichete folosite pentru marcarea unor
instructiuni din lista de instructiuni a programului.
Sintaxa unei astfel de declaratii este urmatoarea :
LABEL eticheta1, etcheta2, ... , etichetaN ;
Etichetele servesc la marcarea prin prefixare a insructiunilor. De
exemplu :
10 : X := -B + SQRT(A) ;
Eticheta se desparte prin : de instructiunea de etichetat. Fiecare
eticheta declarata va marca cel mult o instructiune din blocul ce contine
declaratia. Marcarea unei instructiuni permite referirea ei, de exemplu, in
cadrul unei instructiuni de salt neconditionat, astfel :
GOTO 10 ;
Executia acestei instructiuni impune ca prelucrarea sa continue
incepand cu instructiunea etichetata cu 10. In TURBO-PASCAL toate
etichetele trebuie declarate. Doar declaratia LABEL 10 permite
utilizarea in cadrul programului a etichetei 10.
46

b). DECLARAREA CONSTANTELOR introduce identificatori (denumiri)


echivalenti unor constante, deci identificatori ce pot fi folositi in locul
constantelor cu care au fost echivalati prin declaratie.
Sintaxa unei astfel de declaratii este urmatoarea :
CONST identificator1=constanta1 ; identificator2=constanta2 ; ... ;
unde constantele 1, 2, ... sunt fie numere (intregi sau reale) cu sau fara
semn, fie identificatori ai altor constante anterior declarate (eventual cu
semn), fie un sir de caractere. Se introduc astfel denumiri simbolice
pentru constante.
Exemple :
CONST PI=3.14 ;
CONST LUNG = 4 ; SEPARATOR = $ ; INALT = - LUNG ;
c). DEFINIREA (DECLARAREA) TIPURILOR introduce identificatori,
deci nume simbolice, pentru tipurile de date create de programator.
Sintaxa unei astfel de declaratii este urmatoarea :
TYPE identificator1=tip1 ; identificator2=tip2 ; ... ;
unde tip este specificarea unui tip folosind tipurile de date ce pot fi
utilizate de limbajul TURBO-PASCAL iar identificator este numele
asociat prin definitie tipului. Este posibila astfel specificarea unor tipuri
oricat de complexe printr-un simplu nume. Aceasta simplifica descrierea
algoritmului prin ascunderea unor detalii privind alcatuirea unor variabile
cu structura complexa, ceea ce corespunde operatiei de abstractizare in
faza de elaborare a produselor-program.
47

Exemple :
TYPE CULOARE=(ALB, ROSU, VERDE) ;
tipul enumerat
TYPE NUMAR=INTEGER ;
tipul standard intreg
TYPE ALTCHAR=CHAR;
tipul standard caracter
d). DECLARAREA VARIABILELOR introduce identificatori, deci nume
simbolice pentru locatii de memorie in care pot fi memorate valori de
anumite tipuri specificate in declaratie.
Sintaxa unei astfel de declaratii este urmatoarea :
VAR identificator1, identificator2, ... : tip1 ;
identificator11, identificator22, ... : tip2;
Declaratia introduce nume simbolic (identificator) pentru fiecare variabila
si indica tipul variabilei desemnate prin identificator, deci domeniul in
care variabila poate lua valori. Tipul indicat poate fi un tip de date
predefinit in TURBO-PASCAL sau un tip definit de utilizator printr-o
declaratie TYPE.
Exemple :
VAR A, B : INTEGER ; C, D : REAL ;
VAR NUME,PRENUME : CHAR;
e). DECLARAREA SUBPROGRAMELOR introduce identificatori sau
nume simbolice pentru proceduri si functii. Prezentarea acestui tip de
declaratii se va face intr-un modul urmator, dupa prezentarea unor
elemente de limbaj TURBO-PASCAL necesare descrierii acestora.

48

Intr-o lista de declaratii nu este obligatorie prezenta tuturor


acestor tipuri de declaratii mentionate, dar cele care apar trebuie sa
respecte ordinea urmatoare :
declaratia etichetelor
declaratia constantelor
declaratia tipurilor
declaratia variabilelor
declaratia subprogramelor

2.4. INSTRUCTIUNI ALE LIMBAJULUI TURBO-PASCAL


2.4.1. CLASIFICREA INSTRUCTIUNILOR
Ca si in alte limbaje de programare, in limbajul TURBO-PASCAL,
instructiunile se impart in:
a). Instructiuni simple reprezentate de:
- instructiunea de atribuire
- instructiunea procedurala (de citire sau scriere)
- instructiunea de salt neconditionat GO TO
- instrctiunea vida.
b). Instructiuni stucturate reprezentate de:
- instructiunea compusa
- intructiunea alternativa IF
- instructiunile repetitive WHILE, REPEAT si FOR
- instructiunea alternativa generalizata CASE.

49

2.4.2. INSTRUCTIUNILE SIMPLE


INSTRUCTIUNEA DE ATRIBUIRE
Sintaxa acestei instructiuni este urmatoarea:
variabila := expresie
unde :=este operatorul de atribuire, iar expresie descrie o relatie de
calcul a variabilei. Instructiunea de atribuire poate fi folosita si pentru
definirea expresiei unei functii astfel :
nume functie := expresie
In acest caz expresie corespunde relatiei de calcul a functiei.
Sintactic, expresie este alcatuita din :
- operanzi (variabile, constante, nume de functii),
- operatori - unari (se scriu inaintea operandului),
- binari (se scriu intre operanzi) .
Expresiile pot contine paranteze cu scopul shimbarii prioritatii de
executare a operatiilor.
Regulile de formare a unei expresii sunt cele din algebra, cu
respectarea ordinii prioritatii operatiilor. Astfel, operatorii folositi in
TURBO-PASCAL, in ordinea prioritatii descrescatoare, sunt :
OPERATOR
NOT
* / DIV MOD AND
+ - OR
= <> < <= > >= IN
50

Prioritatile din acest tabel trebuie tratate cu atentie la evauarea


expresiilor.
Exemplu:
X>LIMINF AND X<LIMSUP
nu este transcrierea expresiei:
X>LIMINF SI X<LIMSUP
ci constituie o expresie incorecta deoarece, conform tabelului de
prioritati, ea este echivalenta cu :
X> (LIMINF AND X) < LIMSUP
Forma corecta a expresiei de mai sus este:
(X > LIMINF) AND (X < LIMSUP).
In TURBO-PASCAL se respecta urmatoarele reguli de evaluare a
expresiilor, valabile in majoritatea limbajelor de programare:
1). Intr-o expresie cu paranteze se evalueaza mai intai expresiile
dintre paranteze.
2). Intr-o expresie fara paranteze se evalueaza mai intai
operatorii cu prioritatea cea mai mare, conform tabelului de
prioritati.
3). Intr-o expresie fara paranteze si cu operatori de aceeasi
prioritate ordinea evaluarii lor este de la stanga la dreapta.

51

OBSERVATII
- Daca expresia dintre paranteze contine, la randul ei, paranteze,
se vor evalua mai intai expresiile dintre parantezele interioare, ca
in algebra.
- Daca un operand al unui operator este un nume de functie, de
exemplu B+SQRT(A), intai trebuie calculata functia (SQRT(A), in
exemplul dat) si apoi se efectueaza operatia indicata de operator
(adunarea, in exemplul dat).
- Daca operanzii utilizati de un operator sunt micsti, intai se
realizeaza conversia la tipul superior si apoi se efecueaza
operatia. Este cazul operanzilor +, -, *, / care pot accepta un
operand intreg si unul real, caz in care se realizeaza mai intai
conversia operandului intreg la valoarea reala corespunzatoare si
apoi se efectueaza operatia impusa de operand.
Exemple :
X+Y*Z

este echivalent cu

X + (Y * Z)

X/Y*Z

este echivalent cu

(X / Y) * Z

-B + SQRT(SQR(B) 4*A)

este echivalent cu
-B+(SQRT(SQR(B) - (4*A)))

NOT A AND B OR (A AND M)

este echivalent cu
((NOT A) AND B) OR (A AND M)

Semnificatia instructiunii de atribuire este urmatoarea:


Se evalueaza expresia. Rezulta o valoare de tip t1.
Se compara tipul valorii rezultatului cu tipul t2 al variabilei. Daca
cele doua tipuri coincid, valoarea rezultatului evaluarii expresiei
este depusa in spatiul de memorie alocat variablei. Daca tipurile
t1 si t2 nu coincid, in afara a patru exceptii, atribuirea esueaza si
52

este semnalat un mesaj de eroare. Una din cele 4 exceptii este


urmatoarea :
t1 este intreg

si

t2 este real

In acest caz are loc conversia valorii expresiei la tipul real dupa care se
realizeaza atribuirea. Celelale exceptii vor fi prezentate mai tarziu, dupa
asimilarea unui nivel mai ridicat de cunostinte de limbaj TURBOPASCAL.
Exemple de instructiuni de atribuire :
1).

VAR Y : INTEGER ; X : REAL ;


...................................................
X := Y;
atribuire corecta cu t1 t2
X := X+1 ; atribuire corecta cu t1 =t2 si operanzi micsti
Y := X ;
atribuire incorecta cu t1 t2

2).
VAR
CULOAREAMEA, CULOAREATA, OCULOARE :
CULOARE ;
...................................................................................................................
OCULOARE := CULOAREAMEA;
CULOAREAMEA := CULOAREATA;
CULOAREATA := OCULOARE;
Acest grup de atribuiri are ca efect schimbarea valorilor a doua variabile
folosind o variaila intermediara (OCULOARE), conform schemei
urmatoare:
1
CULOAREAMEA

OCULOARE
2

53

3
CULOAREATA

Atribuirea, conform acestei scheme sau a succesiunii celor 3 atribuiri de


mai sus, este corecta.
3).

CONST A=75 ;
.................................
A := 3 ;
atribuire incorecta deoarce A este o constanta.

INSTRUCTIUNI DE CITIRE SI SCRIERE


Pentru citirea datelor din fisierul INPUT se utilizaza procedurile
standard READ si READLN iar pentru scrierea datelor in fisierul
OUTPUT se utilizeaza procedurile standard WRITE si WRITELN.
Sintaxa apelului procedurii READ este urmatoarea:
READ (variabila1, variabila2,
unde variabilele pot fi doar de tipurile caracter, intreg sau real, eventual
subdomenii ale acestora.
Efectul apelului procedurii READ este:
Se citesc valorile din fisierul INPUT din punctul in care l-a lasat
citiea anterioara si se atribuie pe rand variabilelor ce constituie
parametrii actuali ai apelului. Valorile sunt astfel interpretate incat sa
corespunda tipului variabilelor. In cazul in care interpretarea nu este
posibila se semnaleaza eroare in executie.

Sintaxa apelului procedurii READLN este urmatoarea:


READLN (variabila1, variabila2, ...);

54

Efectul este similar cu cel al procedurii READ numai ca dupa citirea


variabilelor se trece la inceputul liniei urmatoare a fisierului INPUT.
Forma mai simpla:
READLN;
are ca efect doar trecerea la inceputul liniei urmatoare ignorand tot
restul necitit al liniei curente.
Sintaxa apelului procedurii WRITE este urmatoarea:
WRITE (variabila1, variabila2, ... sau expresie1, expresie2, ...);
unde variabilele sau expresiile pot fi de tip intreg, real, logic, caracter
sau sir de caractere. Efectul apelului procedurii WRITE este :
Se evalueaza pe rand variabilele sau expresiile iar valorile acestora
sunt scrise in ordinea impusa de apel in fisierul OUTPUT.
Daca dorim sa scriem rezultatele pe linii diferite, atunci se impune
folosirea procedurii WRITELN cu sintaxa urmatoare :
WRITELN (variabila1, variabila2, ... sau expresie1, expresie2, ...);
Efectul este acelasi cu cel al procedurii WRITE doar ca dupa scrierea
valorilor corespnzatoare apelului se trece la linia urmatoare in fisierul
OUTPUT. Forma redusa a apelului acestei proceduri
WRITELN ;
are ca unic efect trecerea la o noua linie in fisierul OUTPUT.
55

INSTRUCTIUNEA DE SALT NECONDITIONAT


Instruciunea GOTO este o instruciune de salt necondiionat. Sintaxa
acestei instruciuni este urmtoarea:
GOTO etichet
unde etichet este un ir de maximum 4 cifre zecimale declarat ntr-o
instruciune LABEL valabil in punctul in care apare instruciune GOTO.
Se identifica in zona de valabilitate a etichetei, instruciune ce
poart eticheta respectiv. Execuia programului continu cu acea
instruciune. Zona (domeniul) de valabilitate a unei etichete este lista
instruciunilor unui program la nceputul cruia a fost declarat eticheta
respectiva printr-o instruciune LABEL. In cadrul unui program nu este
permis etichetarea mai multor instruciuni cu aceeai etichet.
OBSERVATIE
1. In cadrul unui program este permis saltul din interiorul unei
instruciuni structurate spre exteriorul acesteia. (instruciunea
structurat = instruciunea ce reprezint
o structur
fundamentala)
Exemple:
a). exemplul 1
LABEL 105;
-------BEGIN
-------IF A > B
THEN GO TO 105
ELSE A : = B 10;
--------

salt din interiorul unei


instruciuni structurate spre
exteriorul acesteia
56

105: BEGIN
------END;
END.
b). exemplul 2
LABEL 105;
-------BEGIN
-------GO TO 100;
-------100: X : = 1,75
END;

salt de la o instruciune la alta in


interiorul unei instruciuni
structurate

c). exemplul 3
LABEL 5;
-------BEGIN
GO TO 5;
-------CASE A OF
-------5 : x : = 14.5 ;
END;
END.
d). exemplul 4
LABEL 10;
-------BEGIN
57

10 :

GO TO 10;
-------IF A > B
THEN A : = B
ELSE
WRITE (INCORECT);
--------

END.

2.4.3. INSTRUCIUNI COMPUSE ALE LIMBAJULUI PASCAL


Un program scris in limbajul PASCAL contine urmtoare
elemente:
antet
zona de
declaraii

Zona de
instruciuni

PROGRAM
nume
VAR
tip variabile: nume variabile
LABEL etichete
SUBROUTINE/FUNCTION
nume
tip variabile: nume variabile
BEGIN
lista de instruciuni
END;
BEGIN
lista de instruciuni a
programului principal
END.

antetul programului
zona de declarare a
variabilelor
zona de declarare a
subrutinelor/functiilor

Principalele instruciuni compuse ale limbajului PASCAL sunt:

58

INSTRUCTIUNI CONDITIONATE (alternative)


Aceste instruciuni corespund structurilor fundamentate de tipul:
-

structura alternativ cu dou ramuri;


structura alternativ cu o ramur vid;
structura alternativ generalizat.

INSTRUCTIUNEA IF
Primelor dou structuri le corespunde in PASCAL instruciunea IF cu
cele dou forme:
IF condiie
THEN secvena 1 de instruciuni
ELSE secvena 2 de instruciuni;

IF condiie
THEN secvena 1 de instruciuni;
unde condiie este o expresie cu valoare logic (adevrat sau fals).
Efectul instruciunii este urmtorul:
Prima form:
1. Se evalueaz condiie. Fie V valoarea acesteia.
2. Daca V = adevrat se execut instruciunile din secvena 1; in
caz contrar se execut instruciunile din secvena 2.
A doua form:
1. Se evalueaz condiie. Fie V valoarea acesteia.
2. Daca V = adevrat se execut instruciunile din secvena 1; in
caz contrar nu se face nimic.

59

In cazul in care o instruciune IF este inclus in alt instruciune


IF poate apare urmtoarea ambiguitate:
IF condiie1 THEN IF condiie2 THEN instruciune1 ELSE instruciune2
Cui aparine ELSE instruciune 2, primei instruciuni IF sau celei
anterioare acesteia? Limbajul PASCAL rezolv ambiguitatea asociind
ELSE celui mai apropiat cuplu IF .. THEN .. anterior, care nu a fost
completat cu un ELSE. Deci, instruciunea de mai nainte ar putea fi
scris sub forma echivalent urmtoare:
IF condiie 1
THEN
BEGIN
IF condiie 2
THEN instruciune 1
ELSE instruciune 2;
END;

INSTRUCTIUNEA CASE-OF
Instruciunea PASCAL corespunztoare structurii alternative
generalizate este:
CASE expresie OF
lista constante-CASE: instruciune
End;
unde expresie este numit si index de caz.

60

Efectul instruciunii CASE este urmtorul:


1. Se evalueaz expresie. Fie V rezultatul.
2. Se selecteaz o instruciune folosind V. Pentru aceasta se caut
printre toate constantele CASE o constant egal ca valoare cu
V. Dac nu se gsete o asemenea constant, se semnaleaz
eroare la execuia instruciunii CASE. Dac se gsete, se
selecteaz instruciunea etichetat cu aceast constant.
3. Se execut instruciunea selectat, dup care instruciunea
CASE se ncheie.
Observaii
- Constantele CASE dintr-o instruciune CASE trebuie s fie
diferite ntre ele;
- Constantele CASE nu pot fi referite cu instruciunea GO TO si nu
pot apare intr-o declaraie LABEL;
- Instruciunea CASE se utilizeaz cnd avem de realizat o aciune
din mai multe sub-aciuni care, logic se exclud reciproc.
Exemplu:
VAR NREROARE: 1..7;
----------------BEGIN
----------------CASE NREROARE OF
1:
2,7:
3,5:
6:
END;
--------------END;

61

INSTRUCTIUNI REPETITIVE
Amintim faptul c, printre structurile fundamentale, am definit si
urmtoarele structuri repetitive:
- structura repetitiv cu test iniial;
- structura repetitiv cu test final;
- structura repetitiv cu contor.
Corespunztor acestora exist urmtoarele instruciuni in PACAL:
INSTRUCTIUNEA WHILE
Instructiunea WHILE are sintaxa urmatoare:
WHILE condiie DO
instruciune sau secven de instruciuni
unde condiie este o expresie cu valoare logic.
Efectul instruciunii WHILE este urmtorul:
1. Se evalueaz condiie. Dac valoarea ei este fals execuia
instruciunii de incheie. Dac valoarea ei este adevrat se
continu cu 2.
2. Se execut instruciunea sau secvena de instruciuni care
formeaz corpul structurii repetitive. Dup execuie se continu
cu 1.

62

Exemple:
WHILE S < 0 DO
S : = S + A;

K:=5
S:=0
WHILE K 12 DO
BEGIN
IF A(K) > 0
THEN S : = S + A(K)
ELSE S: = 1;
K: = K + 1;
END;

INSTRUCTIUNEA REPEAT
Instruciunea PASCAL corespunztoare structurii repetitive cu
test final este urmtoarea:
REPEAT
secven de instruciuni
UNTIL conditie
Efectul instruciunii REPEAT este:
1. Se execut secvena de instruciuni ce formeaz corpul
instruciunii.
2. Se evalueaz condiie. Dac valoarea acesteia este adevrat
execuia instruciunii REPEAT se termin. Dac valoarea
condiiei este fals se continu cu l.
Observaie
In cazul instruciunii REPEAT execuia corpului structurii are loc
mcar o dat. De aceea, dac tim c ntr-o problem execuia unei
secvene de aciuni are loc mcar o dat, instruciunea REPEAT poate fi

63

nlocuit cu instruciunea WHILE si invers. In acest caz condiia uneia


va fi negaia condiiei celeilalte.
INSTRUCTIUNEA FOR
Structura repetitiv cu contor are drept corespondent in limbajul
PASCAL instruciunea FOR cu sintaxa urmtoare:
FOR variabil : = valoare iniial TO valoare final DO
secven de instruciuni;
sau
FOR variabil : = valoare iniial DOWNTO valoare final DO
secven de instruciuni;
unde valoarea iniiala si valoare final sunt expresii de acelai tip cu
variabil. Variabila se numete contorul structurii FOR.
Efectul instruciunii FOR este urmtorul pentru ambele forme:
1. Se evalueaz valoarea iniial i valoarea final. Fie V1 si V2
cele dou valori. Se testeaz c V1 < V2 pentru prima form si V1
> V2 pentru a doua form. In caz afirmativ se continu cu 2. In
caz contrar execuia de ncheie.
2. Se atribuie contorului valoare V1.
3. Se execut secvena de instruciuni care formeaz corpul
structurii. Se continua cu 4.
4. Se calculeaz predecesorului contorului pentru prima form sau
predecesorul contorului pentru a doua form.
5. Se compar valoarea obinut cu V2. Dac este mai mare pentru
prima form, respectiv mai mic pentru a doua form, se ncheie
execuia. Altfel se continu cu 3.
64

3. CONSIDERATII PRIVIND SCRIEREA PROGRAMELOR


TURBO-PASCAL
Indicaiile ce sunt prezentate in continuare nu fac parte din
definiia limbajului. Ele sunt introduse in mod convenional cu scopul
creterii claritii programelor, obiectiv de maxim importan in
programare.
a) INDENTAREA PROGRAMELOR
Limbajul TURBO-PASCAL ofer mari liberti privind plasarea
textului programului pe linii astfel nct se pot scrie mai multe instruciuni
pe aceeai linie dar putem scrie i o singur instruciune pe mai multe
linii. Vom folosi aceste posibiliti pentru a stabili criterii de scriere ct
mai clara a programelor.
Poziionarea nceputului textului la diferite distane spre dreapta
fa de inceputul fizic al liniei reprezint principala caracteristic a
scrierii indentate a programului. Ea are ca scop reproducerea grafic, in
plan vizual, a structurii logice a programului. S considerm, de
exemplu, urmtoarea secven:
algoritm

program

REPETA
REPEAT
ATRIBUIE C(B+A)/2
C:=(B+A)/2;
ATRIBUIE FC*EXP(C)-1
F:=C x EXP(C)-1;
IF F<0
DACA F<0
THEN A:=C
ATUNCI ATRIBUIE AC
ELSE B:=C;
ATUNCI ATRIBUIE BC
SFARSIT DACA
UNTIL ABS(B-A)<EPS;
PANA CAND ABS(B-A)<EPS

65

Scrierea decalat scoate in eviden:


- unitatea construciei instruciunii REPEAT;
- subordonarea sintactic i semantic a secvenei de instruciuni
cuprinse intre REPEAT si UNTIL.
b) EVIDENTIEREA CICLURILOR (structurilor repetitive)
Sintaxa limbajului PASCAL permite nlnuirea structurilor
repetitive, adic plasarea uneia in corpul alteia.
Indentarea programului scoate destul de bine in eviden aceast
nlnuire. Totui, cnd corpurile structurilor repetitive sunt formate din
mai multe instruciuni, pentru a nu pierde irul inlnuirilor, este bine s
se marcheze prin comentarii inceputul si sfritul fiecrei structuri
repetitive. Aceasta se poate realiza prin stabilirea unei denumiri pentru
fiecare structur repetitiv i plasarea acesteia, ca un comentariu, la
nceputul si sfritul corpului structurii.
Pentru structura repetitiv cu test final (instruciunea REPEAT)
numele structurii se plaseaz pe liniile REPEAT si UNTIL ce delimiteaz
structura.
EXEMPLU: S se scrie algoritmul si programul pentru calculul
factorilor primi ai unui numr ntreg pozitiv dat, precum i a puterilor lor
maxime care divid numrul dat.
Vom incerca, prin acest exemplu, sa subliniem pasii obligatorii de
parcurs pentru rezolvarea problemei date astfel incat sa avem un
rezultat corect.

66

Pasul 1: algoritmul
INCEPUT PROGRAM FACTOPRIM
CITESTE NR
APRIBUIE i=2
REPETA
*divide NR cu i si determina puterea
ATRIBUIE PUTERE=0
CAT TIMP NR MOD i=0 (restul impartirii la i=0)
ATRIBUIE NR = NR/i
ATRIBUIE PUTERE=PUTERE+1
REPETA
DACA PUTERE0
ATUNCI SCRIE i, PUTERE
SFARSIT DACA
*treci la urmatorul i
DACA i2
ATUNCI ATRIBUIE i=i+2
ALTFEL ATRIBUIE i=i+1
SFARSIT DACA
PANA CAND NR=1
SFARSIT PROGRAM
Pasul 2: identificarea declaratiilor necesare
Date de intrare: NR elementara de tip intreg reprezentand numarul de
descompus in factori primi
Date de iesire: i, PUTERE elementare de tip intreg reprezentand
factorii primi si puterea corespunzatoare fiecaruia dintre ei. Avand in
vedere ca i se initializeaza la 2, numar intreg, si ca valorile lui urmatoare
se obtin ca suma de numere intregi, rezulta tipul acestuia, elementar
intreg. PUTERE rezulta ca valoare calculata prin suma unor numere
intregi, ceea ce determina tipul acesteia, elementar intreg.
67

Pasul 3: programul
(*PROGRAM DE DESCOMPUNERE IN FACTORI*)
(*PRIMI A UNUI NUMAR INTREG*)
PROGRAM FACTOR_PRIM;
VAR NR, i, PUTERE : INTEGER;
BEGIN
READ(NR);
i:=2;
REPEAT(*PRIM*)
(*DIVIDE NR CU i si DETERMINA PUTEREA*)
PUTERE:=0;
WHILE NR MOD i=0 DO (*PUTERE*)
BEGIN
NR:=NR DIV i;
PUTERE:=PUTERE+1;
END; (*PUTERE*)
IF PUTERE <>0
THEN WRITELN (i,PUTERE);
(*SFARSIT IF*)
(*TRECI LA URMATORUL i*)
IF i<>2
THEN i:=i+2
ELSE i:=i+1;
(*SFARSIT IF*)
UNTIL NR=1; (*PRIM*)
END. (*SFARSIT PROGRAM FACTORPRIM*)

68

c) TRANSCRIEREA ALGORITMULUI DIN PSEUDOCOD IN


PASCAL
Se constat cu uurin asemnarea uneori pn la identitate a
operaiilor din pseudocod cu instruciunile PASCAL. De aceea
transcrierea algoritmului din pseudocod in PASCAL este imediat.
Delimitarea secvenelor in cadrul programului necesit uneori
introducerea unor linii de comentarii care ajut foarte mult n faza de
depanare a programului. Pe de alt parte ins, ncrcarea programului
cu comentarii, multe redundante, poate conduce la scderea claritii.
Tot in scopul claritii programelor este de dorit ca numele
simbolice ale variabilelor s fie ct mai sugestive si s evoce
semnificaia lor.
Exemplu: Comentarii pe programul scris mai sus.

69

4. TIPURI DE DATE IN TURBO-PASCAL. DATE


STRUCTURATE
Reamintim ca datele structurate utilizate frecvent de limbajul
TURBO-PASCAL sunt:
a) TABLOUL format prin compunerea unor elemente de acelai tip
organizate dup una sau mai multe direcii structur omogen
b) INREGISTRAREA format din elemente de tipuri diferite
structur neomogen
c) MULTIMEA format din totalitatea submulimilor unui tip de
baz care este un tip ordinal
TABLOUL
Ca si in alte limbaje de programare, in limbaj PASCAL tabloul
este un ansamblu format dintr-un numr fix de elemente componente de
acelai tip. Tipul componentelor se numete tip de baz al tabloului.
Accesul la un element al tabloului se face folosind numele tabloului si o
valoare a indicelui ce specific locul elementului in cadrul ansamblului.
Declararea variabilelor sau datelor structurate de tip tablou se
poate realiza in doua moduri:
Modul 1 se realizeaz printr-o instruciune de forma urmtoare:
VAR nume tablou: ARRAY [1 .. DIMMAX] OF tip de baza
Exemplu:

VAR PAGINA: ARRAY[1 .. 40] OF CHAR;

Modul 2 introducerea tipului de date declarat


TYPE nume tip = ARRAY [1 .. DIMMAX] OF tip de baza

70

Tipul de date declarat are sens atunci cnd in program exist mai
multe date sau variabile de tipul respectiv, prin aceasta facndu-se o
economie de instruciuni de definire a datelor si variabilelor programului.
EXEMPLE:
a).
TYPE VECTOR=ARRAY[1 .. 100] OF REAL;
VAR SIR1,SIR2:VECTOR;
b). S se scrie algoritmul si programul pentru ordonarea descresctoare
a unui ir avnd cel mult 100 valori reale propus pentru autoevaluare.
Pasul 1 : algoritmul
INCEPUT PROGRAM ORDONARE DESCRESCATOARE
CITESTE N
PENTRU i=1 LA N
CITESTE V(i)
REPETA
REPETA
INV=0
PENTRU i=1 LA N-1
DACA V(i)<V(i+1)
ATUNCI
AUX=V(i)
V(i)=V(i+1)
V(i+1)=AUX
INV=1
SFARSIT DACA
REPETA
PANA CAND INV=0
PENTRU i=1 LA N
SCRIE V(i)
REPETA
SFARSIT PROGRAM ORDONARE DESCRESCATOARE
71

Pasul 2: identificarea declaratiilor necesare


Date de intrare: N elementar de tip intreg;
V structurata de tip real.
Date de iesire: V structurata de tip real, reprezentand vectorul V cu
elementele ordonate descrescator.
Date interne:

i, INV elementare de tip intreg; Faptul ca i reprezinta


contorul structurii repetitive determina tipul acestei
date, elementar intreg; INV este o variabila interna
ce poate lua valorile intregi 1 sau 0 dupa cum s-a
efectuat sau un o inversare a doua elemente
succesive ale vectorului V dat; de aceea INV este
elementara de tip intreg.
AUX - elementara de tip real deoarece ea va stoca
temporar o valoare a unui element al vectorului V,
valoare care se stie ca este de tip real.

Pasul3: programul
PROGRAM ORDONARE_DESCRESCATOARE;
VAR
N,i,INV:INTEGER;
AUX:REAL;
V:ARRAY [1 .. 100] OF REAL;
BEGIN
WRITELN (Introduceti umarul elementelor vectorului);
READ(N);
FOR i:=1 TO N DO
BEGIN
WRITELN (Introduceti elementul, i, al vectorului);
READ (V[i]);
END;
72

REPEAT (*inversare doua cate doua*)


INV:=0;
FOR i:=1 TO N-1 DO
BEGIN (*parcurgere vector*)
IF V[i]<V[i+1]
THEN
BEGIN
AUX:=V[i];
V[i]:=V[i+1];
V[i+1]:=AUX;
INV:=1;
END;
END; (*sfarsit parcurgere vector*)
UNTIL INV=0; (*sfarsit inversare doua cate doua*)
FOR i:=1 TO N DO
WRITELN (V[i]);
END.

73

5. SUBPROGRAME
In limbajul TURBO-PASCAL exista doua feluri de subprograme:
- proceduri,
- functii.
care se executa sub controlul programului principal. Deosebirea dintre
proceduri si functii consta in numarul variabilelor calculate si returnate in
punctul din care s-a facut apelul si anume:

procedura calculeaza oricate asemenea valori;


functia calculeaza intotdeauna o singura valoare permitand
ca apelul ei sa se poata face chiar din expresia care are
nevoie de valoarea calculata.

Procedurile si functiile prezinta aceeasi structura in trei sectiuni


(antet, zona de declaratii si zona de instructiuni) ca si programul
principal.
Procedurile si functiile se definesc in zona de declaratii a
programului principal sau a altui subpogram. Ele sunt activate printr-o
instructiune de apelare care se poate afla in zona de instructiuni a
programului principal sau a altui subprogram (procedura sau functie).
Spre deosebire de programe, procedurile si functiile :
pot fi incluse unele in altele ;
prezinta facilitati de transmitere a parametrilor;
se pot chiar autoapela.
In momentul apelului unei proceduri sau functii se transfera
controlul acesteia si se continua cu calculele indicate de instructiunile
continute in procedura sau functia apelata. La terminarea calculelor se
revine in programul sau subprogramul apelant in punctul din care s-a
fact apelul si se continua cu instructiunile urmatoare apelului.

74

5.1. PROCEDURI
Structura generala a unei proceduri este urmatoarea :
antet PROCEDURE nume (lista parametrilor formali);
LABEL
declaratii de etichete locale;
zona
CONST
de
declaratii de constante locale;
declaratii
VAR
declaratii de variabile locale;
declaratii de subprograme;
zona
BEGIN
de
lista de instructiuni;
instructiuni END;
Activarea unei proceduri se realizeaza printr-o instructiune de
forma:
nume [(lista parametrilor efectivi)];
Lista parametrilor efectvi nu este obligatorie (de aceea a fost scrisa intre
paranteze drepte).
PARAMETRII FORMALI sunt nume de variabile care pot fi referite in
cadrul procedurii. Numele acestora este insotit de specificarea tipului
corespunzator.
Parametrii formali pot fi :
parametri de intrare care se comporta ca variabile locale ale
procedurii apelate, cu deosebirea ca primesc ca valoare
initiala valoarea parametrului efectiv corespunzator din lista
75

instructiunii de apelare. Prin intermediul unui parametru de


intrare se poate transmite o valoare din programul apelant
spre subprogram, nu si invers ; paramerii efectivi
corespunzatori parametrilor de intrare pot fi si expresii.
parametri de iesire se utlizeaza atunci cand trebuie
transmise valori dinspre interiorul procedurii care programul
apelant. Parametrul efectiv corespunzator unui parametru de
iesire trebuie sa fie un nume de variabila de tip compatibil,
neputand fi o exprese.

Sintaxa scrierii listei de parametri formali din antetul unei


proceduri este urmatoarea :
([VAR] nume1, nume2, ... : tip1 ; [VAR] numei, numej, ... : tip2);
optional

lista
variabilelor
(parametrilor)
de tip1

optional

lista
variabilelor
(parametrilor)
de tip2

se poate folosi doar in


fata listei parametrilor
de iesire pentru a-i
separa de cei de
intrare
PARAMETRII EFECTIVI reprezinta valorile pe care dorim sa le dam
parametrilor formali corespunzatori parametrilor de intrare si numele pe
care dorim sa le dam prametrilor formali corespunzatori parametrilor de
iesire in momentul activarii procedurii. Parametrii efectivi corespunzatori
parametrilor formali de intrare pot fi: nume de variabile, expresii sau

76

constante care se cunosc sau se pot calcula (in cazul expresiilor) in


momentul apelarii (activarii) procedurii.
Intre parametrii fomali si cei efectivi trebuie sa fie corespondenta
de numar si tip.
Sintaxa scrierii listei de parametri efectivi este urmatoarea :
(nume1 / constanta1 sau expresie1 /, nume2 / contanta2 sau
expresie2 , ...);
nu pote fi o
expresie daca
paramerul efectiv
sau nume1
corespunde unui
parametru formal
de iesire
EXEMPLU : Sa se scrie programul pentru a calcula n !
In rezolvarea problemei enuntate vom evidentia elementele principale
ale structurii unui program si ale unui subprogram, respectiv:
- antetul,
- zona de declaratii,
- zona de instructiuni.

77

procedura
PROGRAM PRINCIPAL EXEMPLUL1 ; antet program principal
VAR
n : INTEGER ;
f : REAL ;
PROCEDURE fact(n :INTEGER ; VAR f :REAL) ; antet
procedura
VAR
zona de declaratii a
i:INTEGER;
procedurii
BEGIN
f:=1.0;
FOR i:=1 TO n DO
zona de instructiuni a
f:=f x i;
procedurii
END;
BEGIN
WRITELN (n=);
READ (n);
fact (n,f);
zona de instructiuni a
WRITELN (factorial =, f);
programului principal
END.
zona de declaratii a programului principal

78

5.2. FUNCII
Structura unei funcii este urmtoarea:
antet
FUNCTION nume (lista parametrilor formali): tip funcie
----------------------------------------------------------------LABEL
declaraii etichete locale;
zona de
CONST
declaraii
declaraii constante locale;
VAR
declaraii variabile locale;
declaraii de subprograme
----------------------------------------------------------------zona de
BEGIN
instruciuni
lista de instruciuni;
END;
Activarea unei funcii se poate realiza ntr-o:
expresie
instruciune de atribuire, citire sau scriere.
Referirea la o funcie se realizeaz prin:
nume funcie (lista parametri efectivi)

Funcia returneaz in programul apelant o singur variabil care


poart acelai nume ca si funcia.

79

5.3. DOMENIUL DE VALABILITATE A VARIABILELOR SI


ETICHETELOR
Numim bloc corpul unui subprogram format din declaraii i lista
de instruciuni.
Domeniul de valabilitate a variabilelor i etichetelor este textul
blocului in care acestea au fost definite, inclusiv textele blocurilor
corespunztoare subprogramelor declarate in ineriorul blocului, cu
excepia celor care redefinesc variabila sau eticheta.

80

TEST DE EVALUARE
1 pct. din oficiu
1. Scrieti formatul general al instructiunii repetitive cu contor.
1 pct.
2. Transpuneti in limbaj TURBO-PASCAL urmatoarele secvente:
a). PENTRU i=1 LA N
S=S+2 x i
REPETA
1 pct.
b). DACA i < 6
ATUNCI A = 5
ALTFEL A = i x 2 5
1 pct.
3. Scrieti secventa de instructiuni prin care se defineste o functie.
1 pct.
4. Parcurgeti etapele necesare rezolvarii urmatoarei probleme:
Sa se calculeze produsul elementelor unui vector V dat, format din N
numere intregi. Se considera N un numar intreg dat.
a). Algoritmul problemei

1 pct.

b). Identificarea declaratiilor necesare

2 pct.

c). Programul

2 pct.

81

REZOLVAREA TESTULUI DE EVALUARE


1. Formatul general al instructiunii repetitive cu contor este:
FOR i:=1 TO N DO
secventa de instructiuni;
Se disting urmatoarele doua situatii:
-

secventa de instructiuni este formata dintr-o singura


instructiune si atunci, imediat dupa ea se pune ; pentru a
incheia instructiunea repetitiva;

secventa de instructiuni este formata din mai multe instructiuni


si atunci ele se grupeaza intre BEGIN si END; pentru a
asigura repetarea intregului grup; altfel se va considera ca
instructiunea se incheie la intalnirea primului ; si doar
instructiunea urmata de acest semn se va repeta.

2. a). FOR i:=1 TO N DO


S:=S+2 x i;
b). IF (i < 6)
THEN A := 5
ELSE A := i x 2 5;
3. Secventa de instructiuni prin care se defineste o functie este
urmatoarea:

82

antet
FUNCTION nume (lista parametrilor formali): tip funcie
----------------------------------------------------------------LABEL
declaraii etichete locale;
zona de
CONST
declaraii
declaraii constante locale;
VAR
declaraii variabile locale;
declaraii de subprograme
----------------------------------------------------------------zona de
BEGIN
instruciuni
lista de instruciuni;
END;
Aceasta secventa se scrie in zona de declaratii a programului principal
sau a subprogramului ce va apela functia astfel definita.
4. a). Algoritmul problemei date este urmatorul:
INCEPUT PROGRAM
CITESTE N
PENTRU i=1 LA N
CITESTE V(I)
REPETA
P=1
PENTRU i=1 LA N
P=P x V(i)
REPETA
SCRIE P
SFARSIT PROGRAM

83

b). Identificarea declaratiilor necesare


Dupa cum arata algoritmul problemei, datele ce trebuie declarate in
program sunt:
- date de intrare: N elementara de tip intreg
V structurata de tip intreg;
- date de iesire: P elementara de tip intreg;
- date interne:
i elementara de tip intreg.
c). Programul pentru rezolvarea problemei date este urmatorul:
PROGRAM produs;
VAR N,i,P : INTEGER;
V : ARRAY [1..20] OF INTEGER;
BEGIN
WRITELN (Introduceti numarul elementelor vectorului, N= );
READ (N);
FOR i:=1 TO N DO
BEGIN
WRITELN (V[,i,]= );
READ (V[i]);
END;
P:=1;
FOR i:=1 TO N DO
P:=P x V[i];
WRITELN (Produsul elementelor vectorului dat este P=, P);
END.

84

MODULUL 3. NOTIUNI DE EXCEL

1. NOTIUNI INTRODUCTIVE
1.1. INTRODUCERE
EXCEL este un program realizat de catre Microsoft. Cu ajutorul
acestuia se pot realiza tabele de date sub forma de liste continand
calcule mai mult sau mai putin complexe, grafice de date, s.a.
1.2. LANSAREA UNEI APLICATII EXCEL
Pentru a lansa o aplicatie EXCEL exista urmatoarele doua solutii:
- dublu-click pe icon-ul de pe Desktop al programului Excel;

Fig. 3.1
-

urmarea caii Start Programs Microsoft Excel sau Start


Programs Microsoft Office Microsoft Excel.

85

Fig. 3.2

86

1.3. FEREASTRA DE LUCRU A PROGRAMULUI EXCEL

BARA DE TITLU
CELULA ACTIVA

BARA DE MENIU

CASETA DE SCRIERE A
FORMULELOR

REFERIREA LA CELULA
ACTIVA

INDICATIVUL COLOANEI

INDICATIVUL LINIEI

CURSOR
VERTICAL

CURSOR ORIZONTAL

PAGINA
DIN FISIER

Fig. 3.3
Bara de titlu este compusa din numele programului (aici
Microsoft Excel) si numele pe care il vom da fisierului Excel creat (al
acestuia este Book1). Un fisier Excel este format din mai multe pagini,
numite sheet. Initial, fisierul este format din trei astfel de pagini asa
cum se afiseaza in bara de jos a ferestrei de lucru - dar se pot adauga
sau sterge oricate pagini dorim.
87

O pagina este organizata pe linii si coloane. Liniile sunt


identificate prin numere (de la 1 la 65.536) iar coloanele prin litere (256
coloane identificate printr-o litera sau combinatii de cate 2 litere ale
alfabetului latin).
Celula este elementul de baza al unei pagini si se gaseste la
intersectia dintre o linie si o coloana. Ea este referita printr-un indicativ
specific format din numele coloanei si numarul liniei pe care se afla
aceasta, pe pagina curenta. De exemplu, celula care se afla la
intersectia coloanei A cu linia 1 este referita prin indicativul A1. O celula
poate contine:
- date numerice sau alfanumerice;
- formule de calcul;
- comentarii.
Celula activa este cea care apare selectata in fereastra de lucru, ca in
figura 3.3.

88

2. CREAREA UNUI FISIER


In mod implicit, la deschiderea programului EXCEL, in fereastra
de lucru apare un fisier nou gol continand 3 pagini de calcul, de
asemenea goale.
Excel propune salvarea fisierelor create in mod implicit in
directorul My Documents, ceea ce este de evitat pentru ca la
reinstalarea sistemului de operare acest director este sters si inlocuit cu
unul nou dar vid. De aceea se recomanda salvarea fisierului creat intrun director de lucru creat anterior si care este recomandat sa se afle in
partitia D a calculatorului dumneavoastra.

Fig. 3.4
89

2.1. INCHIDEREA FISIERULUI DE LUCRU EXCEL


Pentru a inchide fisierul Excel in care ati lucrat si pe care l-ati
salvat, aveti doua posibilitati:
- alegeti optiunea Exit din meniul File;
- accesati butonul de inchidere ca in imaginea urmatoare (fig. 3.5).

Fig. 3.5
2.2. DESCHIDEREA UNUI FISIER EXCEL EXISTENT
Pentru a deschide un fisier Excel existent fie folositi butonul
din bara de meniu a programului, fie utilizati optiunea Open din meniul
File.
2.3. LUCRUL CU MAI MULTE PAGINI SIMULTAN
2.3.1. RedenumIrea unei pagini de clcul
Pentru a redenumi o pagina de calcul aveti urmatoarele doua
posibilitati :
- selectati din bara de meniu Format Sheet Rename (Fig. 3.6);

90

Fig. 3.6
-

dublu click in coltul din stanga jos al paginii de redenumit (fig.


3.7) si selectarea actiunii Rename. Numele paginii va vi marcat
ca pentru modificare si este suficient sa tastam noul nume dorit al
pagini.

Fig. 3.7
91

2.3.2. Schimbarea paginii active


Aceasta functie se realizeaza prin folosirea sagetilor stangadreapta din coltul stanga-jos al paginii sau prin selectarea paginii dorite
dupa nume (Sheet2, Sheet3, ...).
2.3.3. Adaugarea unei pagini de calcul in fisierul de lucru
Aceasta functie se realizeaza prin pozitionarea mouse-ului pe
numele paginii (Sheet1, de exemplu) si activarea meniului aferent prin
click mouse-dreapta din care selectati Insert (fig. 3.8).

Fig. 3.8
2.3.4. Deplasarea unei pagini
Asa cum se observa in figura 3.9, pagina 4 nu este plasata
corect. Pentru a o poztiona inaintea paginii Sheet3 (considerand ca
aranjarea corecta este in ordine descrescatoare) se agata Sheet4 prin
apasarea continua pe mouse si se deplaseaza aceasta in pozitia dorita.

92

Fig. 3.9
2.3.5. Stergerea unei pagini
Pentru a sterge o pagina de calcul este necesar sa ne pozitionam
pe numele paginii de sters (Sheet3, de exemplu) si prin clic mousedreapta sa activam meniul din care selectam actiunea Delete (figura
3.10).

Fig. 3.10
Atentie ! Pagina selectata va fi stearsa definitiv si toate datele din
aceasta pagina vor fi pierdute definitiv.

93

2.3.6. Optiunile paginii


Pregtirea documentului la nivelul paginii se realizeaz i n Excel
prin File, Page Setup, vezi fig. 3.11. Prima etichet, Page, permite:
Stabilirea formatului paginii (pe lime Portait, Tip portret
sau lungime Landscape, Tip vedere) ;
Alegerea unui procentaj de scriere (cuprins ntre 10% i 400%).
Cel mai adesea se va folosi 100%.
Calcularea automat a unui procentaj astfel nct tabelul s
ncap n numrul de pagini precizat. Aceast opiune este util
atunci cnd un tabel este doar cu puin mai mare dect una sau mai
multe pagini (de exemplu nu mai ncape doar ultima coloan sau
ultimele dou rnduri);
Alegerea tipului de hrtie utilizat la tiprire (adesea este A4) ;
Numrul primei pagini (fie este calculat automat de ctre Excel,
fie se scrie cel dorit).

Fig. 3.11
94

A doua etichet (fig. 3.12), Margins, permite stabilirea :


marginilor de sus (top), jos (bottom), stnga (left), dreapta
(right), pentru antet (heading) i pentru subsol (footer) ;
centrarea automat a tabelului pe orizontal sau pe vertical.

Fig. 3.12
Cea de-a treia etichet (fig. 3.13), Header/Footer permite crearea,
modificarea i tergerea antetului i subsolului paginilor.

95

Fig. 3.13
Se poate opta pentru un model standard de antet sau de
subsol, precum i pentru un antet sau un subsol creat de ctre
utilizator. De remarcat c att antetul ct i subsolul au n Excel trei
zone : cea din stnga, cea din mijloc i cea din dreapta. Este bine s se
verifice rezultatul prin opiunea Print Preview, nainte de a se tipri
documentul.
Pentru a crea un antet personal, se apas butonul Custom
Header.
n fereastra care apare (fig. 3.14), se poate scrie text sau se pot
plasa informaii n oricare din cele trei seciuni ale antetului.
Primul buton permite stabilirea fontului utilizat. Urmtoarele
butoane permit inserarea paginii curente, a numrului total de pagini, a
datei curente orei curente, numelui documentului (fiierului), respectiv al
foii de calcul curente. Asemntor se procedeaz cu subsolul paginii.

96

Fig. 3.14
Cea de-a patra etichet (fig. 3.15), Sheet, permite stabilirea :
Zonei tipribile (se poate tipri doar o parte a tabelului).
Pentru aceasta se execut un clic n zona Print area i se selecteaz
zona dorit. Pentru a elimina restricionarea tipririi doar a acestei
zone, se terge adresa domeniului din zona Print area ;
Capul de tabel, (rndurile ce conin capul tabelului sau
coloanele ce conin titlurile rndurilor i care se vor tipri pe fiecare
pagin, pentru a crete lizibilitatea tabelului).

97

Fig. 3.15
De exemplu, adesea tabelele au un rnd ce numeroteaz
coloanele i care trebuie repetat pe fiecare pagin. Se procedeaz
astfel :
Se alege File, Page Setup, eticheta Sheet.
Se selecteaz zona Rows to repeat at top, i se execut un
clic n linia care trebuie s se repete (sau se selecteaz liniile dac sunt
mai multe).
n exemplul prezentat s-a selectat prima linie a tabelului Excel.

98

a. prima pagin

b. pagina urmtoare

Fig. 3.16
Se observ c Excel completeaz singur domeniul de celule (se
putea, de altfel, tasta acest domeniu). n final se apas OK.
Dac se tipresc liniile de ghidare (care n mod obinuit nu se
tipresc Gridlines) ;
n cazul n care s-au folosit culori, se poate opta pentru
tiprirea alb-negru (Black and White) ;
Tiprirea unei ciorne, cu o calitate mai mic dar cu vitez
sporit Draft) ;
Literele
ce
denumesc
coloanele
i
cifrele
ce
numeroteaz rndurile (Row and Column Heading) ;
Dac i cum anume se vor tipri comentariile inserate n tabel ;
n cazul tabelelor mari, n ce ordine se face tiprirea (de sus n
jos, sau de la stnga la dreapta).

3. PARAMETRI EXCEL
3.1. AFISAREA BAREI DE MENIU
Functiie Excel se realizeaza folosind comenzile continute in bara de
meniu si in sub-meniuri. Cele mai utilizate bare de meniu sunt Standard
si Formatting, selectate din meniul View (Fig. 3.17).
99

Fig. 3.17
3.2. BARA DE SCRIERE A FORMULELOR
In momentul selectarii modului de inserare a formulelor apare
semnul = si se deschide fereastra de selectare a functiei de utilizat
(figura 3.18).

100

Fig. 3.18
Butoanele
si
de calcul scrise.

au semnificatia anularii, respectiv validarii formulelor

3.3. FORMATAREA CELULELOR


In functie de ceea ce vor contine celulele de pe pagina de lucru,
acestea pot avea diferite tipuri de format definit prin utilizarea
submeniului functiei Format din bara de meniu, astfel:

101

Fig. 3.19
Apare fereastra de submeniu Format Cells (figura 3.20) din care putem
selecta formatul dorit pentru celula sau celulele de lucru selectate in
cadrul paginii curente.

Fig. 3.20
102

3.4. MODIFICAREA CONTINUTULUI UNEI CELULE


Pentru modificarea continutului unei celule este necesar sa ne
pozitionam pe celula respectiva si sa apasam tasta F2 pentru a intra in
modul Insert. Putem deplasa cursorul in locul unde se doreste
modificarea (implicit, cursorul este pozitionat la sfarsitul celulei) sau
putem tasta noul continut al celulei, cel vechi stergandu-se automat.
3.5. SELECTAREA MAI MULTOR CELULE
Celulele de selectat pot fi adiacente sau nu si pentru cele doua
cazuri posibile procedam astfel:
- daca celulele sunt adiacente selectia se realizeaza pozitionand
mouse-ul pe celula din stanga-sus a zonei de selectat si, tinand
continuu apasata tasta Shift, deplasam mouse-ul pana in dreptul
celulei din dreapta-jos a zonei de selectat.; rezultatul va fi cel
prezentat in figura 3.21;
- daca celulele nu sunt adiacente, se selecteaza prima celula apoi
tinand continuu apasat pe tasta Ctrl de click-eaza pe rand pe
celulele de selectat; rezultatul este prezentat in figura 3.22.

Fig. 3.21

103

Fig. 3.22
3.6. SELECTIONAREA UNEI LINII SAU COLOANE
Aceasta selectie se realizeaza prin simpla selectare
identificatorului (numar sau litera) al liniei sau coloanei dorite.

4. MODIFICAREA UNUI TABEL


4.1. DEPLASAREA UNEI CELULE
In cazul in care am scris un text intr-o celula si ne-am dat seama
ca am gresit, nu este necesar sa stergem tot ceea ce am scris si sa
rescriem intr-o alta celula. Pentru a deplasa o celula, selectionam
aceasta si, pozitionand mouse-ul pe una din marginile acesteia,
agatam celula si o deplasam in locul dorit. Aceasta se realizeaza
tinand continuu apasat pe mouse.
4.2. INSERAREA UNEI CELULE
Inserarea unei celule se realizeaza folosind functia Insert din
bara de meniu. Submeniul acesteia este cel aratat in figura 3.23 si care
ne permite sa optam privind pozitia celulei de inserat fata de cea
selectata.
104

Fig. 3.23
4.3. APLICAREA
COLOANA

ACELEIASI

FORMULE

PE

INTREAGA

Pentru a aplica aceeasi formula pentru o intreaga coloana este


suficient sa scriem formula dorita doar in prima celula a coloanei si apoi,
selectand celula, sa atingem cu mouse-ul coltul din dreapta-jos al
acesteia pana cand apare semnul + si apoi glisam celula de-a lungul
intregii coloane cu ajutorul mouse-ului tinut continuu apasat. Efectul va fi
afisarea rezultatului aceleiasi formule de calcul pentru valorile implicate,
corespunzatoare fiecarei linii.

Fig. 3.24
105

4.4. CREAREA UNUI CALCUL


4.4.1. Crearea unui calcul simplu
Pentru crearea unui calcul simplu se impune respectarea
urmatoarelor reguli:
1). Orice calcul incepe, obligatoriu, cu semnul =.
2). Calculul se realizeaza in mod general, referindu-ne la celule prin
numele sau (A1, B1, ...) si nu prin valorile continute in interiorul
acestora.
3). Calculul se realizeaza intr-o celula diferita fata de celulele care
participa la acesta.
4). Pentru a valida un calcul trebuie, obligatoriu, apasata tasta ENTER.
Exemplu: Tastati valoarea 10 in celula A1 apoi deplasati-va cu sageata
de directie-dreapta spre celula B1. Celula A1 este astfel validata si
puteti tasta in celula B1 valoarea 20. Deplasandu-va spre dreapta la
celula C1, este validata celula B1 si putem acum sa generam un calcul
intre valorile celulelor A1 si B1 pentru a obtine valoarea
corespunzatoare celulei C1. Pentru aceasta tastam semnul = in celula
C1 apoi, fie cu mouse-ul, fie cu sageata de directie stanga (click-ind o
data pe celula de selectat) ne pozitionam pe celula A1. Aceasta va fi
marcata cu o linie de contur punctata iar in celula C1 este scris =A1.
Daca vrem sa adunam cele doua celule vom tasta semnul + si efectul
va fi afisarea in celula C1 a textului =A1+. Ne mai ramane sa adunam
celula B1 si acesata se realizeaza prin pozitionarea mouse-ului (clickind o data pe celula de selectat) sau a sagetii de directie-stanga pe
celula B1 In celula C1 va scrie=A1+B1. Imaginea urmatoare arata
calculul final:

106

Fig. 3.25
Prin apasarea tastei ENTER se valideaza calculul si in celula
C1 va aparea valoarea corespunzatoare sumei valorilor cuprinse in
celulele A1 si B1.
4.4.2. Utilizarea unei functii de calcul
O functie de calcul este un instrument care ne ajuta sa realizam
calcule complexe. Pentru a utiliza acest instrument este necesar sa
din
alegem Function din meniul Insert sau sa click-am pe iconul
bara de meniu. Se va deschide urmatoarea fereastra de dialog:

Fig. 3.26

107

Vor aparea toate categoriile de functii si, prin selctarea unei categorii vor
aparea functiile corspunzatoare acesteia in fereastra centrala. Iata
cateva functii interesante:
Functia SUM aduna o lista de celule una dupa alta.

Fig. 3.27
Asa cum se observa, se pot enumera pana la 30 de celule de adunat.
Acestea se selecteaza cu mouse-ul si, pe masura ce lista se
completeaza, apar noi casete in care se pot introduce celulele selectate.
Cand se considera ca lista celulelor de selectat este completa, se apasa
butonl OK si rezultatul calculului apare in celula curenta.
Functia AVERAGE permite calculul mediei valorilor continute
in mai multe celule (maxim 30). De exemplu, daca dorim sa calculam
media celulelor A1 si B1 selectam functia AVERAGE din lista deschisa
cu ajutorul iconului .
108

Fig. 3.28
Daca dorim selectarea altor celule decat cele propuse de Excel, atunci
selectam celulele dorite folosind mouse-ul sau sagetile de directie, ca in
cazul functiei SUM. Dupa ce terminam de selectat celulele a caror
medie se doreste, validam aceasta selectie si in celula C1 va aparea
valoarea medie corespunzatoare (figura 3.29).

Fig. 3.29
Functia MAX determina maximul dintr-un sir de celule. Daca in
lista celulelor selectate nu se afla nici o valoare, functia MAX returneaza
valorea zero. De exemplu, daca dorim aflarea maximului dintre celulele
109

A1, C1 si D1 selectam aceste celule in casetele corespunzatoare


functiei MAX aleasa din lista deschisa cu acelasi icon
(figura 3.30).

Fig. 3.30
Functia MIN determina valoarea minima dintr-o lista de maxim
30 de celule selectate. Daca celulele din lista nu contin nici o valoare
atunci functia MIN returneaza valoarea zero.

Fig. 3.31

110

5. REALIZAREA GRAFICELOR
Daca avem un sir de perechi (x,y) de date experimentale, putem
realiza reprezentarea grafica a acestora si putem determina functia care
aproximeaza cel mai bine legatura dintre cele doua siruri x si y ce
formeaza perechile de date experimentale. Pentru a obtine
reprezentarea grafica folosim iconul
din bara de meniul a
programului Excel, dupa selectarea sirului de date de reprezentat (figura
3.32) Va aparea fereastra de dialog din figura 3.33 din care alegem
modul de reprezentare grafica dorit.

Fig. 3.32

111

Fig. 3.33

112

n figura 3.34 este prezentat un preview al graficul de variaie a


datelor experimentale menionate anterior.

Fig. 3.34

6. ORDONAREA DATELOR
Pentru a sorta un tabel n Excel, se plaseaz cursorul n interiorul
su, iar din meniul Date se alege opiunea Sort. Apare o fereastra de
sortare asemntoare cu cea din Word :

113

Fig. 3.35
Pentru a explica posibilitile oferite de aceast opiune, se va
alege spre exemplificare tabelul urmtor:
Tabelul 3.1
Nume si prenume
Albota Constantin
Constantinescu Ionel
Varlan Mihail
Popescu Traian
Constantinide Elena
Ionescu Traian
Popescu Georgel
Bubu Traian
Croitoru Iolanda
Mihaescu Marius

Anul
II
II
I
I
II
I
II
II
I
I

114

Grupa
33321
33321
33311
33311
33321
33311
33321
33321
33311
33311

Media
7.67
8
9.32
6.42
8.55
6.63
5.82
5.54
9.01
10

Se dorete ca studenii s fie ordonai cresctor dup anul de


studiu.
Alegnd din meniul Data opiunea Sort, se fac seleciile ca
n figura urmtoare. De remarcat c a fost apsat butonul de selecie
Header row, din seciunea My list has, ceea ce nseamn c primul
rnd al tabelului este interpretat ca antet i nu este amestecat cu
celelalte.
Dac este apsat Header row, atunci n lista Sort by apar
numele coloanelor aa cum apar ele n primul rnd al tabelului, n
locul lui Column A (ca n figura precedent) :

Fig. 3.36
Efectul comenzii este prezentat n tabelul urmtor :
115

Tabelul 3.2
Nume si prenume
Varlan Mihail
Popescu Traian
Ionescu Traian
Croitoru Iolanda
Mihaescu Marius
Albota Constantin
Constantinescu Ionel
Constantinide Elena
Popescu Georgel
Bubu Traian

Anul
I
I
I
I
I
II
II
II
II
II

Grupa
33311
33311
33311
33311
33311
33321
33321
33321
33321
33321

Media
9.32
6.42
6.63
9.01
10
7.67
8
8.55
5.82
5.54

n continuare, se va dori ordonarea tabelului dup anii de studiu,


ns n cadrul fiecrui an de studiu se vor sorta studenii n funcie de
media lor. Se vor face seleciile urmtoare :

Fig. 3.37
116

Efectul comenzii este prezentat n tabelul urmtor :


Tabelul 3.3
Nume si prenume
Popescu Traian
Ionescu Traian
Croitoru Iolanda
Varlan Mihail
Mihaescu Marius
Bubu Traian
Popescu Georgel
Albota Constantin
Constantinescu Ionel
Constantinide Elena

Anul
I
I
I
I
I
II
II
II
II
II

Grupa
33311
33311
33311
33311
33311
33321
33321
33321
33321
33321

Media
6.42
6.63
9.01
9.32
10
5.54
5.82
7.67
8
8.55

Pentru a realiza o medie a celor doi ani de studiu, exist


posibilitatea crerii manuale a acestora, precum i utilizarea opiunii
Subtotals a meniului Data. n figura urmtoare este prezentat
fereastra ce apare, iar n continuare se vor explica opiunile sale.
n lista At each change in se decide criteriul dup care se
creeaz totalurile pariale. Pentru a obine totalurile mediei dintr-un
an de studiu, se va alege Anul, se utilizeaz funcia Average i se
selecteaz Media din lista Add subtotal to.
Efectul seleciei este prezentat n figura 3.38.

117

Fig. 3.38

7. FILTRAREA DATELOR
Pentru a afia doar o parte a datelor, acestea trebuie filtrate.
Filtrarea se realizeaz prin Data, Filter. Exist dou tipuri de filtre :
Autofilter i Advanced filter.
In cele ce urmeaza se va realiza un exemplu de filtrare a datelor
utiliznd facilitatea Autofilter.
Pentru a explica posibilitile oferite de aceast opiune, se va
alege, spre exemplificare, tabelul 3.1 prezentat anterior.
Pentru a afia doar studentii anului I, se poate utiliza Data, Filter
i se selecteaz Autofilter. nainte de a alege aceast opiune, se
selecteaz una din celulele din interiorul tabelului, nelsndu-se
118

cursorul n dreapta sau sub tabel.

Fig. 3.39
Fiecare coloan va avea o sgeat ce permite stabilirea unor
filtre asupra datelor din tabelul respectiv :

119

Fig. 3.40
Fiecare list conine toate valorile ce apar n coloana respectiv
plus trei opiuni speciale : All, Top10, Custom.
Pentru a afia doar studentii anului I de studiu, se va deschide
lista coloanei Anul i se alege opiunea I :

120

Fig. 3.41
Lista se va restrnge, afind doar rndurile ce conin
valoarea I n coloana Anul, Excel-ul ascunznd celelalte rnduri :

121

Fig. 3.42
Pentru a reafia ntreg tabelul se alege de la aceeai
coloan opiunea ALL.
Pentru a afia studentul cu media cea mai mare, se folosete din
coloana Media opiunea Top 10.
Apare fereastra Top 10 Autofilter, ce permite stabilirea faptului
c se aleg valorile cele mai mari (Top) sau cele mai mici (Bottom), cte
valori se aleg si dac se afieaz un numr de poziii din tabel
(Items) sau un procentaj (Percent).
Pentru a afia studentul cu media cea mai mare se fac seleciile
urmtoare :

122

Fig. 3.43

123

Fig. 3.44
rezultnd :

Fig. 3.45
124

Pentru a afla, spre exemplu, ci studeni n proporie de 20%, au


media cea mai mare, se fac seleciile :

Fig. 3.46
rezultnd:

125

Fig. 3.47
Dac se dorete obinerea tuturor studentilor cu media cuprins
ntre 6 i 8 , dup ce se afieaz ntreaga list cu opiunea All, se alege
Custom din coloana Media i se fac seleciile :

Fig. 3.48
126

Fig. 3.49
rezultnd :

127

Fig. 3.50
Pentru a elimina sgeile ce au aprut n urma selectrii
opiunii Autofiler, se alege din nou Data, Filter, Autofilter.
Filtrele create cu Autofilter au dezavantajul c sunt create pe loc,
adic nu se poate extrage o alt list ce conine rezultatul filtrrii, iar
anumite restricii complexe nu se pot obine.
Pentru a depi aceste limitri, se folosete opiunea Advanced
Filter, din Data, Filter. nainte de a alege aceast opiune, se vor scrie
restriciile la care se supun datele, ntruct, spre deosebire de opiunea
Autofilter, n cazul lui Advanced Filter, restriciile se scriu n tabel.
Pentru a spori lizibilitatea, se recomand ca ntre tabelul propriuzis i condiii s existe cel puin o coloan sau un rnd liber. O condiie
este format din numele coloanei ce se restricioneaz i condiia ce se
impune asupra ei, scris sub nume.

128

BIBLIOGRAFIE
[1] E. Popescu Algoritmi si limbajul PASCAL, Ed. ELSE, 2003.
[2] E. Popescu Limbajul PASCAL. Teorie si aplicatii, Ed. ELSE, 2004.
[3] C. Maier, M. Dima Programarea calculatoarelor si limbaje de
programare. Teorie si aplicatii, Ed. Cartea Universitara Bucuresti,
2007.
[4] Luca-Dan Serbanati, s.a. Programarea sistematica in limbajele
PASCAL si FORTRAN, Editura Tehnica, Bucuresti, 1984.
[5] Matthias Felleisen and col. How to Design Programs : An
Introduction to Programming and Computing, ISBN 0-262-06218-6,
2004, MLT Press Massachusetts Institute of Technology, Cambridge,
Massachusetts.
[6] Ion Fatu Teste grila de programare in limbajele PASCAL si C, Ed.
Didactica si Pedagogica Bucuresti, 1995, ISBN 973-30-4095-9.

129

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