Sunteți pe pagina 1din 57

Universitatea Constantin Brncui din Trgu-Jiu

Facultatea de Inginerie
Departamentul de Automatic, Energie i Mediu

Programarea
calculatoarelor
Lect.dr. Adrian Runceanu

copyright@www.adrian.runceanu.ro

Cteva precizri
Structura cursului
3 ore curs titular curs: Lector dr. Adrian Runceanu

2 ore laborator titular aplicaii practice: Prep.ing.


Alina Dinca

20.10.2013

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

Cteva precizri
Bibliografia necesar cursului:
1. Adrian Runceanu, Mihaela Runceanu, Noiuni de programare n
limbajul C++, Academica Brncui, Trgu-Jiu, 2012, ISBN 978973-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
20.10.2013

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

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

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

Cteva precizri
Forme de examinare:
Examen final = 60%
Evaluare pe parcursul
semestrului a activitii de
laborator = 30%
Verificare final lucrri de
laborator = 10%

20.10.2013

Procentaje evaluare

30

60

10

Evaluare pe parcursul semestrului


Prezenta curs si laborator
Examen final

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

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
20.10.2013

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

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.

20.10.2013

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

Curs 1
Algoritmi

20.10.2013

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

copyright@www.adrian.runceanu.ro

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
20.10.2013

Curs - Programarea Calculatoarelor

10

copyright@www.adrian.runceanu.ro

1.1. Noiunea de algoritm


1.
2.

3.
4.

5.

Specificarea datelor de intrare const n:


Ce date vor fi primite la intrare
Care este formatul (forma lor de reprezentare) datelor
de intrare
Care sunt valorile permise sau nepermise pentru
datele de intrare
Exist unele restricii (altele dect la 3) privind valorile
de intrare
Cte valori vor fi la intrare, sau dac nu se poate
specifica un numr fix de valori, cum se va ti cnd sau terminat de introdus datele de intrare

20.10.2013

Curs - Programarea Calculatoarelor

11

copyright@www.adrian.runceanu.ro

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

Curs - Programarea Calculatoarelor

12

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

13

copyright@www.adrian.runceanu.ro

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:

aX2+bX+c=0,
coeficienii a, b, c se schimb dar
modul de procesare a valorilor lor, nu
20.10.2013

Curs - Programarea Calculatoarelor

14

copyright@www.adrian.runceanu.ro

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

Curs - Programarea Calculatoarelor

15

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

16

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

17

copyright@www.adrian.runceanu.ro

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

Curs - Programarea Calculatoarelor

18

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm


Start
Stop

Bloc citire variabile

Bloc de atribuire

Bloc scriere variabile

Nu

conditie

Da

Figura 1. Reprezentarea algoritmilor prin metoda schemei logice


20.10.2013

Curs - Programarea Calculatoarelor

19

copyright@www.adrian.runceanu.ro

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.

Start

Citire nota1, nota2, nota3

media <-(nota1+nota2+nota3)/3

Scriere media

Stop

20.10.2013

Curs - Programarea Calculatoarelor

20

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

21

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm


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).
Comenzilor standard ale pseudocod-ului le
corespund instruciuni din limbajele de
programare, fapt care uureaz implementarea
algoritmului n limbaj.
20.10.2013

Curs - Programarea Calculatoarelor

22

1.2. Reprezentarea unui algoritm


Comenzile standard de baz ale pseudocodului sunt:
1) Comanda de atribuire
variabil expresie
- are forma:
- este comanda care nu conine cuvinte cheie i
corespunde unei operaii de atribuire

20.10.2013

Curs - Programarea Calculatoarelor

23

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm


2) Comanda de citire
- are forma:
citete list de variabile
- este comanda care corespunde unei operaii de
citire
3) Comanda de scriere
scrie list de expresii
- are forma:
- este comanda care corespunde unei operaii de
scriere
20.10.2013

Curs - Programarea Calculatoarelor

24

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm

4) Structura de decizie
- are dou forme
corespunztoare celor
dou
forme
ale
structurii alternative
(structurii de decizie):

dac condiie atunci


instructiune1

instructiunen

altfel
instructiune1

instructiunen

sfrit dac
20.10.2013

Curs - Programarea Calculatoarelor

25

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm

dac condiie atunci

A doua form a
structurii
de
decizie:

20.10.2013

instructiune1

instructiunen

sfrit dac

Curs - Programarea Calculatoarelor

26

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm

5) Structura ct timp
- are forma:

ct timp condiie execut


instructiune1

instructiunen

- corespunde ciclului
sfrit ct timp
repetitiv cu test iniial

20.10.2013

Curs - Programarea Calculatoarelor

27

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm


6) Structura
repet pn cnd
- are forma:

- corespunde ciclului
repetitiv cu test final
20.10.2013

repet
instructiune1

