Sunteți pe pagina 1din 73

Curs 6 - 7

Algoritmi.
Reprezentarea Algoritmilor
Pentru Programarea
Calculatoarelor

Componenta Soft
Software de baz

Software utilitar

Software de aplicaie

Comunicarea cu calculatorul
i prin programe de aplicaie programe care
sunt realizate pentru rezolvarea unei
probleme pe calculator.
Trebuie sa comunicm cu calculatorul n
msur s i spunem ce s fac, s creem
programe specifice pe care calculatorul s le
poat prelucra, executa i la urm s afieze
date sau s interacioneze ntr-un anume mod
cu utilizatorul.
3

Cum se face comunicarea?


Se scriu programe care sunt
executate de ctre
calculator.

Ce face calculatorul?
instruciunea se incarc
de UCC(Unitatea de
Comand i Control)
decodificare instruciune
si emitere ordin ctre
UAL
(Unitatea
aritmetic logic )
citire date
prelucrare
rezultate
4

Ce face omul?
Etape de baz care trebuie urmate pentru rezolvarea unei
probleme pe calculator:

analiza problemei - se stabilete exact


subprobleme trebuie s rezolve programul;

CE

programarea - reprezentarea problemelor


ntr-un mod adecvat pentru rezolvarea cu calculator;
implementarea - scrierea programului care rezolv
problema, ntr-un anumit limbaj de programare;
5

Etape de baz care trebuie urmate pentru rezolvarea


unei probleme pe calculator:
Ce face omul:
CE

Problema care
trebuie rezolvat

CUM
Reprezentarea
problemei

Rezolvarea
problemei
folosind un
limbaj de
programare

Informatica
O disciplin care ncearc s construiasc o baz
tiinific pentru un numr mare de domenii
Proiectarea i programarea calculatoarelor
Prelucrarea informaiilor
Rezolvarea algoritmic a problemelor
tiina algoritmilor
Domenii: matematic, inginerie, psihologie,
management, lingvistic, etc.
Programare principii de baz ale instrumentelor
de programare utilizate n prezent, evoluie i
probleme
7

Algoritm
Set de pai prin care se definete modul n care
poate fi dus la ndeplinire o anumit sarcin
Un set ordonat de pai executabili, care
definesc un proces finit
Reprezentarea algoritmilor n calculator ->
program -> software
8

Algoritmi
Capteaz i transmit informaie
Rezolv o problem
Sunt n form conceptual - trebuie s
reprezentate ntr-o form n care pot s
comunicate unui calculator prin setul
instruciuni (gramatic i limbaj) limbaj
programare
Paradigme de programare

fie
fie
de
de

Limbaje de programare
Dup modul de abordare a rezolvrii problemelor cu
calculatorul limbajele pot fi:
procedurale - atunci cnd rezolvarea problemei
urmeaz anumite etape i utilizeaz nite structuri
fundamentale (cum sunt: Pascal, C, etc.)
neprocedurale - ele se bazeaz pe reguli i sunt mai
apropiate de limbajul i modul de raionare natural
(cum sunt limbajele pentru inteligen artificial:
Prolog, Lisp).
10

Algoritm
Pentru a nelege noiunea de algoritm vom
porni de la un exemplu.
Exemplu:
S presupunem c mama ne roag s
cumprm pine.
Ce trebuie s facem?

11

11

Cnd am decis s plecm la magazin vom


proceda astfel:
lum banii necesari;
ne ndreptm ctre magazin;
solicitm o pine;
o pltim;
venim cu ea ctre cas;
o dm mamei.
12

12

Am obinut astfel un algoritm:

care conine 6 etape (deci un numr finit de operaii);


care au fost scrise n ordinea n care trebuie executate (deci
sunt ordonate);
fiecare etap este explicat n cuvinte (deci este complet
definit);
i care pornind de la ceva (n cazul nostru bani) obinem
ceea ce dorim (pinea).
13

13

Algoritmul:
Def.
Se numete algoritm o secven finit de
operaii ordonat i complet definit care
pornind de la datele de intrare produce
rezultatele.
14

14

Proprietatile algoritmului
Generalitatea const n aceea c un algoritm
nu rezolv o singur problem ci o clas de
probleme de acelai tip;
Finititudinea numrul transformrilor ce
trebuie aplicat unei informaii de intrare
pentru a obine imformaia final este finit;
Unicitatea toate transformrile prin care
trece informaia final sunt univoc
determinate de regulile algoritmului.
15

