Upload
diana-artiomov
View
242
Download
0
Embed Size (px)
Citation preview
7/27/2019 Algoritmi_site Scheme Logice
1/69
1
coala cu clasele I-VIIIIon Creang
Suceava
prof. Marius UDUDEC
7/27/2019 Algoritmi_site Scheme Logice
2/69
2
ALGORITMIo NOIUNI INTRODUCTIVEo DEFINIRE
o EXEMPLE DIN MATEMATICo METODE DE REPREZENTARE LIMBAJ PSEUDOCOD SCHEME LOGICE
o STRUCTURI FUNDAMENTALE DE CONTROLSTRUCTURA LINIARSTRUCTURA DECIZIONALSTRUCTURA REPETITIV
o APLICAII
7/27/2019 Algoritmi_site Scheme Logice
3/69
3
Noiuni introductive
Pentru a nelege noiunea de
algoritm vom porni de la unexemplu.S presupunem c mama ne
roag s cumprm pine. Cetrebuie s facem?
7/27/2019 Algoritmi_site Scheme Logice
4/69
4
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.
7/27/2019 Algoritmi_site Scheme Logice
5/69
5
Am obinut astfel un algoritm:
* care conine 6 etape (deci un numr finit deoperaii);
* care au fost scrise n ordinea n care trebuieexecutate (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).
Putem defini acum noiunea de algoritm
sintetiznd cele spuse astfel:
7/27/2019 Algoritmi_site Scheme Logice
6/69
6
Definire
Se numete algoritm o secven
finit de operaii ordonat icomplet definit care pornindde la datele de intrare producerezultatele.
7/27/2019 Algoritmi_site Scheme Logice
7/697
S lum un alt exemplu:
Presupunem c vrem s citim un numr
ntreg (pe care noi l introducem de latastatur) i l tiprim (pe ecranulmonitorului). 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 careau fost puse. Astfel, nu putem tipri numrul
nainte ca acesta s fie cunoscut (citit).
7/27/2019 Algoritmi_site Scheme Logice
8/698
Tem:
Scriei un algoritm care calculeaz sumaa dou numere ntregi a i b.
Modificai apoi algoritmul astfel nct s
calculeze i produsul celor dou numere.
7/27/2019 Algoritmi_site Scheme Logice
9/699
Rezolvare:
Algoritmul problemei:
1. Solicit valori pentru a i b
2. Calculeaz S=a+b
3. Furnizeaz rezultatul pentru S
7/27/2019 Algoritmi_site Scheme Logice
10/6910
Algoritmul modificat are forma:
1. Solicit valori pentru a i b2. Calculeaz S=a+b
3. Calculeaz P=a*b
4. Furnizeaz rezultatul pentru S i pentru P
7/27/2019 Algoritmi_site Scheme Logice
11/6911
Metode de reprezentare
a algoritmilor
Limbajul natural nu permite odescriere suficient de exact aalgoritmilor. Din acest motiv
pentru reprezentarea algoritmilorse folosesc diferite forme dedescriere caracteristice.
7/27/2019 Algoritmi_site Scheme Logice
12/6912
Dou din cele mai folosite forme de descriere a
algoritmilor sunt: limbajul pseudocod;
Scheme logice.
7/27/2019 Algoritmi_site Scheme Logice
13/69
13
Reprezentarea algoritmilor
n limbaj pseudocod
Limbajul pseudocod folosetecuvinte cheie, adic nite cuvinte cuneles prestabilit ce indic operaia
care se execut.
7/27/2019 Algoritmi_site Scheme Logice
14/69
14
Exemplu:
S se calculeze suma a dou numere naturale
a i b.Rezolvare:
a) Algoritmul:
1. Solicit valori pentru a i b2. Calculeaz S=a+b
3. Furnizeaz rezultatul pentru S
7/27/2019 Algoritmi_site Scheme Logice
15/69
15
b) Pseudocodul:
citete a,b
S=a+b
scrie S
stop
7/27/2019 Algoritmi_site Scheme Logice
16/69
16
Tem:
S se calculeze media aritmetic a 3 numere
ntregi x, y i z. Se cer:a) algoritmul;
b) pseudocodul.
7/27/2019 Algoritmi_site Scheme Logice
17/69
17
Reprezentarea algoritmilor
prin scheme logice
Schemele logice utilizeaz sgei de
legtur ntre diferite forme geometrice caresimbolizeaz aciunile ce urmeaz a fiexecutate.
n continuare sunt prezentate blocurilecare intr n componena unei schemelogice:
7/27/2019 Algoritmi_site Scheme Logice
18/69
18
1. Bloc pentru introducerea datelor
(bloc de citire)
unde List variabile cuprinde numele simbolice alevariabilelor crora li se asociaz valori numerice(citite).
List variabile
7/27/2019 Algoritmi_site Scheme Logice
19/69
19
2. Bloc de extragere a rezultatelor
(bloc de scriere)
unde variabilele menionate n list constituie rezultate aleproblemei.
List variabile
7/27/2019 Algoritmi_site Scheme Logice
20/69
20
3. Bloc de calcul
(bloc de atribuire)
Un astfel de bloc indic urmtoarea succesiune de operaii:- se calculeaz expresia din membrul drept;
- se atribuie variabilei din membrul stng valoareacalculat anterior (V reprezint numele variabilei).
V = expresie
7/27/2019 Algoritmi_site Scheme Logice
21/69
21
4. Bloc de decizie
(bloc decizional)
Condiia logic nscris poate s aib valoareaadevrat sau fals; n funcie de valoarea logicobinut, blocul urmtor care va fi parcurs va fi legatde ramura true(adevrat) sau ramura false(fals).
condiieTRUE FALSE
7/27/2019 Algoritmi_site Scheme Logice
22/69
22
5. Bloc de nceput
(bloc de start)
Indic nceputul algoritmului.
START
7/27/2019 Algoritmi_site Scheme Logice
23/69
23
6. Bloc de sfrit
(bloc de stop)
Indic sfritul algoritmului.
STOP
7/27/2019 Algoritmi_site Scheme Logice
24/69
24
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+b3. Furnizeaz rezultatul pentru S
7/27/2019 Algoritmi_site Scheme Logice
25/69
25
citete a,b
S=a+b
scrie Sstop
b) Pseudocodul:
7/27/2019 Algoritmi_site Scheme Logice
26/69
26
c) Schema logic:a
START
a, b
S=a+b
STOP
7/27/2019 Algoritmi_site Scheme Logice
27/69
27
Tem:
S se calculezeprodusul a trei numere ntregi x,
y i z.Se cer:
a) algoritmul;
b) pseudocodul;c) schema logic.
7/27/2019 Algoritmi_site Scheme Logice
28/69
28
Structuri de control
O structur nseamn o combinaie de operaiiutilizat n scrierea algoritmilor. Orice algoritm care areun punct de nceput i un punct de sfrit poate fireprezentat ca o combinaie a trei structuri de control:
Secvena;
Decizia;Repetiia.
7/27/2019 Algoritmi_site Scheme Logice
29/69
29
Structura secvenial
Secvena reprezint o succesiune de dou sau mai multeoperaii care conine o transformare de date:
n care Secvena A reprezint o transformare de date.
Secvena A
7/27/2019 Algoritmi_site Scheme Logice
30/69
30
Exemplu:
S se calculeze suma, produsul i diferena a treinume 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.
7/27/2019 Algoritmi_site Scheme Logice
31/69
31
b) pseudocodul:
citete x, y, z
S=x+y+zP=x*y*z
D=x-y-z
scrie S, P, Dstop
7/27/2019 Algoritmi_site Scheme Logice
32/69
32
c) Schema logic:
START
x,y,z
P=x*y*z
D=x-y-z
STOP
S=x+y+z
S, P, D
7/27/2019 Algoritmi_site Scheme Logice
33/69
33
Tem:Se dau trei numere naturale a, b i c. S secalculeze valorile expresiilor:
S1=(a+b)*(a-b)S2=a*b+a*c+b*c
P=S1*S2
Se cer:
a) algoritmul;b) pseudocodul;
c) schema logic.
7/27/2019 Algoritmi_site Scheme Logice
34/69
34
Structura decizional
Decizia reprezint alegerea unei operaii sau a uneisecvene de operaii dintre dou alternative posibile. Forma structurii decizionale este urmtoarea:
condiie
Secvena A Secvena B
true false
7/27/2019 Algoritmi_site Scheme Logice
35/69
7/27/2019 Algoritmi_site Scheme Logice
36/69
36
Exemplu:
Se dau dou numere naturale a i b. S sedetermine care dintre ele are valoarea mai mare.
Rezolvare:a) Algoritmul:1. Se dau valori lui a i b2. Se determin maximul dintre a i b:
dac a este mai mare ca b atuncimaximul este a
altfel maximul este b
3. Se afieaz maximul
7/27/2019 Algoritmi_site Scheme Logice
37/69
37
b) Pseudocodul:citete a
dac a>b atuncimax=a
altfelmax=b
scrie maxstop
7/27/2019 Algoritmi_site Scheme Logice
38/69
38
c) Schema logic:start
stop
a, b
a>b
max=a max=b
true false
max
7/27/2019 Algoritmi_site Scheme Logice
39/69
39
Tem:
S se determine dac un numr x este pozitiv saunu.
Se cer:- algoritmul;
- pseudocodul;
- schema logic.
7/27/2019 Algoritmi_site Scheme Logice
40/69
7/27/2019 Algoritmi_site Scheme Logice
41/69
41
n limbaj natural, execuia poate fi
descris astfel:- se evaluez condiia;- dac condiia este adevrat, se execut Secvena Aapoi execuia structurii decizionale se ncheie;
- n caz contrar (dac condiia este fals) execuiastructurii decizionale se ncheie.
n pseudocod, execuia se descrie astfel:dac condiie atunci
Secvena A
7/27/2019 Algoritmi_site Scheme Logice
42/69
42
Exemplu:Se citete o valoare ntreag a. n cazul n careaceasta este nul (egal cu 0) se va tipri mesajulam citit zero. Altfel, nu se va da mesaj.
Rezolvare:a) Algoritmul:
1. Se d valoare lui a
2. Se determin dac a este nul:dac a este egal cu zero atunci se va tipri
am citit zero
7/27/2019 Algoritmi_site Scheme Logice
43/69
43
b) Pseudocodul:
citete a
dac a=0 atunciscrieam citit zero
stop
7/27/2019 Algoritmi_site Scheme Logice
44/69
44
c) Schema logic:
start
stop
a
a=0true false
am citit zero
7/27/2019 Algoritmi_site Scheme Logice
45/69
45
Tem:Se citete de la tastatur un numr ntreg x. ncazul n care acesta este cuprins n intervalul
[1,100] se va afia mesajul numr cuprins ninterval, altfel nu se va afia nici un mesaj.
Se cer:
algoritmul;
pseudocodul;
schima logic.
7/27/2019 Algoritmi_site Scheme Logice
46/69
46
Structura repetitiv
Repetiia (bucla sau iteraia) asigur execuia uneisecvene 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.
7/27/2019 Algoritmi_site Scheme Logice
47/69
47
1. Structura repetitiv cu test iniialStructura repetitiv cu test iniial are forma:
condiie
Secvena A
true
false
7/27/2019 Algoritmi_site Scheme Logice
48/69
48
aExecuia structurii repetitive cu test iniial
presupune parcurgerea urmtoarelor etape:
1.Se evalueaz condiia; dac rezultatul esteadevrat se trece la pasul 2, altfel execuia sencheie;
2. Se execut secvena A, apoi se trece la pasul 1).
7/27/2019 Algoritmi_site Scheme Logice
49/69
49
Exprimarea n pseudocod:
ct timpcondiie execut
Secvena A
7/27/2019 Algoritmi_site Scheme Logice
50/69
50
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+Ii I ia valoarea urmtorului termen al sumei, dupformula I=I+1
4. Se afieaz valoarea sumei S.
7/27/2019 Algoritmi_site Scheme Logice
51/69
51
b) Pseudocodul:
citete n
S=0I=1
ct timp I
7/27/2019 Algoritmi_site Scheme Logice
52/69
52
c) Schema logic:a start
stop
n
s=0
i=1
s=s+i
i=i+1
i
7/27/2019 Algoritmi_site Scheme Logice
53/69
53
Tem
S se calculeze produsul primelor n numerenaturale.
Se cer:a) algoritmul;
b) pseudocodul;
c) schema logic.
7/27/2019 Algoritmi_site Scheme Logice
54/69
54
2. Structura repetitiv cu test final:
Structura repetitiv cu test final are forma:
Secvena A
condiiefalse
true
7/27/2019 Algoritmi_site Scheme Logice
55/69
55
a Execuia buclei cu test final presupuneparcurgerea 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.
7/27/2019 Algoritmi_site Scheme Logice
56/69
56
Exprimarea n pseudocod:
repet
Secvena Apn cndcondiie
7/27/2019 Algoritmi_site Scheme Logice
57/69
57
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+Ii I ia valoarea I=I+1, pn cnd I>n.
4. Se afieaz valoarea sumei.
7/27/2019 Algoritmi_site Scheme Logice
58/69
58
b) Pseudocodul:a citete n
S=0I=1repet
S=S+I
I=I+1pn cndI>nscrie S
stop
7/27/2019 Algoritmi_site Scheme Logice
59/69
59
c) Schema logic:a
stop
n
s=0i=1
s=s+i
i=i+1
i>nfalse
true
start
7/27/2019 Algoritmi_site Scheme Logice
60/69
60
Tem:S se calculeze produsul primelor n numerenaturale.
Se cer:- algoritmul;
- pseudocodul;
- schema logic.
7/27/2019 Algoritmi_site Scheme Logice
61/69
61
3. Structura repetitiv cu contor:
Structura repetitiv cu contor are forma:
unde cu vi s-a notat valoarea iniial, iar cu vf s-a
notat valoarea final.
contor=vi
contor
7/27/2019 Algoritmi_site Scheme Logice
62/69
62
Aceast structur are un numr cunoscut de repetiii aSecvenei A, motiv pentru care se numete structurrepetitiv cu contor.
Execuia structurii repetitive cu contor presupuneparcurgerea urmtoarelor etape:
1).Variabila de ciclare contor ia valoarea iniial vi.
2). Dac contor este mai mic sau egal cu valoarea final vf, seexecut Secvena A, se adun 1 la contor i se reia cu
pasul 2).. Altfel, execuia este ncheiat.
7/27/2019 Algoritmi_site Scheme Logice
63/69
63
pentru contor=vi, vfexecut
secvena A
Exprimarea n pseudocod:
7/27/2019 Algoritmi_site Scheme Logice
64/69
64
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 secalculeaz suma dup formula S=S+I
4. Se afieaz valoarea sumei.
7/27/2019 Algoritmi_site Scheme Logice
65/69
65
b) Pseudocodul:citete n
S=0petntru I=1, n executS=S+I
scrie Sstop
7/27/2019 Algoritmi_site Scheme Logice
66/69
66
c) Schema logic:start
stop
n
i=1
s=s+i
i=i+1i
7/27/2019 Algoritmi_site Scheme Logice
67/69
67
Tem:
S se calculeze produsul primelor n numerenaturale.
Se cer:- algoritmul;
- pseudocodul;
- schema logic.
7/27/2019 Algoritmi_site Scheme Logice
68/69
68
1. Se citesc dou valori ntregi a i b. Se cere s setipreasc media lor aritmetic.
2. Se citesc 3 numere naturale. Se cere s setipreasc primul numr, suma dintre primul ial doilea, suma celor trei numere.
3. Se citete x numr natural. S se evalueze expresia
de mai jos:
Aplicaii
inrestx
xdacaxx
3
0,2
7/27/2019 Algoritmi_site Scheme Logice
69/69
4. Se citesc trei numere ntregi. S se tipreasc(dac exist) numrul care este egal cu sumacelorlalte dou.
5. Se citete n (numr ntreg). Se cere s se calculezesuma:
S=1+3+5++n.
6. S se calculeze suma:S=0,1+0,2+0,3++0,9.7. S se calculeze media aritmetic a primelor n
numere naturale.