Sunteți pe pagina 1din 57

Programarea

calculatoarelor
Universitatea Constantin Brncui din Trgu-Jiu
Facultatea de Inginerie
Departamentul de Automatic, Energie i Mediu
Lect.dr. Adrian Runceanu
Cteva precizri
Structura cursului

3 ore curs titular curs: Lector dr. Adrian Runceanu

2 ore laborator titular aplicaii practice:
Asist.ing. Constantin Cercel
Prep.ing. Alina Dinca
03.03.2013 Curs - Programarea Calculatoarelor 2
Cteva precizri
Bibliografia necesar cursului:

1. Adrian Runceanu, Mihaela Runceanu, Noiuni de programare n
limbajul C++, Academica Brncui, Trgu-Jiu, 2012, ISBN 978-
973-144-550-2, 483 pagini
2. Adrian Runceanu, Programarea i utilizarea calculatoarelor,
Editura Academic Brncui Targu-Jiu, 2003
3. Octavian Dogaru, C++ - Teorie i practic, volumul I, Editura
Mirton, Timioara, 2004
4. O.Catrina, I.Cojocaru, Turbo C+, Editura Teora, Bucureti, 1993
5. D.Costea, Iniiere n limbajul C, Editura Teora, Bucureti, 1996
6. K.Jamsa, C++, Editura Teora,1999
7. K.Jamsa & L.Klander, Totul despre C si C++, Teora, 2004
03.03.2013 Curs - Programarea Calculatoarelor 3
Cteva precizri
Referinele bibliografice nr. 1, 2 i 3 se pot
mprumuta de la Biblioteca Facultii de Inginerie, Str.
Geneva nr.3, Etaj I lng Decanat.

1. Suport curs - varianta electronic disponibil pe site-ul:
www.runceanu.ro/adrian

2. ndrumar de laborator - varianta electronic disponibil
pe site pentru fiecare lucrare de laborator.

Not: Actualizarea site-ului se face sptmnal.
03.03.2013 Curs - Programarea Calculatoarelor 4
Cteva precizri
Forme de examinare:

Examen final = 60%
Evaluare pe parcursul
semestrului a activitii de
laborator = 30%
Verificare final lucrri de
laborator = 10%
03.03.2013 Curs - Programarea Calculatoarelor 5
30
10
60
Procentaje evaluare
Evaluare pe parcursul semestrului
Prezenta curs si laborator
Examen final
Mod de lucru
Curs:
Se prezint noiuni teoretice i exemple de
aplicare practic a acestora
Nu ezitai s punei ntrebri
Laborator:
Se elaboreaz i se depaneaz programe relativ
simple sau se dezvolt programe preexistente
Se aplic ceea ce s-a predat la curs
03.03.2013 Curs - Programarea Calculatoarelor 6
Cteva recomandri
Citii cu maxim atenie enunurile temelor i
respectai-le n totalitate.
Analizai n detaliu problema de rezolvat.
Identificai i tratai adecvat toate cazurile
speciale care pot s apar.
Notai-v toate ntrebrile la care nu ai gsit
singuri rspunsul i adresai-le cadrelor didactice,
la curs sau laborator.
03.03.2013 Curs - Programarea Calculatoarelor 7

Curs 1
Algoritmi
03.03.2013 Curs - Programarea Calculatoarelor 8
1. ALGORITMI
1.1. Noiunea de algoritm
1.2. Reprezentarea unui algoritm
1.3. Concepia unui algoritm
1.4. Obiectele cu care lucreaz algoritmii
1.5. Exemple de algoritmi elementari
03.03.2013 Curs - Programarea Calculatoarelor 9
1.1. Noiunea de algoritm
n procesul de rezolvare a unei probleme folosind
calculatorul exist dou etape:
1. Definirea i analiza problemei
2. Proiectarea i implementarea unui algoritm care
rezolv problema
1. Definirea i analiza problemei poate fi la rndul ei
descompus n:
specificarea datelor de intrare
specificarea datelor de ieire
03.03.2013 Curs - Programarea Calculatoarelor 10
1.1. Noiunea de algoritm
Specificarea datelor de intrare const n:
1. Ce date vor fi primite la intrare
2. Care este formatul (forma lor de reprezentare) datelor
de intrare
3. Care sunt valorile permise sau nepermise pentru
datele de intrare
4. Exist unele restricii (altele dect la 3) privind valorile
de intrare
5. Cte valori vor fi la intrare, sau dac nu se poate
specifica un numr fix de valori, cum se va ti cnd s-
au terminat de introdus datele de intrare
03.03.2013 Curs - Programarea Calculatoarelor 11
1.1. Noiunea de algoritm
Specificarea datelor de ieire trebuie s in cont de
urmtoarele aspecte:
1. Care din valorile rezultate n cursul aplicrii algoritmului
de calcul, asupra datelor de intrare, vor fi afiate
(necesare utilizatorului), n acest pas se face
diferenierea clar ntre date intermediare i date de
ieire
2. Care va fi formatul datelor de ieire (de exemplu un
numr real poate fi afiat cu trei sau cu cinci zecimale,
sau un text poate fi afiat integral sau parial)
03.03.2013 Curs - Programarea Calculatoarelor 12
1.1. Noiunea de algoritm
3. Sunt sau nu necesare explicaii suplimentare
pentru utilizator n afara datelor de ieire

