Sunteți pe pagina 1din 128

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
BEGIN
NR:=NR DIV i;

(*PUTERE*)
PUTERE PUTERE 1
PROGRAMAREA
CALCULATOARELOR I LIMBAJE
DE PROGRAMARE



GALAI
2007

Ctlina MAIER Mircea DIMA








PROGRAMAREA
CALCULATOARELOR I LIMBAJE
DE PROGRAMARE













GALAI
2007


INTRODUCERE


Acest material didactic se adreseaza studentilor din anul I,
Inginerie Economica, forma de invatamant cu frecventa redusa. Avand
in vedere forma de invatamant, acest material cuprinde atat elemente
teoretice cat si aplicative. Aplicatiile prezentate sunt, in mare parte
rezolvate pentru a ajuta studentii sa isi formeze o logica a problemelor
tip astfel incat ei sa fie capabili sa rezolve orice alt tip de problema
inginereasca. O parte din aplicatii nu sunt rezolvate si ele sunt propuse
studentilor spre rezolvare cu scopul auto-evaluarii lor.
Primul modul al cursului prezinta principiile programarii
structurate si structurile fundamentale ce se utilizeaza in elaborarea
algoritmilor. Se insista cu un numar mare de aplicatii la acest modul
deoarece se considera de catre autori ca, orice inginer trebuie sa aiba o
gandire logica si sa fie capabil sa scrie algoritmul oricarei probleme
intalnite in activitatea sa, fara obligativitatea de a scrie si programul
corespunzator. Nu toti inginerii trebuie sau pot sa stapaneasca notiunile
de limbaj de programare dar programatorii la care acestia apeleaza
pentru a scrie programele nu pot cunoaste elementele de inginerie astfel
incat programul scris sa fie corect si eficient. Din acest motiv, este
recomandat ca iginerii sa scrie algoritmul problemei de rezolvat si
programatorii sa scrie programul, in cazul in care cei dintai nu pot
realiza acest lucru.
Al doi-lea modul al cursului prezinta elementele de baza ale limbajului
TURBO-PASCAL. S-a preferat acest limbaj deoarece el a fost creat
pentru a raspunde principiilor programarii structurate astfel incat,
cunoasterea elementelor de baza ale acestuia asigura adaptarea
inginerului-programator la orice alt limbaj de programare.
Al trei-lea modul cuprinde elemente de Excel prin care autorii incearca
sa dea notiunile de baza necesare unui inginer din domeniul Ingineriei
Economice.
AUTORII
CUPRINS

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

MODULUL 2. ELEMENTE DE LIMBAJ TURBO-PASCAL 36
2.1. STRUCTURA GENERALA A PROGRAMELOR 36
2.2. TIPURI DE DATE 37
2.2.1. DATELE SIMPLE (ELEMENTARE) 37
2.2.2. DATELE STRUCTURATE 43
APLICATII LA TIPURILE DE DATE 44
2.3. DECLARATII IN TURBO-PASCAL 46
2.4. INSTRUCTIUNI ALE LIMBAJULUI TURBO-PASCAL 49
2.4.1. CLASIFICREA INSTRUCTIUNILOR 49
2.4.2. INSTRUCTIUNILE SIMPLE 50
2.4.3. INSTRUCIUNI COMPUSE ALE LIMBAJULUI PASCAL 58
3. CONSIDERATII PRIVIND SCRIEREA PROGRAMELOR TURBO-
PASCAL
65
4. TIPURI DE DATE IN TURBO-PASCAL. DATE STRUCTURATE 70
5. SUBPROGRAME 74
5.1. PROCEDURI 75
5.2. FUNCII 79
5.3. DOMENIUL DE VALABILITATE A VARIABILELOR SI
ETICHETELOR
80

