Sunteți pe pagina 1din 56

Universitatea Constatin Brncui Trgu-Jiu Facultatea de Inginerie Departamentul de Automatic, Energie i Mediu

Programarea calculatoarelor
Lect.dr. Adrian Runceanu

Cteva precizri
Structura cursului
3 ore curs titular curs: Lector dr. Adrian Runceanu 3 ore laborator titular aplicaii practice: Asist.ing. Alina Dinca: Ingineria Sistemelor & Ingineria si Protectia Mediului in Industrie

21.10.2011

Curs - Programarea Calculatoarelor

Cteva precizri
Bibliografia necesar cursului:

1. A.Runceanu, Programarea i utilizarea calculatoarelor, Editura Academic Brncui Targu-Jiu, 2003 2. O.Dogaru, C++ - teorie i practic, volumul I, Editura Mirton, Timioara, 2004 3. O.Catrina, I.Cojocaru, Turbo C+, Editura Teora, Bucureti, 1993 4. D.Costea, Iniiere n limbajul C, Editura Teora, Bucureti, 1996 5. K.Jamsa, C++, Editura Teora,1999 6. K.Jamsa & L.Klander, Totul despre C si C++, Teora, 2004 7. B.Kernighan, D.Ritchie, The C programming language, AT&T Bell Laboratories, Murray Hill, New Jersey 8. H.Schildt, C++ manual complet, Editura Teora, 2000
21.10.2011 Curs - Programarea Calculatoarelor 3

Cteva precizri
Referinele bibliografice nr. 1 i 2 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 Facultii de Inginerie:

www.utgjiu.ro/ing
2. ndrumar de laborator - varianta electronic disponibil pe site pentru fiecare lucrare de laborator. Not: Actualizarea site-ului se face sptmnal.
21.10.2011 Curs - Programarea Calculatoarelor 4

Cteva precizri
Forme de examinare: Examen final 60% Lucrrile practice de laborator susinute pe parcursul semestrului 10% Verificare final lucrri de laborator 30%

21.10.2011

Curs - Programarea Calculatoarelor

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
21.10.2011 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.
21.10.2011 Curs - Programarea Calculatoarelor 7

Curs 1 Algoritmi

21.10.2011

Curs - Programarea Calculatoarelor

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
21.10.2011 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 Definirea i analiza problemei poate fi la rndul ei descompus n:
specificarea datelor de intrare specificarea datelor de ieire
21.10.2011 Curs - Programarea Calculatoarelor 10

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) a 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
Curs - Programarea Calculatoarelor 11

21.10.2011

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

21.10.2011

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: aX2+bX+c=0, coeficienii a, b, c se schimb dar modul de procesare a valorilor lor, nu.
21.10.2011 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.
21.10.2011 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
21.10.2011 Curs - Programarea Calculatoarelor 16

1.2. Reprezentarea unui algoritm


n general, un algoritm poate fi considerat ca o descriere a prelucrrii efectuate asupra unui flux de date, prelucrare care are loc cu un scop bine determinat. Modul de descriere a unui algoritm, este independent de un limbaj de programare, existnd dou metode clasice:

metoda schemei logice metoda pseudocod-ului


21.10.2011 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.
21.10.2011 Curs - Programarea Calculatoarelor 18

1.2. Reprezentarea unui algoritm


Start Stop

Bloc citire variabile

Bloc scriere variabile

Bloc de atribuire

Nu conditie

Da

Figura 1. Reprezentarea algoritmilor prin metoda schemei logice

21.10.2011

Curs - Programarea Calculatoarelor

19

1.2. Reprezentarea unui algoritm


Start

S analizm un algoritm de calcul a mediei pentru trei note i s vedem cum ar aprea descris prin aceast metod.

Citire nota1, nota2, nota3

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

Scriere media

Stop

21.10.2011

Curs - Programarea Calculatoarelor

20

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

21.10.2011

Curs - Programarea Calculatoarelor

22

1.2. Reprezentarea unui algoritm


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

21.10.2011

Curs - Programarea Calculatoarelor

23

1.2. Reprezentarea unui algoritm


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

21.10.2011

Curs - Programarea Calculatoarelor

24

1.2. Reprezentarea unui algoritm


dac condiie atunci

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

instructiune1 . instructiunen

altfel
instructiune1 . instructiunen

sfrit dac
21.10.2011 Curs - Programarea Calculatoarelor

25