Un alt exemplu:
Presupunem c vrem s citim un numr ntreg (pe care noi l
introducem de la tastatur) i l tiprim (pe ecranul monitorului).
irul aciunilor ce trebuie executate este urmtorul:
- citete numrul
- tiprete numrul
i n acest caz am obinut un algoritm. Aciunile trebuie
executate n ordinea n care au fost puse. Astfel, nu putem tipri
numrul nainte ca acesta s fie cunoscut (citit).
16

16

Tem:
Scriei un algoritm care calculeaz suma a
dou numere ntregi a i b.

17

17

Rezolvare:
Algoritmul problemei
1. Solicit valori pentru a i b
2. Calculeaz S=a+b
3. Furnizeaz rezultatul pentru S
18

18

Mrimi cu care opereaz algoritmii

CONSTANTE - o mrime ce are atribuit o valoare care nu se modific n


timpul execuiei
Exemplu a=7 sau nume=Marian pe tot parcursul derularii algoritmului a
va lua valoarea 7 sau pentru nume va fi afisat Marian

VARIABILE - o mrime care poate lua o mulime de valori posibile n


cursul prelucrrii.

Mrimile pot fi succesiuni de caractere alfabetice, numerice i chiar speciale.


Este indicat ca aceste numere atribuite mrimilor s fie sugestive.

19

Operatii utilizate in algoritmi


1.Operaii de calcul sunt operaiile obinuite de : adunare (+), scdere (-), nmulire
(*), mprire (/), ridicare la putere.
Acestea intervin n cadrul expresiilor care sunt o succesiune de variabile i constante
legate ntre ele prin operatori ( semne de operaii ) i eventual paranteze, dup
reguli bine definite.
n cadrul expresiilor operaiile se execut n ordinea natural, conform prioritilor.
ntr-un algoritm o expresie apare ntotdeauna n cadrul unei operaii de atribuire.
2.Operaii de atribuire: printr-o asemenea operaie se atribuie unei variabilie o
valoare a unei - constante, variabile, expresii.
Operaia de atribuire se noteaz cu: := sau
Ex: NUME : = IOAN (constant)
NUME IOAN
NUME : = NUMEP (variabil)
NUME NUMEP
A:= 1, A1,
A:= X-1, A:= A+1
3.Operaii de test (decizie): scopul acestei operaii este de a verifica relaiile existente
ntre datele asupra crora opereaz algoritmul pentru a decide transmiterea
controlului execuiei ctre o anumit instruciune.
n urma executrii unei operaii de test rezultatul obinut este una din aa numitele
valori logice de adevr: adevrat sau fals.
Operaiile de test se reprezint prin semnele: <;
4.Operaii de intrare/ieire : se refer la introducerea datelor de intrare respectiv
furnizarea rezultatelor.
Operaii de intrare citire, atribuire citete
Operaii de ieire - scriere, afiare scriere
20

Metode de reprezentare
a algoritmilor

Limbajul natural nu permite o descriere suficient de


exact a algoritmilor.
Din acest motiv pentru reprezentarea algoritmilor se
folosesc diferite forme de descriere caracteristice.

21

21

Dou din cele mai folosite forme de


descriere a algoritmilor sunt:

Limbajul pseudocod;
Schemele logice.
22

22

Reprezentarea algoritmilor n limbaj pseudocod


Limbajul pseudocod folosete cuvinte cheie, adic
nite cuvinte cu neles prestabilit ce indic
operaia care se execut.

23

23

Exemplu:
S se calculeze suma a dou numere naturale
a i b.
Rezolvare:
a) Algoritmul:

1. Solicit valori pentru a i b


2. Calculeaz S=a+b
3. Furnizeaz rezultatul pentru S

24

24

b)

Pseudocodul:
citete a,b
S=a+b
scrie S
stop

25

25

Reprezentarea algoritmilor prin


scheme logice
Schemele logice utilizeaz sgei de
legtur ntre diferite forme geometrice
care simbolizeaz aciunile ce urmeaz a
fi executate.
n continuare sunt prezentate blocurile care
intr n componena unei scheme logice:
26

26

1. Bloc pentru introducerea datelor


(bloc de citire)

Lista variabile

unde List variabile cuprinde numele simbolice ale


variabilelor crora li se asociaz valori numerice
(citite).

27

27

2. Bloc de extragere a rezultatelor


(bloc de scriere)
Lista variabile

unde variabilele menionate n list constituie


rezultate ale problemei.
28

28

3. Bloc de calcul
(bloc de atribuire)

V = expresie

Un astfel de bloc indic urmtoarea succesiune de operaii:


- se calculeaz expresia din membrul drept;
- se atribuie variabilei din membrul stng valoarea calculat
anterior (V reprezint numele variabilei).
29

29

4. Bloc de decizie
(bloc decizional)
TRUE

condiie

FALSE

Condiia logic nscris poate s aib valoarea adevrat sau