MODULUL 3. NOTIUNI DE EXCEL 81
1. NOTIUNI INTRODUCTIVE 81
1.1. INTRODUCERE 81
1.2. LANSAREA UNEI APLICATII EXCEL 81
1.3. FEREASTRA DE LUCRU A PROGRAMULUI EXCEL 83
2. CREAREA UNUI FISIER 85
2.1. INCHIDEREA FISIERULUI DE LUCRU EXCEL 86
2.2. DESCHIDEREA UNUI FISIER EXCEL EXISTENT 86
2.3. LUCRUL CU MAI MULTE PAGINI SIMULTAN 86
3. PARAMETRI EXCEL 95
3.1. AFISAREA BAREI DE MENIU 95
3.2. BARA DE SCRIERE A FORMULELOR 96
3.3. FORMATAREA CELULELOR 97
3.4. MODIFICAREA CONTINUTULUI UNEI CELULE 99
3.5. SELECTAREA MAI MULTOR CELULE 99
3.6. SELECTIONAREA UNEI LINII SAU COLOANE 100
4. MODIFICAREA UNUI TABEL 100
4.1. DEPLASAREA UNEI CELULE 100
4.2. INSERAREA UNEI CELULE 100
4.3. APLICAREA ACELEIASI FORMULE PE O INTREAGA
COLOANA
101
4.4. CREAREA UNUI CALCUL 102
5. REALIZAREA GRAFICELOR 107
6. ORDONAREA DATELOR 109
7. FILTRAREA DATELOR 114



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.









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










4

cost
cost realizare
module
cost total
cost realizare
interfete dintre
module


Figura 1.1
numar module
numar optim


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.











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


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














6
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

S
1
S
2
Sn



b). structura alternativa cu doua ramuri

schema logica pseudo-cod
# sectiune 1
# sectiune 2
# sectiune 3
.
# sectiune n
DACA # conditie c
ATUNCI
#secventa 1
ALTFEL
#secventa 2
Sfarsit
C
S1 S2
DA
NU









7
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 pseudo-cod

C
S
1
DA
NU


d). structura alernativa generalizata este structura alternativa care
are mai mult de doua ramuri.

schema logica pseudo-cod
DACA # conditie c
ATUNCI
#secventa 1
Sfarsit

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










8
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









9
g). structura repetitiva cu contor

In cadrul acesteia, secventa S
1
reprezinta corpul structurii
repetitive. Se evidentiaza etapele :
- initializarea contorului (v=m
1
) ;
- corpul structurii repetitive;
- avansarea contorului cu pasul m
3
(valoarea implicita a pasului de
avans este 1) ;
- testarea contorului (blocul de decizie v<=m
2
).
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=m
1
LA m
2
(pas m
3
)
# 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 S=0
i=1 S=0+2*1=2
i=2 25 DA S=2+2*2=2+4=6
i=3 35 DA S=6+2*3=6+6=12
i=4 45 DA S=12+2*4=12+8=20
i=5 55 DA S=20+2*5=20+10=30
i=6 65 NU 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 P=1
i=1 P=1*2*1=2
i=2 25 DA P=2*2*2=8
i=3 35 DA P=8*2*3=48
i=4 45 DA P=48*2*4=384
i=5 55 DA P=384*2*5=3840
i=6 65 NU 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+2-
1=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 minim: daca valoarea variabilei MIN este mai mare decat
valoarea elementului V(i) al vectorului, atunci MIN se inlocuieste cu
acesta;
- pentru maxim: daca valoarea variabilei MAX este mai mica decat
valoarea elementului V(i) al vectorului, atunci MAX se inlocuieste cu
acesta.









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:


7 0 3 2

A= 1 5 6 0

4 3 0 2

8 1 5 6

Acest exercitiu este propus studentilor spre rezolvare pentru
autoevaluare.



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 min
i
de pe linia i.











34
Verificarea algoritmului modulului

Se propune verificarea algoritmului modului considerand linia i astfel:

{ 7 , 0 , 5 , 3 , 2} , deci N=5.


a
i1
a
i 2
a
i 3
a
i 4
a
i 5


































35
MODULUL 2. ELEMENTE DE LIMBAJ TURBO-
PASCAL





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
* nmulire ntreg
/ mprire real
DIV mprire ntreag (ctul
mpririi)
intreg
MOD restul mpririi ntregi
X MOD Y=X-(X DIV Y)*Y
real
+ Adunare ntreg
- Scdere ntreg
logic
= Egal logic
< strict mai mic logic
> strict mai mare logic
<= mai mic sau egal logic
>= mai mare sau egal logic
<> diferit logic

