algoritmi

70
CLUBUL COPIILOR VISEU DE SUS MARAMURES prof. RalucaMaria Moldovan 1 Algoritmi

Upload: natalia-grajdianu

Post on 14-Nov-2014

6.048 views

Category:

Education


0 download

DESCRIPTION

Sunt prezente multe exemple

TRANSCRIPT

Page 1: Algoritmi

CLUBUL COPIILOR VISEU DE SUSMARAMURES

prof. RalucaMaria Moldovan

1

Algoritmi

Page 2: Algoritmi

2

o NOŢIUNI INTRODUCTIVEo DEFINIRE

o EXEMPLE DIN MATEMATICĂo METODE DE REPREZENTARE

LIMBAJ PSEUDOCOD SCHEME LOGICE

o STRUCTURI FUNDAMENTALE DE CONTROL

STRUCTURA LINIARĂ STRUCTURA DECIZIONALĂ STRUCTURA REPETITIVĂ

o APLICAŢII

Din Cuprins:

Page 3: Algoritmi

NOŢIUNI NOŢIUNI INTRODUCTIVEINTRODUCTIVE

Pentru a înţelege noţiunea de algoritm vom porni de

la un exemplu.

EX:Să presupunem că mama ne

roagă să cumpărăm pâine. Ce trebuie să facem?

3

Page 4: Algoritmi

Când am decis să plecăm la magazin vom proceda astfel:

- luăm banii necesari;- ne îndreptăm către magazin;

- solicităm o pâine;- o plătim;

- venim cu ea către casă;- o dăm mamei.

4

Page 5: Algoritmi

Am obţinut astfel un algoritm:

* care conţine 6 etape (deci un număr finit de operaţii);

* 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) obţinem ceea ce dorim

(pâinea).

5

Page 6: Algoritmi

DEF:DEF:Se numeşte algoritm o

secvenţă finită de operaţii ordonată şi

complet definită care pornind de la datele de intrare produce

rezultatele.6

Putem defini acum noţiunea de algoritm sintetizând cele spuse astfel:

Page 7: Algoritmi

Un alt exemplu:Presupunem că vrem să citim un

număr întreg (pe care noi îl introducem de la tastatură) şi îl tipărim (pe ecranul monitorului). Şirul acţiunilor ce trebuie executate este următorul:

- citeşte numărul- tipăreşte numărulŞi în acest caz am obţinut un

algoritm. Acţiunile trebuie executate în ordinea în care au fost puse. Astfel, nu putem tipări numărul înainte ca acesta să fie cunoscut (citit).

7

Page 8: Algoritmi

Temă:

Scrieţi un algoritm care calculează suma a două numere întregi a şi b.

Modificaţi apoi algoritmul astfel încât să calculeze şi produsul celor două numere.

8

Page 9: Algoritmi

Rezolvare:

Algoritmul problemei:1. Solicită valori pentru a şi b2. Calculează S=a+b3. Furnizează rezultatul pentru S

9

Page 10: Algoritmi

Algoritmul modificat are forma:

1. Solicită valori pentru a şi b

2. Calculează S=a+b 3. Calculează P=a*b

4. Furnizează rezultatul pentru S şi pentru P

10

Page 11: Algoritmi

Metode de reprezentarea 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.

11

Page 12: Algoritmi

Două din cele mai folosite forme de descriere a algoritmilor sunt:

limbajul pseudocod;Scheme logice.

12

Page 13: Algoritmi

Reprezentarea algoritmilor în limbaj pseudocod

Limbajul pseudocod foloseşte cuvinte cheie,

adică nişte cuvinte cu înţeles prestabilit ce indică operaţia care se execută.

13

Page 14: Algoritmi

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+b3. Furnizează rezultatul pentru S

14

Page 15: Algoritmi

b) Pseudocodul:citeşte a,bS=a+bscrie Sstop

15

Page 16: Algoritmi

Temă:

Să se calculeze media aritmetică a 3 numere întregi x, y şi z. Se cer:

a) algoritmul;b) pseudocodul.

16

Page 17: Algoritmi

Reprezentarea algoritmilor prin scheme logice

Schemele logice utilizează săgeţi de legătură între diferite forme geometrice care simbolizează acţiunile ce urmează a fi executate.

În continuare sunt prezentate blocurile care intră în componenţa unei scheme logice:

17

Page 18: Algoritmi

1. Bloc pentru introducerea datelor (bloc de citire)

unde “Listă variabile” cuprinde numele simbolice ale variabilelor cărora li se asociază valori numerice (citite).

18

Listă variabile

Page 19: Algoritmi

2. Bloc de extragere a rezultatelor (bloc de scriere)

unde variabilele menţionate în listă constituie rezultate ale problemei.

19

Listă variabile

Page 20: Algoritmi

3. Bloc de calcul (bloc de atribuire)

Un astfel de bloc indică următoarea succesiune de operaţii:

- se calculează expresia din membrul drept;- se atribuie variabilei din membrul stâng

valoarea calculată anterior (V reprezintă numele variabilei). 20

V = expresie

Page 21: Algoritmi

4. Bloc de decizie (bloc decizional)

Condiţia logică înscrisă poate să aibă valoarea “adevărat” sau “fals”; în funcţie de valoarea logică obţinută, blocul următor care va fi parcurs va fi legat de ramura “true”(adevărat) sau ramura “false”(fals).

21

condiţieTRUE FALSE

Page 22: Algoritmi

5. Bloc de început (bloc de start)

Indică începutul algoritmului.

22

START

Page 23: Algoritmi

6. Bloc de sfârşit (bloc de stop)

Indică sfârşitul algoritmului.

23

STOP

Page 24: Algoritmi

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+b3. Furnizează rezultatul pentru S

24

Page 25: Algoritmi

citeşte a,bS=a+bscrie Sstop

25

b) Pseudocodul:

Page 26: Algoritmi

C) SCHEMA LOGICĂ:

a

26

START

a, b

S=a+b

STOP

Page 27: Algoritmi

TEMĂ:

Să se calculeze produsul a trei numere întregi x, y şi z.Se cer:

a) algoritmul;b) pseudocodul;c) schema logică.

27

Page 28: Algoritmi

STRUCTURI DE CONTROL

O structură înseamnă o combinaţie de operaţii utilizată în scrierea algoritmilor. Orice algoritm care are un punct de început şi un punct de sfârşit poate fi reprezentat ca o combinaţie a trei structuri de control:

Secvenţa; Decizia; Repetiţia. 28

Page 29: Algoritmi

STRUCTURA SECVENŢIALĂ

Secvenţa reprezintă o succesiune de două sau mai multe operaţii care conţine o transformare de date:

în care “Secvenţa A” reprezintă o transformare de date.

29

Secvenţa A

Page 30: Algoritmi

EXEMPLU:

Să se calculeze suma, produsul şi diferenţa 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ă diferenţa D=x-y-z 5. Afişează rezultatele pentru S, P şi D.

30

Page 31: Algoritmi

b) pseudocodul:citeşte x, y, zS=x+y+zP=x*y*zD=x-y-zscrie S, P, Dstop

31

Page 32: Algoritmi

c) Schema logică:

32

START

x,y,z

P=x*y*z

D=x-y-z

STOP

S=x+y+z

S, P, D

Page 33: Algoritmi

TEMĂ: Se dau trei numere naturale a, b şi c. Să se

calculeze 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ă.

33

Page 34: Algoritmi

STRUCTURA DECIZIONALĂ

Decizia reprezintă alegerea unei operaţii sau a unei secvenţe de operaţii dintre două alternative posibile. Forma structurii decizionale este următoarea:

34

condiţie

Secvenţa A Secvenţa B

true false

Page 35: Algoritmi

35

În limbaj natural, execuţia poate fi descrisă astfel:

- se evalueză condiţia;- dacă condiţia este adevărat, se execută “Secvenţa A”;- în caz contrar (dacă condiţia este falsă) se execută “Secvenţa B”.

