Sunteți pe pagina 1din 38

Programarea i rezolvarea

problemelor
Programarea calculatoarelor i
limbaje de programare I
Capitolul 1

Introducere
Comportamentul uman i gndirea
sunt caracterizate de secvene logice
Atunci cnd ordonm un proces, l
programm
Acest curs se refer la programarea
unui aparat: calculatorul
Calculatorul este un dispoztiv
programabil care poate pstra, regsi
i procesa date
Programarea calculatoarelor i
limbaje de programare I

Introducere
Un program de calculator descrie paii pe
care trebuie s i execute calculatorul
pentru a rezolva o problem
Un program de calculator este o list de
instruciuni care trebuie urmate de
calculator
Un calculator ne permite s realizm o serie
de aciuni ntr-un mod mult mai rapid i
mai precis dect o putem face fr ajutorul
su
Programarea calculatoarelor i
limbaje de programare I

Cum scriem un program?


Pentru a scrie un program trebuie s
parcurgem dou faze:
rezolvarea problemei
implementarea problemei

Programarea calculatoarelor i
limbaje de programare I

Cum scriem un program?


Rezolvarea problemei
Analiza nseamn nelegerea, definirea
problemei i a soluiei ce trebuie dat
Algoritmul presupune dezvoltarea unei
secvene logice de pai care trebuie urmai
pentru rezolvarea problemei
Verificarea este parcurgerea pailor
algoritmului pe mai multe exemple pentru a
fi siguri c rezolv problema pentru toate
cazurile
Programarea calculatoarelor i
limbaje de programare I

Cum scriem un program?


Implementarea problemei
Programul reprezint translatarea
algoritmului ntr-un limbaj de
programare
Testarea este etapa n care ne
asigurm c instruciunile din
program sunt urmate corect de
calculator

Programarea calculatoarelor i
limbaje de programare I

Cum scriem un program?

Programarea calculatoarelor i
limbaje de programare I

Cum scriem un program?


Algoritmul
Programatorul trebuie s analizeze
problema, s dea soluia i apoi s o
comunice calculatorului
Programatorul ncepe operaia de
programare prin analiza problemei i
dezvoltarea unei soluii generale numit
algoritm
Algoritmul este o procedur care descrie
paii ce trebuie parcuri pentru rezolvarea
unei probleme ntr-un timp finit
Programarea calculatoarelor i
limbaje de programare I

Cum scriem un program?


Algoritmul
Programul este de fapt un algoritm
scris pentru calculator
Un algoritm este o secven logic de
aciuni

Programarea calculatoarelor i
limbaje de programare I

Cum scriem un program?


Algoritmul
Calculul sumei care trebuie pltit
unui salariat ntr-o sptmn
1. Verificarea sumei pltite pe or
2. Determinarea numrului de ore lucrate n timpul
sptmnii
3. Dac numrul de ore este mai mic sau egal cu 40, se
nmulete numrul de ore cu suma pltit pe or
4. Dac numrul de ore depete 40, atunci se scade
40 din numrul de ore lucrate, iar diferena de ore se
nmulete cu 1,5 ori suma pltit pe or
5. Adun sumele de la punctele 3 i 4 i stabilete
suma final.

Programarea calculatoarelor i
limbaje de programare I

10

Ce este un limbaj de programare?


Cnd programatorul este satisfcut de
algoritm, poate s l translateze ntr-un
program scris ntr-un limbaj de programare
Limbajul de programare este un set de
reguli, simboluri i cuvinte speciale folosite
pentru a construi un program
Limbajul C++ este o variant simplificat a
limbii engleze i care are un set strict de
reguli gramaticale. Datorit numrului mic
de cuvinte disponibile, suntei obligai s
scriei instruciuni simple i exacte
Programarea calculatoarelor i
limbaje de programare I

11

Ce este un limbaj de programare?

Programarea calculatoarelor i
limbaje de programare I

12

Ce este un limbaj de programare?


Programatorii scriu instruciuni n diverse
limbaje de programare, unele care sunt
nelese n mod direct de calculator, altele
care necesit mai muli pai de translatare
n prezent exist sute de limbaje de
programare care pot fi mprite n trei
tipuri generale:
1. Limbaje main
2. Limbaje de asamblare
3. Limbaje de nivel nalt
Programarea calculatoarelor i
limbaje de programare I