fals; n funcie de valoarea logic obinut, blocul
urmtor care va fi parcurs va fi legat de ramura
true(adevrat) sau ramura false(fals).
30

30

5. Bloc de nceput
(bloc de start)

START

Indic nceputul algoritmului.


31

31

6. Bloc de sfrit
(bloc de stop)

STOP

Indic sfritul algoritmului.

32

32

Exemplu:

S se calculeze suma a dou numere


naturale a i b.
Rezolvare:
a) Algoritmul:
1. Solicit valori pentru a i b
2. Calculeaz S=a+b
3. Furnizeaz rezultatul pentru S
33

33

b) Pseudocodul:
citete a,b
S=a+b
scrie S
stop
34

34

c) Schema logic:
START
a, b
S=a+b
S

STOP

35

35

Structuri de control

O structur nseamn o combinaie de


operaii utilizat n scrierea algoritmilor.
Orice algoritm care are un punct de nceput i
un punct de sfrit poate fi reprezentat ca o
combinaie a trei structuri de control:
Secvena;
Decizia;
Repetiia.
36

36

Structura secvenial

Secvena reprezint o succesiune de dou sau


mai multe operaii care conine o
transformare de date:
Secvena A

n care Secvena
transformare de date.

reprezint

o
37

37

EXEMPLU:

S se calculeze suma, produsul i


diferena a trei nume ntregi x, y i z.
a) algoritmul:
1. Se dau valori pentru x, y i z
2. Calculeaz S=x+y+z
3. Calculeaz P=x*y*z
4. Calculeaz diferena D=x-y-z
5. Afieaz rezultatele pentru S, P i D.
38

38

b) Pseudocodul:
citete x, y, z
S=x+y+z
P=x*y*z
D=x-y-z
scrie S, P, D
stop
39

39

c) Schema logic:
START
x,y,z
S=x+y+z
P=x*y*z
D=x-y-z
S, P, D
STOP
40

40

Structura decizional
Decizia reprezint alegerea unei operaii sau
a unei secvene de operaii dintre dou alternative
posibile. Forma structurii decizionale este
urmtoarea:
true
Secvena A

condiie

false
Secvena B
41

41

n limbaj natural, execuia poate fi


descris astfel:
- se evaluez condiia;
- dac condiia este adevrat, se execut Secvena A;
- n caz contrar (dac condiia este fals) se execut
Secvena B.
n pseudocod, execuia se descrie astfel:
dac condiie atunci
Secvena A
altfel
Secvena B
42

42

EXEMPLU:

Se dau dou numere naturale a i b. S se determine


care dintre ele are valoarea mai mare.
Rezolvare:
a) Algoritmul:
1. Se dau valori lui a i b
2. Se determin maximul dintre a i b:
dac a este mai mare ca b atunci
maximul este a
altfel maximul este b
43
3. Se afieaz maximul
43

b) Pseudocodul:
citete a, b
dac a>b atunci
max=a
altfel
max=b
scrie max
stop

44

44

c) Schema logic:
start
a, b
true

a>b

max=a

false
max=b

max
stop

45

45

Decizia cu varianta unei ci nule


Mai exist o form a structurii decizionale i anume
cea cu varianta unei ci nume.
Forma acestei structuri este urmtoarea:

true

condiie

false

Secvena A
46

46

limbaj
natural,
descris astfel:

execuia

poate

fi

- se evaluez condiia;
- dac condiia este adevrat, se execut Secvena
A apoi execuia structurii decizionale se ncheie;
- n caz contrar (dac condiia este fals) execuia
structurii decizionale se ncheie.
n pseudocod, execuia se descrie astfel:
dac condiie atunci
Secvena A
47

47

EXEMPLU:
Se citete o valoare ntreag a. n cazul n care aceasta este
egal cu 0 se va tipri mesajul am citit zero. Altfel, nu se va
da mesaj.
Rezolvare:
a) Algoritmul:
1. Se d valoare lui a
2. Se determin dac a este zero:
dac a este egal cu zero atunci se va tipri
am citit zero

48

48

b) Pseudocodul:
citete a
dac a=0 atunci
scrie am citit zero

stop
49

49

c) Schema logic:
start
a
true

a=0

false

am citit zero

stop

50

50

Structura repetitiv
Repetiia (bucla sau iteraia) asigur
execuia unei secvene n mod repetat
n funcie de o anumit condiie.
Exist trei tipuri de structuri repetitive:
- bucla cu test iniial;
- bucla cu test final;
- bucla cu contor.
51

51

1. Structura repetitiv cu test iniial

Structura repetitiv cu test iniial are


forma:
condiie

false

true
Secvena A
52

52

Execuia structurii repetitive cu test iniial