instructiunen

pn cnd condiie

Curs - Programarea Calculatoarelor

28

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm


7) Structura pentru
- are forma:
pentru variabila<-valoare initiala, valoare finala executa
instructiune1

instructiunen

sfrit pentru

- corespunde ciclului repetitiv cu numar cunoscut


de pasi
20.10.2013

Curs - Programarea Calculatoarelor

29

copyright@www.adrian.runceanu.ro

1.2. Reprezentarea unui algoritm

8) Structura de oprire a algoritmului


- are forma:

20.10.2013

stop

Curs - Programarea Calculatoarelor

30

copyright@www.adrian.runceanu.ro

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.

20.10.2013

Curs - Programarea Calculatoarelor

31

1.2. Reprezentarea unui algoritm


Start

real nota1, nota2, nota3, media


citete nota1, nota2, nota3
media (nota1+nota2+nota3)/3
scrie media
stop

Citire nota1, nota2, nota3

media <-(nota1+nota2+nota3)/3

Se observ c este mult


mai uor s se redacteze un
algoritm cu ajutorul
pseudocod-ului, dect cu
ajutorul schemelor logice.

Scriere media

Stop
20.10.2013

Curs - Programarea Calculatoarelor

32

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

33

copyright@www.adrian.runceanu.ro

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.

20.10.2013

Curs - Programarea Calculatoarelor

34

copyright@www.adrian.runceanu.ro

1.3. Conceptia unui algoritm

ALGORITM

Date de
ieire

Date de
intrare

20.10.2013

Curs - Programarea Calculatoarelor

35

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

36

copyright@www.adrian.runceanu.ro

1.4. Obiectele cu care lucreaz algoritmii


Obiectele cu care lucreaz algoritmii sunt:

a)
b)
c)
d)

Constante
Variabile
Operaii
Expresii

20.10.2013

Curs - Programarea Calculatoarelor

37

copyright@www.adrian.runceanu.ro

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
20.10.2013

Curs - Programarea Calculatoarelor

38

copyright@www.adrian.runceanu.ro

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

Operatori relaionali

Operatori logici
20.10.2013

Curs - Programarea Calculatoarelor

Operator

Semnificaie

Adunare

Scdere

nmulire

mprire

<

Mai mic

<=

Mai mic sau egal

>

Mai mare

>=

Mai mare sau egal

Egal

<>

Diferit

not

Negaie

si

i (conjuncie)

sau

Sau (disjuncie)
40

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

41

copyright@www.adrian.runceanu.ro

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.

20.10.2013

Curs - Programarea Calculatoarelor

42

copyright@www.adrian.runceanu.ro

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: b2 > 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)
20.10.2013

Curs - Programarea Calculatoarelor

43

copyright@www.adrian.runceanu.ro

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.

20.10.2013

Curs - Programarea Calculatoarelor

44

copyright@www.adrian.runceanu.ro

1.4. Obiectele cu care lucreaz algoritmii

Condiiile care apar n algoritmi vor fi


ntotdeauna exprimate prin expresii
relaionale sau logice.

20.10.2013

Curs - Programarea Calculatoarelor

45

copyright@www.adrian.runceanu.ro

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

20.10.2013

Curs - Programarea Calculatoarelor

46

copyright@www.adrian.runceanu.ro

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

p( p a)( p b)( p c)

unde p reprezint semiperimetrul triunghiului.


20.10.2013

Curs - Programarea Calculatoarelor

48

1.5. Exemple de algoritmi elementari

Pas 3:
Scrierea
algoritmului n
pseudocod:

real a, b, c, p, S
citete a, b, c
p a+b+c
scrie Perimetrul triunghiului este , p
p p/2
S p(p a)(p b)(p c)

scrie Aria triunghiului este, S


stop
20.10.2013

Curs - Programarea Calculatoarelor

49

copyright@www.adrian.runceanu.ro

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

Curs - Programarea Calculatoarelor

50

copyright@www.adrian.runceanu.ro

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
20.10.2013

Curs - Programarea Calculatoarelor

51

copyright@www.adrian.runceanu.ro

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

x = -b/a

Curs - Programarea Calculatoarelor

52

1.5. Exemple de algoritmi elementari


Pas 3:
Scrierea
algoritmului n
pseudocod:

20.10.2013

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

Curs - Programarea Calculatoarelor

53

copyright@www.adrian.runceanu.ro

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

Curs - Programarea Calculatoarelor

54

copyright@www.adrian.runceanu.ro

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?

20.10.2013

Curs - Programarea Calculatoarelor

55

copyright@www.adrian.runceanu.ro

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.

20.10.2013

Curs - Programarea Calculatoarelor

56

copyright@www.adrian.runceanu.ro

ntrebri?

20.10.2013

Curs - Programarea Calculatoarelor

57