În pseudocod, execuţia se descrie astfel: dacă condiţie atunci

Secvenţa A altfel

Secvenţa B

Page 36: Algoritmi

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 b2. Se determină maximul dintre a şi b: dacă a este mai mare ca b atunci maximul este a altfel maximul este b

3. Se afişează maximul

36

Page 37: Algoritmi

b) Pseudocodul: citeşte a dacă a>b atunci max=a altfel max=b

scrie max stop

37

Page 38: Algoritmi

c) Schema logică:

38

start

stop

a, b

a>b

max=a max=b

true false

max

Page 39: Algoritmi

TEMĂ: Să se determine dacă un număr x

este pozitiv sau nu. Se cer:

- algoritmul;- pseudocodul;

- schema logică.

39

Page 40: Algoritmi

DECIZIA CU VARIANTA UNEI CĂI NULE

40

condiţie

Secvenţa A

true false

Mai există o formă a structurii decizionale şi anume cea cu varianta unei căi nume.

Forma acestei structuri este următoarea:

Page 41: Algoritmi

ÎN LIMBAJ NATURAL, EXECUŢIA POATE FI

DESCRISĂ ASTFEL:

41

- se evalueză condiţia;- dacă condiţia este adevărat, se execută “Secvenţa A” apoi execuţia structurii decizionale se încheie;- în caz contrar (dacă condiţia este falsă) execuţia structurii decizionale se încheie.

În pseudocod, execuţia se descrie astfel: dacă condiţie atunci

Secvenţa A

Page 42: Algoritmi

EXEMPLU: Se citeşte o valoare întreagă a. În cazul în

care aceasta este nulă (egală cu 0) se va tipări mesajul “am citit zero”. Altfel, nu se va da mesaj.

Rezolvare: a) Algoritmul:1. Se dă valoare lui a2. Se determină dacă a este nul: dacă a este egal cu zero atunci se va

tipări “am citit zero”

42

Page 43: Algoritmi

b) Pseudocodul: citeşte a dacă a=0 atunci

scrie ‘am citit zero’

stop

43

Page 44: Algoritmi

c) Schema logică:

44

start

stop

a

a=0true false

‘am citit zero’

Page 45: Algoritmi

TEMĂ:

Se citeşte de la tastatură un număr întreg x. În cazul în care acesta este cuprins în intervalul [1,100] se va afişa mesajul “număr cuprins în interval”, altfel nu se va afişa nici un mesaj.

Se cer:algoritmul;pseudocodul;schima logică.

45

Page 46: Algoritmi

STRUCTURA REPETITIVĂ

Repetiţia (bucla sau iteraţia) asigură execuţia unei secvenţe în mod repetat în funcţie de o anumită condiţie.

Există trei tipuri de structuri repetitive: - bucla cu test iniţial; - bucla cu test final; - bucla cu contor.

46

Page 47: Algoritmi

1. STRUCTURA REPETITIVĂ CU TEST INIŢIAL

Structura repetitivă cu test iniţial are forma:

47

condiţie

Secvenţa A

true

false

Page 48: Algoritmi

a

48

Execuţia structurii repetitive cu test iniţial presupune parcurgerea următoarelor etape:1.Se evaluează condiţia; dacă rezultatul este adevărat se trece la pasul 2, altfel execuţia se încheie;2. Se execută secvenţa A, apoi se trece la pasul 1).

Page 49: Algoritmi

EXPRIMAREA ÎN PSEUDOCOD:

cât timp condiţie execută Secvenţa A

49

Page 50: Algoritmi

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 13. Cât timp I este mai mic sau egal cu n se

calculează suma după formula S=S+I şi I ia valoarea următorului termen al sumei, după

formula I=I+14. Se afişează valoarea sumei S.

50

Page 51: Algoritmi

B) PSEUDOCODUL:

citeşte nS=0I=1cât timp I<=n execută S=S+I I=I+1scrie Sstop

51

Page 52: Algoritmi