13

Ce este un limbaj de programare?


Limbajele main
Singurul limbaj de programare pe care
calculatorul l poate executa n mod direct
este un set primitiv de instruciuni numit
limbaj main sau cod main
Acesta este limbajul natural al unui
calculator i este definit de alctuirea
hardware a fiecrui calculator n parte
Limbajele main sunt greu de folosit de
programatori
Programarea calculatoarelor i
limbaje de programare I

14

Ce este un limbaj de programare?


Limbajele main
Urmtoarea seciune de program scris n
limbaj main adun o sum suplimentar
de bani la suma de baz pe care o primete
un angajat, rezultnd suma final
+1300042774
+1400593419
+1200274027

Programarea calculatoarelor i
limbaje de programare I

15

Ce este un limbaj de programare?


Limbajele de asamblare
Folosete abrevieri ale unor cuvinte din
limba englez care reprezint operaii
elementare pentru calculator

LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY

Programarea calculatoarelor i
limbaje de programare I

16

Ce este un limbaj de programare?


Limbajele de nivel nalt
n prezent se folosesc limbaje de nivel nalt,
mult mai uor de folosit dect codul main
i care accelereaz procesul de dezvoltare
software
Un program numit compilator translateaz
un program scris ntr-un limbaj de nivel
nalt n limbaj main
grossPay = basePay + overTimePay
Programarea calculatoarelor i
limbaje de programare I

17

Ce este un limbaj de programare?


Limbajele de nivel nalt
Programul surs este un program
scris ntr-un limbaj de nivel nalt
Programul obiect este versiunea n
limbaj main a programului surs i
se obine n urma compilrii

Programarea calculatoarelor i
limbaje de programare I

18

Ce este un limbaj de programare?


Limbajele de nivel nalt

Programarea calculatoarelor i
limbaje de programare I

19

Scurt istoric al limbajelor C i C++


Limbajul C++ a evoluat din limbajul C
Limbajul C a fost dezvoltat din limbajul B la
Bell Laboratories n 1972 de Dennis Ritchie.
Iniial a fost folosit pentru dezvoltarea
sistemului de operare UNIX, iar astzi
majoritatea sistemelor de operare sunt
scrise n C i C++
Limbajul C++ este o extensie a lui C i a
fost creat la nceputul anilor 1980 de Bjarne
Stroustroup tot la Bell Laboratories
Versiunea actual a fost standardizat n
2003
Programarea calculatoarelor i
limbaje de programare I

20

Hello World!
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello World!";
return 0;
}
Programarea calculatoarelor i
limbaje de programare I

21

Scurt istoric al limbajelor C i C++


Limbajul C++ ofer posibilitatea
programrii orientate pe obiecte
Obiectele sunt componente software
reutilizabile care modeleaz elemente
din lumea real

Programarea calculatoarelor i
limbaje de programare I

22

Biblioteca standard C++


Programele C++ constau din
elemente numite clase i funcii
Colecie de clase i funcii oferite de
biblioteca standard C++
nvarea limbajului C++ nseamn
nvarea limbajului n sine
deprinderea modului n care se pot folosi
clasele i funciile din biblioteca standard
C++
Programarea calculatoarelor i
limbaje de programare I

23

Programarea structurat
O abordare disciplinat n scrierea
programelor care au devenit mai
clare, mai uor de testat, de corectat
i de modificat

Programarea calculatoarelor i
limbaje de programare I

24

Structuri de program
Secvena

Secvena este o serie de declaraii


executate una dup alta.

Programarea calculatoarelor i
limbaje de programare I

25

Structuri de program
Selecia (deciza)

IF condiie THEN declaraie1 ELSE declaraie2


Programarea calculatoarelor i
limbaje de programare I

26

Structuri de program
Bucla (repetiia sau iteraia)

WHILE condiie DO declaraie


Programarea calculatoarelor i
limbaje de programare I

27

Structuri de program
Subprogramul

Subprogramul poate fi o combinaie a


structurilor anterioare

Programarea calculatoarelor i
limbaje de programare I

28

Programarea orientat pe obiecte