1.2. Reprezentarea unui algoritm

dac condiie atunci

A doua form a structurii de decizie:

instructiune1 . instructiunen

sfrit dac

21.10.2011

Curs - Programarea Calculatoarelor

26

1.2. Reprezentarea unui algoritm

5) Structura ct timp - are forma:

ct timp condiie execut


instructiune1 . instructiune n

- corespunde ciclului repetitiv cu test iniial


21.10.2011

sfrit ct timp

Curs - Programarea Calculatoarelor

27

1.2. Reprezentarea unui algoritm


6) Structura repet pn cnd - are forma:

repet
instructiune1 . instructiunen

pn cnd condiie

- corespunde ciclului repetitiv cu test final


21.10.2011 Curs - Programarea Calculatoarelor 28

1.2. Reprezentarea unui algoritm


7) Structura pentru - are forma: - corespunde ciclului repetitiv cu numar cunoscut de pasi pentru variabila<-valoare initiala, valoare finala executa
instructiune1 instructiunen

sfrit pentru

21.10.2011

Curs - Programarea Calculatoarelor

29

1.2. Reprezentarea unui algoritm

8) Structura de oprire a algoritmului - are forma:


stop

21.10.2011

Curs - Programarea Calculatoarelor

30

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.

21.10.2011

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
Se observ c este mult mai uor s se redacteze un algoritm cu ajutorul pseudocod-ului, dect cu ajutorul schemelor logice.

Citire nota1, nota2, nota3

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

Scriere media

Stop
21.10.2011 Curs - Programarea Calculatoarelor 32

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
21.10.2011 Curs - Programarea Calculatoarelor 33

1.3. Conceptia unui algoritm


Pentru a crea un algoritm, mai nti trebuie citit cu atenie problema care va fi rezolvat. 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.

21.10.2011

Curs - Programarea Calculatoarelor

34

1.3. Conceptia unui algoritm

ALGORITM
Date de intrare Date de ieire

21.10.2011

Curs - Programarea Calculatoarelor

35

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
21.10.2011 Curs - Programarea Calculatoarelor 36

1.4. Obiectele cu care lucreaz algoritmii


Obiectele cu care lucreaz algoritmii sunt: a) b) c) d) Constante Variabile Operaii Expresii

21.10.2011

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

21.10.2011

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.
21.10.2011 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
Operator
+

Semnificaie
Adunare Scdere nmulire mprire Mai mic Mai mic sau egal Mai mare Mai mare sau egal Egal Diferit Negaie i (conjuncie) Sau (disjuncie)

Operatori aritmetici

* / < <=

Operatori relaionali

> >= = <> not

Operatori logici

si sau

21.10.2011

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

21.10.2011

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.

21.10.2011

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

21.10.2011

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.

21.10.2011

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
21.10.2011 Curs - Programarea Calculatoarelor 46

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, adic cele care vor fi prelucrate cu ajutorul algoritmului. n cazul problemei date, avem: Date de intrare: a, b numere reale
21.10.2011 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. 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:
21.10.2011

x = -b/a

Curs - Programarea Calculatoarelor

48

1.5. Exemple de algoritmi elementari


Pas 3: Scrierea algoritmului n pseudocod:
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 49

21.10.2011

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++.
21.10.2011 Curs - Programarea Calculatoarelor 50

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, 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.
21.10.2011 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. n cadrul problemei pe care o avem de rezolvat, cunoatem formula lui Heron pentru calculul ariei unui triunghi dac se cunosc laturile sale:

S
21.10.2011

p( p a)( p b)( p c)
Curs - Programarea Calculatoarelor 52

unde p reprezint semiperimetrul triunghiului.

1.5. Exemple de algoritmi elementari


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

Pas 3: Scrierea algoritmului n pseudocod:

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


Scrie Aria triunghiului este, S stop

21.10.2011

Curs - Programarea Calculatoarelor

53

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?

21.10.2011

Curs - Programarea Calculatoarelor

54

Enunuri de probleme ce pot fi rezolvate

1. S se calculeze perimetrul i aria unui dreptunghi, tiind laturile sale. 2. S se calculeze soluiile reale ale ecuaiei de gradul II: ax2 + bx + c = 0, tiind valorile coeficienilor si a, b, c.

21.10.2011

Curs - Programarea Calculatoarelor

55

ntrebri?

21.10.2011

Curs - Programarea Calculatoarelor

56

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