Funciile standard care produc rezultate de tip intreg sunt:

NUMELE
FUNCTIEI
TIPUL
ARGUMENTULUI
SEMNIFICATIA REZULTATULUI
ABS ntreg valoare absolut a argumentului
SQR ntreg ptratul valorii argumentului
TRUNC real partea ntreaga a argumentului
ROUND real 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
TIPUL
ARGUMENTULUI
SEMNIFICAIA REZULTATULUI
ABS real valoare absoluta a argumentului
SQR real ptratul valorii argumentului
SQRT ntreg, real rdcin ptrat din valoarea
argumentului
SIN ntreg, real sinusul valorii argumentului
COS ntreg, real cosinusul valorii argumentului
ARCTAN ntreg, real arctangenta din valoarea
argumentului
LN ntreg, real logaritm natural din valoarea
argumentului
EXP 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)
TIPUL
ARGUMENTULUI
SEMNIFICATIA
REZULTATULUI
ODD ntreg impar
EOLN fiier text sfrit de linie
EOF 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. A=B*2 C=A+5.
B=A+2 B=A/2 D=C-A
C=A+B C=A/B A=C+B
D=A*C D=B*3. 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 TURBO-
PASCAL (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:




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 :




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
variabila := expresie
nume functie := expresie








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 t
1
.
Se compara tipul valorii rezultatului cu tipul t
2
al variabilei. Daca
cele doua tipuri coincid, valoarea rezultatului evaluarii expresiei
este depusa in spatiul de memorie alocat variablei. Daca tipurile
t
1
si t
2
nu coincid, in afara a patru exceptii, atribuirea esueaza si








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

t
1
este intreg si t
2
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 TURBO-
PASCAL.

Exemple de instructiuni de atribuire :

1). VAR Y : INTEGER ; X : REAL ;
...................................................
X := Y; atribuire corecta cu t
1
t
2
X := X+1 ; atribuire corecta cu t
1
=t
2
si operanzi micsti
Y := X ; atribuire incorecta cu t
1
t
2

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 3

2

OCULOARE
CULOAREAMEA CULOAREATA








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








Sintaxa apelului procedurii READLN este urmatoarea:




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




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;
GOTO etichet
salt din interiorul unei
instruciuni structurate spre
exteriorul acesteia
- - - - - - - -








56
105: BEGIN
- - - - - - -
END;
END.

b). exemplul 2

LABEL 105;
- - - - - - - -
BEGIN
salt de la o instruciune la alta in
interiorul unei instruciuni
structurate
- - - - - - - -
GO TO 100;
- - - - - - - -
100: X : = 1,75
END;

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
GO TO 10;
- - - - - - - -
IF A > B
THEN A : = B
ELSE
10 : WRITE (INCORECT);
- - - - - - - -
END.




2.4.3. INSTRUCIUNI COMPUSE ALE LIMBAJULUI PASCAL

Un program scris in limbajul PASCAL contine urmtoare
elemente:

antet PROGRAM nume antetul programului
zona de
declaraii
VAR
tip variabile: nume variabile
LABEL etichete
SUBROUTINE/FUNCTION
nume
tip variabile: nume variabile
BEGIN
lista de instruciuni
END;
zona de declarare a
variabilelor

zona de declarare a
subrutinelor/functiilor
Zona de
instruciuni
BEGIN
lista de instruciuni a
programului principal
END.


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 K : = 5
S : = S + A; 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 V
1
si V
2

cele dou valori. Se testeaz c V
1
< V
2
pentru prima form si V1
> V
2
pentru a doua form. In caz afirmativ se continu cu 2. In
caz contrar execuia de ncheie.
2. Se atribuie contorului valoare V
1
.
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 V
2
. 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

REPETA
ATRIBUIE C(B+A)/2
ATRIBUIE FC*EXP(C)-1
DACA F<0
ATUNCI ATRIBUIE AC
ATUNCI ATRIBUIE BC
SFARSIT DACA