C) SCHEMA LOGICĂ:a

52

start

stop

n

s=0

i=1

s=s+i

i=i+1

i<=n

s

false

true

Page 53: Algoritmi

TEMĂ

Să se calculeze produsul primelor n numere naturale.

Se cer:a) algoritmul;b) pseudocodul;

c) schema logică.

53

Page 54: Algoritmi

2. STRUCTURA REPETITIVĂ CU TEST FINAL:

Structura repetitivă cu test final are forma:

54

Secvenţa A

condiţiefalse

true

Page 55: Algoritmi

a

55

Execuţia buclei cu test final presupune parcurgerea următoarelor etape:

1. Se execută secvenţa A2. Se evaluează condiţia; dacă rezultatul

este fals, se continuă cu pasul 1), în caz contrar, se încheie execuţia buclei.

Page 56: Algoritmi

EXPRIMAREA ÎN PSEUDOCOD:

repetă

Secvenţa A

până când condiţie

56

Page 57: Algoritmi

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, până când I>n.

4. Se afişează valoarea sumei.57

Page 58: Algoritmi

B) PSEUDOCODUL:

a

58

citeşte nS=0I=1repetă S=S+I I=I+1până când I>nscrie Sstop

Page 59: Algoritmi

C) SCHEMA LOGICĂ:

a

59

stop

n

s

s=0

i=1

s=s+i

i=i+1

i>nfalse

true

start

Page 60: Algoritmi

TEMĂ:

Să se calculeze produsul primelor n numere naturale.

Se cer: - algoritmul; - pseudocodul; - schema logică.

60

Page 61: Algoritmi

3. STRUCTURA REPETITIVĂ CU CONTOR:

Structura repetitivă cu contor are forma:

unde cu “vi” s-a notat valoarea iniţială, iar cu “vf” s-a notat valoarea finală.

61

contor=vi

contor<=vffalse true

secvenţa A

contor=contor +pas

Page 62: Algoritmi

Această structură are un număr cunoscut de repetiţii a “Secvenţei A”, motiv pentru care se numeşte structură repetitivă cu contor.

Execuţia structurii repetitive cu contor presupune parcurgerea următoarelor etape:

1).Variabila de ciclare “contor” ia valoarea iniţială “vi”.

2). Dacă “contor” este mai mic sau egal cu valoarea finală “vf”, se execută “Secvenţa A”, se adună 1 la “contor” şi se reia cu pasul 2).. Altfel, execuţia este încheiată.

62

Page 63: Algoritmi

pentru contor=vi, vf execută

secvenţa A

63

Exprimarea în pseudocod:

Page 64: Algoritmi

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 luând valori de la 1 până la n se calculează suma după formula S=S+I

4. Se afişează valoarea sumei.

64

Page 65: Algoritmi

B) PSEUDOCODUL:

65

citeşte nS=0petntru I=1, n execută S=S+I

scrie Sstop

Page 66: Algoritmi

C) SCHEMA LOGICĂ:

66

start

stop

n

s

i=1

s=s+i

i=i+1i<=n

true

false

s=0

Page 67: Algoritmi

TEMĂ: Să se calculeze produsul primelor n

numere naturale. Se cer: - algoritmul; - pseudocodul; - schema logică.

67

Page 68: Algoritmi

APLICAŢII1. Se citesc două valori întregi a şi b. Se

cere să se tipărească media lor aritmetică.

2. Se citesc 3 numere naturale. Se cere să se tipărească primul număr, suma dintre primul şi al doilea, suma celor trei numere.

3. Se citeşte x număr natural. Să se evalueze expresia de mai jos:

68

inrestx

xdacaxx

3

0,2

Page 69: Algoritmi

4. Se citesc trei numere întregi. Să se tipărească (dacă există) numărul care este egal cu suma celorlalte două.

5. Se citeşte n (număr întreg). Se cere să se calculeze suma:

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.

69

Page 70: Algoritmi

ITI MULTUMESC PENTRU RABDARE!!!

70