presupune parcurgerea urmtoarelor etape:
1.Se evalueaz condiia; dac rezultatul este
adevrat se trece la pasul 2, altfel execuia se
ncheie;
2. Se execut secvena A, apoi se trece la pasul 1).

53

53

Exprimarea n pseudocod:

ct timp condiie execut


Secvena A

54

54

Exemplu:
S se calculeze suma primelor n numere naturale.
Rezolvare:
a) Algoritmul:
1. Se d valoare lui n;
2. Se d lui S valoarea 0 i lui I valoarea 1
3. Ct timp I este mai mic sau egal cu n se calculeaz suma dup
formula S=S+I
i I ia valoarea urmtorului termen al sumei, dup formula
I=I+1
4. Se afieaz valoarea sumei S.
55

55

b) Peudocodul:
citete n
S=0
I=1
ct timp I<=n execut
S=S+I
I=I+1
scrie S
stop
56

56

c) Schema logic:
start
n
s=0
i=1
i<=n
true
s=s+i

false
s
stop

i=i+1
57

57

2. Structura repetitiv cu test final:


Structura repetitiv cu test final are forma:

Secvena A

condiie

false

true
58

58

Execuia buclei cu test final presupune


parcurgerea urmtoarelor etape:

1. Se execut secvena A
2. Se evalueaz condiia; dac rezultatul este fals,
se continu cu pasul 1), n caz contrar, se ncheie
execuia buclei.

59

59

Pseudocodul:

repet
Secvena A
pn cnd condiie

60

60

Exemplu:
S se calculeze suma primelor n numere naturale.
Rezolvare:
a) Algoritmul:
1. Se d valoare lui n;
2. Se d lui S valoarea 0 i lui I valoarea 1
3. Se calculeaz suma dup formula S=S+I
i I ia valoarea I=I+1, pn cnd I>n.
4. Se afieaz valoarea sumei.
61

61

b) Pseudocodul:

citete n
S=0
I=1
repet
S=S+I
I=I+1
pn cnd I>n
scrie S
stop
62

62

start
n
s=0
i=1
s=s+i
i=i+1
i>n
true

false

c) Schema logic:

stop

63

63

3. Structura repetitiv cu contor:


Structura repetitiv cu contor are forma:
contor=vi
false

contor<=vf

true
secvena A
contor=contor +pas

unde cu vi s-a notat valoarea iniial, iar cu vf s-a notat


valoarea final.

64

64

Aceast structur are un numr cunoscut de repetiii


a Secvenei A, motiv pentru care se numete
structur repetitiv cu contor.

Execuia structurii repetitive cu contor presupune


parcurgerea urmtoarelor etape:

1).Variabila de ciclare contor ia valoarea iniial vi.


2). Dac contor este mai mic sau egal cu valoarea
final vf, se execut Secvena A, se adun 1 la
contor i se reia cu pasul 2) altfel, execuia este
ncheiat.
65

65

Pseudocod:

pentru contor=vi, vf execut


secvena A

66

66

Exemplu:
S se calculeze suma primelor n numere naturale.
Rezolvare:
a) Algoritmul:
1. Se d valoare lui n;
2. Se d lui S valoarea 0 i lui I valoarea 1
3. Pentru I lund valori de la 1 pn la n se calculeaz
suma dup formula S=S+I
4. Se afieaz valoarea sumei.
67
67

b) Pseudocodul:
citete n
S=0
pentru I=1, n execut
S=S+I

scrie S
stop
68

68

c) Schema logic:
start
n
s=0
i=1
false

s
stop

i<=n
true

i=i+1
s=s+i
69

69

TEM:
1) S se calculeze aria si perimterul unui
dreptunghi
2) Sa se calculeze minimul dintre trei numere
naturale
Se cer:
- algoritmul;
- pseudocodul;
- schema logic.
70

70

Curs 1- de citit istoricul cu accent pe


Date, Informatii
Format binar i bibliografia de la final
Curs 2 Structura Hardware cu accent pe
Memoria, Def., Caracteristici, Clasificari
Unitatea centrala executarea unei instructiuni
Curs 3 Componenta software cu accent pe
Categorii de software
Sisteme de operare def., functiile unui SO, Structura unui SO
Curs 4 Retele de calculatoare cu accent pe
Definitie
Clasificari
Modul de organizare
Topologii
Comunicarea pe Internet
Adresarea in Internet (URL - URI)
Curs 5 Sistem de numeratie
Tot
Curs 6 7
Tot
71

Intrati la adresa:
cadredidactice.ub.ro/simonavarlan
cutai n stnga BTI i avei acolo cursurile
n format electronic.
Parola arhivei este bti2013

72

73

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