4. Care este numrul de date de ieire care trebuie
transmise ctre ieire
03.03.2013 Curs - Programarea Calculatoarelor 13
1.1. Noiunea de algoritm
O definiie a noiunii de algoritm poate fi:
nlnuirea de pai simpli, operaii distincte care
descriu modul de prelucrare a unor date de intrare
n scopul rezolvrii unei probleme.
Un exemplu simplu de algoritm ar fi suita de
operaii matematice fcut n rezolvarea unei ecuaii
matematice de gradul II:
aX
2
+bX+c=0, coeficienii a, b, c se schimb dar
modul de procesare a valorilor lor, nu.
03.03.2013 Curs - Programarea Calculatoarelor 14
1.1. Noiunea de algoritm
Proprietile unui algoritm sunt:
1. Este compus din instruciuni simple i clare.
2. Operaiunile specificate de instruciuni se execut
ntr-o anumit secven.
3. Soluia trebuie obinut ntr-un numr finit de pai.
Concluzia care rezult este c:
UN ALGORITM ESTE INDEPENDENT DE
TIPUL DE LIMBAJ N CARE ESTE TRANSPUS
SAU DE TIPUL DE CALCULATOR PE CARE ESTE
EXECUTAT.
03.03.2013 Curs - Programarea Calculatoarelor 15
1. ALGORITMI
1.1. Noiunea de algoritm
1.2. Reprezentarea unui algoritm
1.3. Concepia unui algoritm
1.4. Obiectele cu care lucreaz algoritmii
1.5. Exemple de algoritmi elementari
03.03.2013 Curs - Programarea Calculatoarelor 16
1.2. Reprezentarea unui algoritm
n general, un algoritm poate fi considerat ca o
descriere a prelucrrilor efectuate asupra unui flux de
date, prelucrri care au loc cu un scop bine
determinat.
Modul de descriere a unui algoritm, este
independent de un limbaj de programare, existnd
dou metode clasice:
1. metoda schemei logice
2. metoda pseudocod-ului
03.03.2013 Curs - Programarea Calculatoarelor 17
1.2. Reprezentarea unui algoritm
1. Metoda schemei logice
n cadrul acestei metode se folosete un set de
simboluri, prezentat n figura 1, pentru descrierea
pailor ce trebuie executai pentru ca algoritmul
rezultat s ne rezolve o anumit problem.
Dei a fost extrem de folosit, pn nu de mult,
aceast metod a pierdut teren n faa reprezentrii
de tip pseudocod, poate i datorit timpului
suplimentar pierdut de utilizator cu executarea
simbolurilor grafice.
03.03.2013 Curs - Programarea Calculatoarelor 18
1.2. Reprezentarea unui algoritm
03.03.2013 Curs - Programarea Calculatoarelor 19
Start
Bloc de atribuire
Bloc citire variabile
conditie
Stop
Bloc scriere variabile
Nu Da
Figura 1. Reprezentarea algoritmilor prin metoda schemei logice
1.2. Reprezentarea unui algoritm
S analizm un
algoritm de calcul a
mediei pentru trei note
i s vedem cum ar
aprea descris prin
aceast metod.
03.03.2013 Curs - Programarea Calculatoarelor 20
Start
Citire nota1, nota2, nota3
media <-(nota1+nota2+nota3)/3
Scriere media
Stop
1.2. Reprezentarea unui algoritm
2. Metoda pseudocod-ului
Exist mai multe variante de limbaje
algoritmice, care ns nu difer esenial.
Am ales forma n care cuvintele cheie sunt n
limba romn i operatorii sunt cei uzuali din
matematic.
Pseudocod-ul are n componen mai multe
comenzi standard care ncep, n general cu un
cuvnt cheie care definete operaia de baz din
algoritm i care va fi evideniat prin utilizarea
aldinelor (cuvintelor ngroate).
03.03.2013 Curs - Programarea Calculatoarelor 21
1.2. Reprezentarea unui algoritm
Comenzilor standard ale pseudocod-ului le
corespund instruciuni din limbajele de
programare, fapt care uureaz implementarea
algoritmului n limbaj.
03.03.2013 Curs - Programarea Calculatoarelor 22
1.2. Reprezentarea unui algoritm
Comenzile standard de baz ale pseudocod-ului
sunt:
1) Comanda de atribuire

