Didactic Algoritmi

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

description

Algoritmi

Transcript of Didactic Algoritmi

CLUBUL COPIILOR VISEU DE SUSMARAMURES

prof. RalucaMaria Moldovan

1

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:

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

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

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

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:

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

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

Rezolvare:

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

9

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

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

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

limbajul pseudocod;Scheme logice.

12

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

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

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

15

Temă:

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

a) algoritmul;b) pseudocodul.

16

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

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

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

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

19

Listă variabile

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

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

5. Bloc de început (bloc de start)

Indică începutul algoritmului.

22

START

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

Indică sfârşitul algoritmului.

23

STOP

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

citeşte a,bS=a+bscrie Sstop

25

b) Pseudocodul:

C) SCHEMA LOGICĂ:

a

26

START

a, b

S=a+b

STOP

TEMĂ:

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

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

27

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

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

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

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

31

c) Schema logică:

32

START

x,y,z

P=x*y*z

D=x-y-z

STOP

S=x+y+z

S, P, D

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

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

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

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

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

scrie max stop

37

c) Schema logică:

38

start

stop

a, b

a>b

max=a max=b

true false

max

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

este pozitiv sau nu. Se cer:

- algoritmul;- pseudocodul;

- schema logică.

39

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:

Î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

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

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

scrie ‘am citit zero’

stop

43

c) Schema logică:

44

start

stop

a

a=0true false

‘am citit zero’

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

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

1. STRUCTURA REPETITIVĂ CU TEST INIŢIAL

Structura repetitivă cu test iniţial are forma:

47

condiţie

Secvenţa A

true

false

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

EXPRIMAREA ÎN PSEUDOCOD:

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

49

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

B) PSEUDOCODUL:

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

51

C) SCHEMA LOGICĂ:a

52

start

stop

n

s=0

i=1

s=s+i

i=i+1

i<=n

s

false

true

TEMĂ

Să se calculeze produsul primelor n numere naturale.

Se cer:a) algoritmul;b) pseudocodul;

c) schema logică.

53

2. STRUCTURA REPETITIVĂ CU TEST FINAL:

Structura repetitivă cu test final are forma:

54

Secvenţa A

condiţiefalse

true

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.

EXPRIMAREA ÎN PSEUDOCOD:

repetă

Secvenţa A

până când condiţie

56

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

B) PSEUDOCODUL:

a

58

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

C) SCHEMA LOGICĂ:

a

59

stop

n

s

s=0

i=1

s=s+i

i=i+1

i>nfalse

true

start

TEMĂ:

Să se calculeze produsul primelor n numere naturale.

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

60

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

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

pentru contor=vi, vf execută

secvenţa A

63

Exprimarea în pseudocod:

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

B) PSEUDOCODUL:

65

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

scrie Sstop

C) SCHEMA LOGICĂ:

66

start

stop

n

s

i=1

s=s+i

i=i+1i<=n

true

false

s=0

TEMĂ: Să se calculeze produsul primelor n

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

67

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

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

ITI MULTUMESC PENTRU RABDARE!!!

70