PANA CAND ABS(B-A)<EPS


program

REPEAT
C:=(B+A)/2;
F:=C x EXP(C)-1;
IF F<0
THEN A:=C
ELSE B:=C;

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




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

Modul 2 introducerea tipului de date declarat
VAR nume tablou: ARRAY [1 .. DIMMAX] OF tip de baza
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
f:=f x i;
END;
BEGIN
WRITELN (n=);
READ (n);
fact (n,f); zona de instructiuni a
WRITELN (factorial =, f); programului principal

END.

zona de instructiuni a
procedurii


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









81


Fig. 3.2






















82
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 LINIEI
CURSOR
VERTICAL
INDICATIVUL COLOANEI
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.








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

























84
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 intr-
un director de lucru creat anterior si care este recomandat sa se afle in
partitia D a calculatorului dumneavoastra.


Fig. 3.4








85
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);









86


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








87
2.3.2. Schimbarea paginii active

Aceasta functie se realizeaza prin folosirea sagetilor stanga-
dreapta 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.









88


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 mouse-
dreapta 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.











89
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








90

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.









91


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.








92


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








93


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.









94

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








95



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









96


Fig. 3.18

Butoanele si au semnificatia anularii, respectiv validarii formulelor
de calcul scrise.

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:









97


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








98

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









99


Fig. 3.22

3.6. SELECTIONAREA UNEI LINII SAU COLOANE

Aceasta selectie se realizeaza prin simpla selectare a
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.








100


Fig. 3.23

4.3. APLICAREA ACELEIASI FORMULE PE O INTREAGA
COLOANA

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








101
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 (click-
ind 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:











102
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
alegem Function din meniul Insert sau sa click-am pe iconul din
bara de meniu. Se va deschide urmatoarea fereastra de dialog:



Fig. 3.26









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








104



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








105
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












106
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









107


Fig. 3.33




















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












109


Fig. 3.35

Pentru a explica posibilitile oferite de aceast opiune, se va
alege spre exemplificare tabelul urmtor:
Tabelul 3.1
Nume si prenume Anul Grupa Media
Albota Constantin II 33321 7.67
Constantinescu Ionel II 33321 8
Varlan Mihail I 33311 9.32
Popescu Traian I 33311 6.42
Constantinide Elena II 33321 8.55
Ionescu Traian I 33311 6.63
Popescu Georgel II 33321 5.82
Bubu Traian II 33321 5.54
Croitoru Iolanda I 33311 9.01
Mihaescu Marius I 33311 10








110

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 :








111
Tabelul 3.2
Nume si prenume Anul Grupa Media
Varlan Mihail I 33311 9.32
Popescu Traian I 33311 6.42
Ionescu Traian I 33311 6.63
Croitoru Iolanda I 33311 9.01
Mihaescu Marius I 33311 10
Albota Constantin II 33321 7.67
Constantinescu Ionel II 33321 8
Constantinide Elena II 33321 8.55
Popescu Georgel II 33321 5.82
Bubu Traian II 33321 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








112
Efectul comenzii este prezentat n tabelul urmtor :
Tabelul 3.3
Nume si prenume Anul Grupa Media
Popescu Traian I 33311 6.42
Ionescu Traian I 33311 6.63
Croitoru Iolanda I 33311 9.01
Varlan Mihail I 33311 9.32
Mihaescu Marius I 33311 10
Bubu Traian II 33321 5.54
Popescu Georgel II 33321 5.82
Albota Constantin II 33321 7.67
Constantinescu Ionel II 33321 8
Constantinide Elena II 33321 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.









113

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








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








115


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 :








116


Fig. 3.41

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









117


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 :








118


Fig. 3.43








119


Fig. 3.44

rezultnd :


Fig. 3.45








120
Pentru a afla, spre exemplu, ci studeni n proporie de 20%, au
media cea mai mare, se fac seleciile :


Fig. 3.46

rezultnd:








121


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








122


Fig. 3.49

rezultnd :








123


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 propriu-
zis 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.













124



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.













125

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