Tehnologia obiectelor este o schem de
mpachetare care permite crearea
unitilor software cu o semnificaie proprie
Acestea sunt focalizate pe pri specifice ale
unei aplicaii
Ex.: obiecte pentru date, pentru pli,
pentru facturi, obiecte video, obiecte fiier
Orice substantiv poate fi transpus ntr-un
obiect
Programarea calculatoarelor i
limbaje de programare I

29

Programarea orientat pe obiecte


Limbajele procedurale (de ex.
FORTRAN, Pascal, Basic, C) sunt
focalizate pe aciuni (verbe)
Limbajele obiectuale (de ex. C++,
Java) sunt focalizate pe obiecte
(substantive)

Programarea calculatoarelor i
limbaje de programare I

30

Programarea orientat pe obiecte


Avantaje:
Reutilizarea codului
Programele sunt mult mai uor de
neles, organizat, de ntreinut, de
modificat sau de corectat

Programarea calculatoarelor i
limbaje de programare I

31

Ce este un calculator?
Un calculator (computer) este un dispozitiv
capabil s realizeze calcule i s ia decizii
logice cu viteze foarte mari
Calculatorul proceseaz date sub controlul
unor niruiri de instruciuni numite
programe de calculator.
Aceste programe dirijeaz calculatorul s
realizeze secvene de aciuni care au fost
specificate de programatori
Programarea calculatoarelor i
limbaje de programare I

32

Ce este un calculator?
Un calculator este alctuit din diverse
dispozitive, cum ar fi tastatura,
mouse-ul, discurile, memoria, CDROM-ul sau microprocesorul, toate
acestea fiind numite generic
hardware
Programele de calculator care ruleaz
pe calculator sunt numite software
Programarea calculatoarelor i
limbaje de programare I

33

Organizarea unui calculator


1.

2.

Unitatea de memorare este o colecie de celule care


stocheaz datele. Fiecare astfel de celul are o adres.
Aceste celulue se numesc celule de memorie sau locaii de
memorie.
Unitatea central de procesare (CPU) este cea care
urmrete instruciunile din program.

a.

b.

3.

4.

Unitatea aritmetico-logic (ALU) care realizeaz operaiile


aritmetice i logice
Unitatea de control care controleaz aciunile celorlalte
componente astfel nct instruciunile s se execute n ordinea
corect

Dispozitivele de intrare/ieire (I/O) accept date care vor fi


procesate i le prezint pe cele care au fost procesate
Dispozitivele auxiliare de stocare pstreaz datele i dup
oprirea calculatorului

Dispozitivele periferice sunt cele de intrare/ieire i cele auxiliare.

Programarea calculatoarelor i
limbaje de programare I

34

Organizarea unui calculator


Sistemul de operare coordoneaz
toate resursele calculatorului. El
poate rula compilatorul, poate rula
programe obiect, poate executa
comenzi de sistem
Editorul este un program interactiv
folosit pentru crearea i modificarea
programelor surs sau a datelor
Programarea calculatoarelor i
limbaje de programare I

35

Tehnici de rezolvare a problemelor


Folosirea soluiilor existente
Dac avem la dispoziie o secven de
cod care rezolv o parte a problemei
noastre, putem s o folosim
Aceast metod se numete software
reuse i este elementul central n
programarea orientat pe obiecte

Programarea calculatoarelor i
limbaje de programare I

36

Tehnici de rezolvare a problemelor


Divide et impera
Adeseori este mult mai uor s
rezolvm o problem dac o mprim
n subprobleme mai mici
Metoda descompunerii unui program
n funcii i tehnica programrii
orientate pe obiecte se bazeaz pe
acest principiu

Programarea calculatoarelor i
limbaje de programare I

37

Tehnici de rezolvare a problemelor


Dificultatea de a ncepe
Pentru a depi acest moment, rescriei
problema cu propriile voastre cuvinte
ncercai s o descompunei n
subprobleme individuale n loc s o analizai
global
Facei o list cu substantivele (obiectele) i
verbele (aciunile) semnificative. Acestea
v vor ajuta s elaborai clasele care
formeaz aplicaia voastr
Programarea calculatoarelor i
limbaje de programare I

38

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