coala cu clasele IVIII Ungheni Arges prof Mihaela





































































- Slides: 69

Şcoala cu clasele I-VIII “Ungheni” Arges prof. Mihaela Ghena 1

ALGORITMI o o NOŢIUNI INTRODUCTIVE DEFINIRE EXEMPLE DIN MATEMATICĂ METODE DE REPREZENTARE ü LIMBAJ PSEUDOCOD ü SCHEME LOGICE o STRUCTURI FUNDAMENTALE DE CONTROL ü STRUCTURA LINIARĂ ü STRUCTURA DECIZIONALĂ ü STRUCTURA REPETITIVĂ o APLICAŢII 2

Noţiuni introductive Pentru a înţelege noţiunea de algoritm vom porni de la un exemplu. 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). Putem defini acum noţiunea de algoritm sintetizând cele spuse astfel: 5

Definire Se numeşte algoritm o secvenţă finită de operaţii ordonată şi complet definită care pornind de la datele de intrare produce rezultatele. 6

Să luăm 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 b 2. Calculează S=a+b 3. 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 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. 11

Două din cele mai folosite forme de descriere a algoritmilor sunt: q limbajul pseudocod; q 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 b 2. Calculează S=a+b 3. Furnizează rezultatul pentru S 14

b) Pseudocodul: citeşte a, b S=a+b scrie S stop 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) Listă variabile unde “Listă variabile” cuprinde numele simbolice ale variabilelor cărora li se asociază valori numerice (citite). 18

2. Bloc de extragere a rezultatelor (bloc de scriere) Listă variabile unde variabilele menţionate în listă constituie rezultate ale problemei. 19

3. Bloc de calcul (bloc de atribuire) V = expresie 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

4. Bloc de decizie (bloc decizional) TRUE condiţie FALSE 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

5. Bloc de început (bloc de start) START Indică începutul algoritmului. 22

6. Bloc de sfârşit (bloc de stop) STOP Indică sfârşitul algoritmului. 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

b) Pseudocodul: citeşte a, b S=a+b scrie S stop 25

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

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 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: Secvenţa A în care “Secvenţa A” reprezintă o transformare de date. 29

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, z S=x+y+z P=x*y*z D=x-y-z scrie S, P, D stop 31

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

Temă: Se dau trei numere naturale a, b şi c. Să se calculeze valorile expresiilor: S 1=(a+b)*(a-b) S 2=a*b+a*c+b*c P=S 1*S 2 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: true Secvenţa A condiţie false Secvenţa B 34

Î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 35

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 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ă: start a, b true a>b max=a false max=b max stop 38

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 Mai există o formă a structurii decizionale şi anume cea cu varianta unei căi nume. Forma acestei structuri este următoarea: true condiţie false Secvenţa A 40

În limbaj natural, execuţia poate fi descrisă astfel: - 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 41

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 a 2. 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ă: start a true a=0 false ‘am citit zero’ stop 44

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 are forma: condiţie false true Secvenţa A 47

a 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. 2. Se execută secvenţa A, apoi se trece la pasul 1). 48

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 1 3. 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+1 4. Se afişează valoarea sumei S. 50

b) Pseudocodul: citeşte n S=0 I=1 cât timp I<=n execută S=S+I I=I+1 scrie S stop 51

c) Schema logică: a start n s=0 i=1 i<=n true s=s+i false s stop i=i+1 52

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: Secvenţa A condiţie false true 54

a Execuţia buclei cu test final presupune parcurgerea următoarelor etape: 1. Se execută secvenţa A 2. 2. Se evaluează condiţia; dacă rezultatul este fals, se continuă cu pasul 1), în caz contrar, se încheie execuţia buclei. 55

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 citeşte n S=0 I=1 repetă S=S+I I=I+1 până când I>n scrie S stop 58

c) Schema logică: a start n s=0 i=1 s=s+i i=i+1 i>n true false s stop 59

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: contor=vi false contor<=vf true secvenţa A contor=contor +pas unde cu “vi” s-a notat valoarea iniţială, iar cu “vf” s-a 61 notat valoarea finală.

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

Exprimarea în pseudocod: pentru contor=vi, vf execută secvenţa A 63

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: citeşte n S=0 petntru I=1, n execută S=S+I scrie S stop 65

c) Schema logică: start n s=0 i=1 false s stop i<=n true i=i+1 s=s+i 66

Temă: Să se calculeze produsul primelor n numere naturale. Se cer: - algoritmul; - pseudocodul; - schema logică. 67

Aplicaţii 1. 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

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