- are forma:
- este comanda care nu conine cuvinte cheie i
corespunde unei operaii de atribuire
03.03.2013 Curs - Programarea Calculatoarelor 23
variabil

expresie
1.2. Reprezentarea unui algoritm
2) Comanda de citire
- are forma:
- este comanda care corespunde unei operaii de citire

3) Comanda de scriere
- are forma:
- este comanda care corespunde unei operaii de scriere
03.03.2013 Curs - Programarea Calculatoarelor 24
citete list de variabile
scrie list de expresii
1.2. Reprezentarea unui algoritm
4) Structura de decizie
- are dou forme
corespunztoare celor
dou forme ale
structurii alternative
(structurii de decizie):
03.03.2013 Curs - Programarea Calculatoarelor 25
dac condiie atunci
instructiune
1


instructiune
n

altfel
instructiune
1


instructiune
n

sfrit dac
1.2. Reprezentarea unui algoritm
A doua form a
structurii de
decizie:
03.03.2013 Curs - Programarea Calculatoarelor 26
dac condiie atunci
instructiune
1


instructiune
n

sfrit dac
1.2. Reprezentarea unui algoritm
5) Structura ct timp
- are forma:


- corespunde ciclului
repetitiv cu test iniial
03.03.2013 Curs - Programarea Calculatoarelor 27
ct timp condiie execut
instructiune
1


instructiune
n

sfrit ct timp
1.2. Reprezentarea unui algoritm
6) Structura
repet pn cnd
- are forma:


- corespunde ciclului
repetitiv cu test final
03.03.2013 Curs - Programarea Calculatoarelor 28
repet
instructiune
1


instructiune
n

pn cnd condiie
1.2. Reprezentarea unui algoritm
7) Structura pentru
- are forma:






- corespunde ciclului repetitiv cu numar cunoscut
de pasi
03.03.2013 Curs - Programarea Calculatoarelor 29
pentru variabila<-valoare initiala, valoare finala executa
instructiune
1


instructiune
n
sfrit pentru
1.2. Reprezentarea unui algoritm
8) Structura de oprire a algoritmului

- are forma:
03.03.2013 Curs - Programarea Calculatoarelor 30
stop
1.2. Reprezentarea unui algoritm

Relum exemplul cu media a trei note pe
care l vom scrie att cu ajutorul schemelor
logice, ct i cu ajutorul pseudocod-ului.
03.03.2013 Curs - Programarea Calculatoarelor 31
1.2. Reprezentarea unui algoritm
real nota1, nota2, nota3, media
citete nota1, nota2, nota3
media (nota1+nota2+nota3)/3
scrie media
stop

03.03.2013 Curs - Programarea Calculatoarelor 32


Start
Citire nota1, nota2, nota3
media <-(nota1+nota2+nota3)/3
Scriere media
Stop
Se observ c este mult
mai uor s se redacteze un
algoritm cu ajutorul
pseudocod-ului, dect cu
ajutorul schemelor logice.
1. ALGORITMI
1.1. Noiunea de algoritm
1.2. Reprezentarea unui algoritm
1.3. Concepia unui algoritm
1.4. Obiectele cu care lucreaz algoritmii
1.5. Exemple de algoritmi elementari
03.03.2013 Curs - Programarea Calculatoarelor 33
1.3. Conceptia unui algoritm
Pai necesari:
1. Problema care va fi rezolvat, trebuie citit cu
atenie.
2. Apoi se stabilesc prelucrrile care sunt necesare
obinerii rezultatelor dorite.
Pentru a crea un algoritm eficient trebuie
evideniate datele de intrare i datele de ieire.
03.03.2013 Curs - Programarea Calculatoarelor 34
1.3. Conceptia unui algoritm
03.03.2013 Curs - Programarea Calculatoarelor 35
Date de
intrare
Date de
ieire
ALGORITM
1. ALGORITMI
1.1. Noiunea de algoritm
1.2. Reprezentarea unui algoritm
1.3. Concepia unui algoritm
1.4. Obiectele cu care lucreaz algoritmii
1.5. Exemple de algoritmi elementari
03.03.2013 Curs - Programarea Calculatoarelor 36
1.4. Obiectele cu care lucreaz algoritmii
Obiectele cu care lucreaz algoritmii sunt:

a) Constante
b) Variabile
c) Operaii
d) Expresii
03.03.2013 Curs - Programarea Calculatoarelor 37
1.4. Obiectele cu care lucreaz algoritmii
a) Constantele sunt date de un anumit tip care nu
se modific pe parcursul execuiei unui algoritm.
Pot fi:
1. Constante numerice, adic numere ntregi sau
reale
2. Constante nenumerice, adic iruri de
caractere cuprinse ntre apostrofuri
3. Constante logice, adevrat i fals
03.03.2013 Curs - Programarea Calculatoarelor 38
1.4. Obiectele cu care lucreaz algoritmii
b) Variabilele sunt date ale cror valori se modific
pe parcursul execuiei unui algoritm.
Ele se utilizeaz pentru a pstra datele
iniiale, sau pentru a pstra rezultatele pariale
sau finale ale algoritmului.
Fiecare variabil va avea o locaie de
memorie asociat ei, unde i se pstreaz
valoarea.
Variabilele pot: naturale, ntregi, reale, logice
sau iruri de caractere.
03.03.2013 Curs - Programarea Calculatoarelor 39
1.4. Obiectele cu care lucreaz
algoritmii
c) Operatorii sunt cei
folosii uzuali n
matematic:
1. Operatori aritmetici
2. Operatori relaionali
3. Operatori logici



Operatori aritmetici
Operator Semnificaie
+
Adunare
-
Scdere
*
nmulire
/
mprire


Operatori relaionali
<
Mai mic
<=
Mai mic sau egal
>
Mai mare
>=
Mai mare sau egal
=
Egal
<>
Diferit

Operatori logici
not
Negaie
si
i (conjuncie)
sau
Sau (disjuncie)
03.03.2013 Curs - Programarea Calculatoarelor 40
1.4. Obiectele cu care lucreaz algoritmii
d) Expresiile sunt formate din constante i variabile
legate ntre ele cu ajutorul operatorilor.
Pot fi de mai multe tipuri, n funcie de tipul
operatorilor si a operanzilor:
1. Expresii aritmetice
2. Expresii relaionale
3. Expresii logice
03.03.2013 Curs - Programarea Calculatoarelor 41
1.4. Obiectele cu care lucreaz algoritmii

O expresie aritmetic este o expresie care
cuprinde:
1. constante
2. variabile
3. sau funcii aritmetice elementare legate,
eventual, prin operatori aritmetici.

03.03.2013 Curs - Programarea Calculatoarelor 42
1.4. Obiectele cu care lucreaz algoritmii
O expresie relaional poate fi format din:
Dou expresii aritmetice legate printr-un singur
operator relaional (de exemplu: b
2
> 4*a*c)
Dou variabile nenumerice legate printr-un
operator relaional (de exemplu:
nume1<>nume2)
O variabil i o constant nenumerice legate
printr-un operator relaional (de exemplu:
raspuns=da)
03.03.2013 Curs - Programarea Calculatoarelor 43
1.4. Obiectele cu care lucreaz algoritmii

O expresie logic cuprinde:
1. constante
2. variabile
3. sau expresii relaionale legate prin operatori
logici a crei valoare este fie adevrat, fie fals.
03.03.2013 Curs - Programarea Calculatoarelor 44
1.4. Obiectele cu care lucreaz algoritmii
Condiiile care apar n algoritmi vor fi
ntotdeauna exprimate prin expresii
relaionale sau logice.
03.03.2013 Curs - Programarea Calculatoarelor 45
1. ALGORITMI
1.1. Noiunea de algoritm
1.2. Reprezentarea unui algoritm
1.3. Concepia unui algoritm
1.4. Obiectele cu care lucreaz algoritmii
1.5. Exemple de algoritmi elementari
03.03.2013 Curs - Programarea Calculatoarelor 46
1.5. Exemple de algoritmi elementari
Enun:
S se calculeze perimetrul i aria unui triunghi oarecare
dac se cunosc laturile triunghiului.
Pas 1: Stabilim care sunt datele de intrare si datele de
iesire, adic cele care vor fi prelucrate cu ajutorul
algoritmului.
n cazul problemei date, avem:
Date de intrare: a, b, i c numere reale ce reprezint
laturile triunghiului.
Date de iesire: p = perimetrul si s = aria triunghiului
03.03.2013 Curs - Programarea Calculatoarelor 47
1.5. Exemple de algoritmi elementari
Pas 2: Analiza problemei
Stabilim condiiile pe care trebuie s le
ndeplineasc datele de intrare pentru a fi
prelucrate n cadrul algoritmului.
n cadrul problemei pe care o avem de rezolvat,
cunoatem formula lui Heron pentru calculul ariei
unui triunghi dac se cunosc laturile sale:


unde p reprezint semiperimetrul triunghiului.
03.03.2013 Curs - Programarea Calculatoarelor 48
) )( )( ( c p b p a p p S
1.5. Exemple de algoritmi elementari
Pas 3:
Scrierea
algoritmului n
pseudocod:

03.03.2013 Curs - Programarea Calculatoarelor 49


real a, b, c, p, S
citete a, b, c
p a + b + c
Scrie Perimetrul triunghiului este , p
p p / 2

scrie Aria triunghiului este, S
stop
c) b)(p a)(p p(p S
1.5. Exemple de algoritmi elementari
Pas 4: Implementarea algoritmului n limbajul de
programare dorit - n cazul nostru vom utiliza
limbajul C++.
Pas 5: Testarea algoritmului pe date de intrare
diferite i verificarea rezultatelor.
Ultimii doi pai i vom scrie dup
prezentarea limbajului C++.
03.03.2013 Curs - Programarea Calculatoarelor 50
1.5. Exemple de algoritmi elementari
Enun:
Considerm ecuaia de gradul I de forma:
ax + b = 0, unde a i b sunt numere reale.
S se scrie un algoritm care s rezolve ecuaia dat pentru
orice dou valori a i b date.
Pas 1: Stabilim care sunt datele de intrare si de iesire, adic
cele care vor fi prelucrate cu ajutorul algoritmului.
n cazul problemei date, avem:
Date de intrare: a, b - numere reale
Date de iesire: x - solutia ecuatiei
03.03.2013 Curs - Programarea Calculatoarelor 51
1.5. Exemple de algoritmi elementari
Pas 2: Analiza problemei
Stabilim condiiile pe care trebuie s le ndeplineasc
datele de intrare pentru a fi prelucrate n cadrul algoritmului.
Cutm cazurile particulare.
n cadrul problemei pe care o avem de rezolvat,
cunoatem urmtoarele:
Ecuaia ax+b=0, are solutii reale daca a si b sunt diferite de 0.
Cazurile particulare sunt:
1) Daca a = 0, atunci ecuatia data are o infinitate de solutii.
2) Daca a = 0 si b = 0, atunci ecuatia este nedeterminata
3) Daca a 0 si b 0, atunci ecuatia are o singura solutie si
anume:
x = -b/a
03.03.2013 Curs - Programarea Calculatoarelor 52
1.5. Exemple de algoritmi elementari
Pas 3:
Scrierea
algoritmului n
pseudocod:

03.03.2013 Curs - Programarea Calculatoarelor 53


real a, b, x
citete a, b
dac a = 0 atunci
scrie Ecuaia are o infinitate de soluii
altfel
dac b = 0 atunci
scrie Ecuaia este nedeterminat
altfel
x - b / a
scrie x
sfrit dac
sfarit dac
stop
1.5. Exemple de algoritmi elementari
Pas 4: Implementarea algoritmului n limbajul de
programare dorit - n cazul nostru vom utiliza
limbajul C++.
Pas 5: Testarea algoritmului pe date de intrare
diferite i verificarea rezultatelor.
Ultimii doi pai i vom scrie dup
prezentarea limbajului C++.
03.03.2013 Curs - Programarea Calculatoarelor 54
Recapitulare
1. Ce este un algoritm?
2. Cum se pot reprezenta algoritmii?
3. Folosind metoda pseudocod-ului de reprezentare a
algoritmilor, cum se reprezint structura de decizie?
4. Folosind metoda pseudocod-ului de reprezentare a
algoritmilor, cum se reprezint structura repetitiv cu
test iniial?
03.03.2013 Curs - Programarea Calculatoarelor 55
Enunuri de probleme ce pot fi rezolvate

1. S se calculeze perimetrul i aria unui
dreptunghi, tiind laturile sale.
2. S se calculeze unghiurile(in radiani) unui
triunghi, tiind laturile sale.
03.03.2013 Curs - Programarea Calculatoarelor 56


ntrebri?
03.03.2013 Curs - Programarea Calculatoarelor 57

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