+ All Categories
Home > Documents > ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf ·...

ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf ·...

Date post: 06-Feb-2018
Category:
Upload: dothuy
View: 328 times
Download: 8 times
Share this document with a friend
46
ALGORITMI CURS 2
Transcript
Page 1: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

ALGORITMI

CURS 2

Page 2: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

Algoritmi

1. Noțiunea de algoritm

2. Reprezentarea unui algoritm

3. Elementele programării structurate

4. Concepția unui algoritm

5. Exemple de algoritmi elementari

Page 3: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritm

• În procesul de rezolvare a unei probleme folosind calculatorulexistă două etape:

•1. Definirea şi analiza problemei

•2. Proiectarea şi implementarea unui algoritm carerezolvă problema

•1. Definirea şi analiza problemei poate fi la rândul eidescompusă în:

• specificarea datelor de intrare

• specificarea datelor de ieşire

Page 4: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritmSpecificarea datelor de intrare constă în:1. Ce date vor fi primite la intrare2. Care este formatul (forma lor de reprezentare) datelor de intrare3. Care sunt valorile permise sau nepermise pentru datele de intrare4. Există unele restricţii (altele decât la 3) privind valorile de intrare5. Câte valori vor fi la intrare, sau dacă nu se poate specifica un număr fix de valori, cum se va şti când s-au terminat de introdus datele de intrare.

Page 5: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritmSpecificarea datelor de ieşire trebuie să ţină cont deurmătoarele aspecte:

1. Care din valorile rezultate în cursul aplicării algoritmuluide calcul, asupra datelor de intrare, vor fi afişate (necesareutilizatorului), în acest pas se face diferenţierea clară întredate intermediare şi date de ieşire.

2. Care va fi formatul datelor de ieşire (de exemplu unnumăr real poate fi afişat cu trei sau cu cinci zecimale, sauun text poate fi afişat integral sau parţial).

Page 6: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritm

3. Sunt sau nu necesare explicaţii suplimentarepentru utilizator în afara datelor de ieşire.

4. Care este numărul de date de ieşire care trebuie transmise către ieşire.

Page 7: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritm• O definiţie a noţiunii de algoritm poate fi:

O succesiune finită de operaţii cunoscute care se execută într-osuccesiune logică bine stabilită astfel încât plecand de la un set de date de intrare, să obtinem într-un interval de timp finit un set de date de ieşire.

Un exemplu simplu de algoritm ar fi suita de operaţii matematicefăcută în rezolvarea unei ecuaţii matematice de gradul II:

coeficienții a, b și c se schimbă dar modul de procesare a valorilor lor, nu

02

cxbxa

Page 8: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritm•Proprietăţile unui algoritm sunt:1. Generalitate. Un algoritm trebuie să poată fi utilizat pentru o clasă

întreagă de probleme, nu numai pentru o problemă particulară. Dinaceastă cauză, o metodă de rezolvare a unei ecuații particulare nu poatefi considerată algoritm.

2. Finitudine. Orice algoritm trebuie să permită obținerea rezultatului dupăun număr finit de prelucrări (pași).

3. Determinism. Un algoritm trebuie să prevadă, fără ambiguități și fărăneclarități, modul de soluționare a tuturor situațiilor care pot să apară înrezolvarea problemei. Dacă în cadrul algoritmului nu intervin elementealeatoare, atunci ori de câte ori se aplică algoritmul aceluiași set de datede intrare trebuie să se obțină același rezultat.

Page 9: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritm

Tipuri de prelucrări:

Prelucrările care intervin într-un algoritm pot fi simple sau structurate.

• Prelucrările simple sunt atribuiri de valori variabilelor, eventual prin evaluareaunor expresii;

• Prelucrările structurate pot fi de unul dintre tipurile:

− Liniare. Sunt secvențe de prelucrări simple sau structurate care suntefectuate în ordinea în care sunt specificate;

− Alternative. Sunt prelucrări caracterizate prin faptul că în funcție derealizarea sau nerealizarea unei condiții se alege una din două sau mai multevariante de prelucrare;

− Repetitive. Sunt prelucrări caracterizate prin faptul că aceeașiprelucrare (simplă sau structurată) este repetată cât timp este îndeplinită oanumită condiție.

Page 10: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

1. Noţiunea de algoritm

•Concluzia care rezultă este că:

Un algoritm este independent de tipul de limbaj în care este

transpus sau de tipul de calculator pe care este executat.

Page 11: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

2. Reprezentarea unui algoritm

Modul de descriere a unui algoritm, esteindependent de un limbaj de programare,existând două metode clasice:

1. metoda schemei logice

2. metoda pseudocod-ului

Page 12: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

3. Elementele programării structurate

•Structurile de control de bază – cu ajutorul lor se pot descrie algoritmii: secvența, decizia alternativă binară (if) și structura repetitivă cu test inițial (while)

•Care sunt cele derivate?

•Cum sunt reprezentate cu scheme logice sau pseudocod?

Page 13: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

3. Elementele programării structurate•Prin generalizare, putem spune că programarea este arta şi

tehnica realizării de algoritmi, care ulterior vor fi descrişi şiimplementaţi în programe pe calculator, scrise într-un limbajde programare.

•Programarea pe baza celor trei structuri (şi a celor auxiliare)se numeşte programare structurată.

• Informaticienii Böhm şi Jacopini au formulat un principiu alprogramării structurate, sub forma unei teoreme: cele treistructuri (secvenţa, decizia şi repetiţia condiţionată anterior)sunt suficiente pentru a descrie orice algoritm.

Page 14: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

3. Elementele programării structurate

Teorema programării structurate a lui Böhm şi Jacopinicare se poate enunţa astfel:

Orice schemă logică nestructurată poate fi înlocuită cuuna echivalentă, dar structurată, prin adăugarea de noiacţiuni şi condiţii.

Aşadar, orice program poate fi pus sub o formăstructurată, adică să conţină doar structurile de bazăşi/sau structurile auxiliare, prin utilizarea unor variabileboolene asociate unor funcţii suplimentare.

Page 15: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

3. Elementele programării structurateExemplu:Algoritmul următor determină cel mai mic element (notat min) din şirul de n elemente X și este într-o formă nestructurată

Citeste n, Xi = 1min = X(0)

A: dacă i>n atuncitreci la pasul B -> instrucțiune de salt necondiționată, nu e secvențială

altfeldacă X(i)<min atunci

min = X(i)i = i+1treci la pasul A

B: Scrie min

Page 16: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

3. Elementele programării structurateExemplu:

Algoritmul rescris într-o formă structurată, utilizând structurile de bază

Citeste n, X

min = X(0)

i = 1

cât timp i <= n execută

dacă X(i)<min atunci

min = X(i);

i = i+1

Scrie min

Cum se rescrie algoritmul folosind o structură repetitivă derivată?

Page 17: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

4. Concepția unui algoritm

Pași necesari:

1. Problema care va fi rezolvată, trebuie citită cuatenţie.

2. Apoi se stabilesc prelucrările care sunt necesareobţinerii rezultatelor dorite.

Pentru a crea un algoritm eficient trebuieevidenţiate datele de intrare şi datele de ieşire.

Page 18: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5. Exemple de algoritmi elementari

5.1 Algoritmi cu structura de decizie

5.2. Algoritmi cu structura repetitivă cu test initial

5.3. Algoritmi cu structura repetitivă cu test final

5.4. Algoritmi cu structura repetitivă cu numărcunoscut de pași

Page 19: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.1 Algoritmi cu structura de decizie

Să se citească trei valori naturale a, b și c. Să se scrie un algoritm care să verifice dacă cele trei numere sunt sau nu numere pitagorice.

Precizare: Numim numere pitagorice, trei valori careîndeplinesc Teorema lui Pitagora, adică verifică una dincondițiile:

𝑎2= 𝑏2 + 𝑐2

𝑏2= 𝑎2 + 𝑐2

𝑐2= 𝑏2 + 𝑎2

Page 20: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.1 Algoritmi cu structura de decizie

Pas 1: Stabilim care sunt datele de intrare, adică celecare vor fi prelucrate cu ajutorul algoritmului,împreunăcu datele de ieşire.

În cazul problemei date, avem:

•Date de intrare: a, b și c numere naturale

•Date de ieşire: mesaj corespunzător

Page 21: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.1 Algoritmi cu structura de decizie

Pas 2: Analiza problemeiStabilim condiţiile pe care trebuie să le îndeplineascădatele de intrare pentru a fi prelucrate în cadrulalgoritmului.În cadrul problemei pe care o avem de rezolvat, verificămcondiţiile care trebuie îndeplinite de cele trei valori:1) Dacă 𝑎2 = 𝑏2 + 𝑐2, atunci sunt numere pitagorice.•Sau2) Dacă 𝑏2 = 𝑎2 + 𝑐2, atunci sunt numere pitagorice.•Sau3) Dacă 𝑐2 = 𝑎2 + 𝑏2, atunci sunt numere pitagorice.

Page 22: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.1 Algoritmi cu structura de decizie

citeşte a,b,c

dacă 𝑎2 = 𝑏2 + 𝑐2 sau 𝑏2 = 𝑎2 + 𝑐2 sau 𝑐2 = 𝑎2 + 𝑏2 atunci

scrie ‘Numere pitagorice’

altfel

scrie ‘NU SUNT nr. pitagorice’

sfarşit dacă

stop

Page 23: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.2 Algoritmi cu structura repetitivă cu test inițial

Să se citească un număr natural n. Să se scrie un algoritmcare verifică dacă numărul dat este sau nu număr prim.

Un număr n este prim dacă are ca divizori doar valorile 1 şi n.

Exemplu:

Pentru n = 7, se va afişa mesajul ‘numărul este prim’, iar pentru n = 22, se va afişa mesajul ‘numărul NU este prim’.

Page 24: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.2 Algoritmi cu structura repetitivă cu test inițial

Pas 1: Stabilim care sunt datele de intrare, adică celecare vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire.

În cazul problemei date, avem:

•Date de intrare: n număr natural

•Date de ieşire: număr prim sau nu

Page 25: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.2 Algoritmi cu structura repetitivă cu test inițial

Pas 2: Analiza problemei:

1) Vom presupune, la începutul problemei, că numărul n dat esteprim, şi vom specifica acest lucru cu ajutorul unei variabile de tiplogic, căreia îi vom da valoarea ‘adevărat’.

2) Apoi vom evalua, pe rând, toate valorile începând cu valoarea 2şi până la n-1, ca să determinăm dacă sunt divizori ai numărului ndat.

3) Dacă găsim un singur divizor printre aceste numere, atunci vomacorda valoarea ‘fals’ variabilei de tip logic de la începutulalgoritmului.

4) La sfârşit vom verifica care este valoarea variabilei de tip logic şivom afişa un mesaj corespunzător.

Page 26: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.2 Algoritmi cu structura repetitivă cu test inițial

natural n, ilogic pciteşte nP = adevărati = 2cât timp i <= n-1 execută

dacă n % i = 0 atuncip = fals

sfârşit dacăi = i + 1

sfârşit cât timp->

dacă p = adevărat atunciScrie ‘Numarul este prim’

altfelscrie ‘Numarul NU este prim’

sfârşit dacă

Stop

Page 27: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Să se scrie un program care verifică dacă un număr n este perfect sau nu.

Un număr perfect este egal cu suma divizorilor lui, inclusiv 1 (exemplu: 6 = 1 + 2 + 3).

Exemplu:

•Pentru n = 28, se va afişa mesajul

Numar perfect (divizorii lui 28 sunt 1, 2, 4, 7, 14)

Page 28: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Pas 1: Stabilim care sunt datele de intrare, adică celecare vor fi prelucrate cu ajutorul algoritmului,împreună cu datele de ieşire.

În cazul problemei date, avem:

•Date de intrare: n număr natural

•Date de ieşire: mesaj corespunzător

Page 29: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Pas 2: Analiza problemei

1) La începutul problemei, vom inițializa o variabilă de tip suma cu valoarea 0.

2) Pentru fiecare valoare i de la 1 la n-1 vom verifica dacăi este divizor al numarului n. Daca este divizor atunci il insumam la valoarea s.

3) Verificam daca suma obtinuta este egala cu numarul n. Daca da atunci scriem mesajul

‘Numarul este perfect’.

Page 30: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

natural n, i, sciteşte ni = 1s = 0repetă

dacă n % i = 0 atuncis = s + i

sfârşit dacăi = i + 1

până când i > n-1 ->

dacă s = n atunci

scrie ‘Este perfect’

altfel

scrie ‘NU este perfect’

sfârşit dacă

stop

Page 31: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Fie şirul lui Fibonacci, definit astfel:

f(0)=0, f(1)=1,

f(n)=f(n-1)+f(n-2) în cazul în care n>1.

Să se scrie un algoritm care implementează valorileşirului lui Fibonacci.

Exemplu:

Pentru n = 7 se vor afişa valorile 1, 1, 2, 3, 5, 8, 13.

Page 32: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Pas 1: Stabilim care sunt datele de intrare, adică celecare vor fi prelucrate cu ajutorul algoritmului,împreunăcu datele de ieşire.

În cazul problemei date, avem:

•Date de intrare: n număr natural

•Date de ieşire: numerele din şirul lui Fibonacci

Page 33: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Pas 2: Analiza problemei

La începutul problemei, vom iniţializa două valori

(a şi b) cu primele două elemente ale şirului luiFibonacci, adică cu valori de 1.

Apoi, într-un ciclu repetitiv vom calcula cu ajutorul uneia treia valori (variabila c) suma lor, iar apoi vom da:

valoarea b varibilei a

şi valoarea c variabilei b

Page 34: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

natural n, i, a, b, cciteşte ni = 1a = 1b = 1repetă

c = a + bscrie ca = bb = ci = i + 1

până când i > n-2stop

Page 35: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Fie un număr natural n de cinci cifre. Să se scrieun algoritm care să calculeze suma cifrelornumărului dat.

Exemplu:

Pentru n = 2178, se va afişa valoarea

s = 2+1+7+8=18

Page 36: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Pas 1: Stabilim care sunt datele de intrare, adicăcele care vor fi prelucrate cu ajutorul algoritmului,împreună cu datele de ieşire.

În cazul problemei date, avem:

•Date de intrare: n număr natural

•Date de ieşire: s = suma cifrelor

Page 37: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

Pas 2: Analiza problemei

La începutul problemei, vom iniţializa valoarea sumei cifrelor numărului n dat cu 0.

Apoi, într-un ciclu repetitiv vom calcula

- suma cifrelor numărului,

- ştiind că o cifră a unui număr scris în baza 10 este dată de n%10,

- iar câtul este dat de n/10.

Page 38: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.3 Algoritmi cu structura repetitivă cu test final

natural n, s

citeşte n

s = 0

repetă

s = s + n%10

n = n/10

până când n = 0

scrie s

stop

Ultimacifra a lui n

Numărul fără ultima

cifră

Page 39: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

Se citesc două numere întregi a şi b. Să se realizeze in pseudocod un algoritm care să verifice dacă cele douanumere sunt prietene.Spunem ca două numere sunt prietene dacă suma divizorilorproprii ai unui număr este egală cu celălalt număr şi invers.

Exemplu:Pentru n = 220, si m = 284 se vor afişa valorile:Divizorii lui 220, sunt 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 și 110. Suma este 284Divizorii lui 284, sunt 1, 2, 4, 71 și 142. Suma lor este 220

Page 40: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

Pas 1: Stabilim care sunt datele de intrare, adicăcele care vor fi prelucrate cu ajutorul algoritmului, împreună cu datele de ieşire.

În cazul problemei date, avem:

•Date de intrare: n si m numere naturale

•Date de ieşire: numerele sunt sau nu prietene

Page 41: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

Pas 2: Analiza problemei

La începutul problemei, vom iniţializa valoarea unei variabilepentru suma divizorilor lui n cu 0, iar apoi valoarea unei variabilepentru suma divizorilor lui m cu 0.

Apoi, într-un ciclu repetitiv avand n/2 pasi vom calcula sumadivizorilor lui n.

Apoi, într-un ciclu repetitiv avand m/2 pasi vom calcula sumadivizorilor lui m.

La sfarsit vom verifica daca suma divizorilor primului numareste egală cu cel de-al doilea număr, iar suma divizorilor celui de-al doilea numar este egală cu primul număr

Page 42: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

natural n, m, i, j, suma_n, suma_m

citeşte n

suma_n = 0

pentru i=1,n/2 execută

daca n%i=0 atunci

suma_n = suma_n + 1

sfârșit daca

sfârșit pentru

suma_m = 0

pentru j=1,m/2 execută

dacă m%j=0 atunci

suma_m = suma_m + j

sfârșit dacă

sfârșit pentru

dacă suma_n = m AND suma_m=n atunci

scrie “Numere prietene”

altfel

scrie “Numere neprietene”

sfârșit dacă

stop

Page 43: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

Să se calculeze suma numerelor naturale cuprinseintre două numere date (dintr-un interval).

Exemplu:

Pentru 3 si 6 reprezentand capetele intervalului, se va afisa valoarea 9 reprezentand suma.

Page 44: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

Pas 1: Stabilim care sunt datele de intrare, adicăcele care vor fi prelucrate cu ajutorul algoritmului,împreună cu datele de ieşire.

În cazul problemei date, avem:

•Date de intrare: a si b numere naturale

•Date de ieşire: suma numerelor aflate inintervalul (a,b)

Page 45: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

Pas 2: Analiza problemei

La începutul problemei, vom iniţializa cu 0variabila în care vom reține valoarea sumeinumerelor din intervalul (a,b).

Apoi, într-un ciclu repetitiv pornind de la a+1 și

mergand pana la b-1 vom aduna la suma toatevalorile din intervalul dat.

La sfârșit vom avea valoarea suma

Page 46: ALGORITMI - cadredidactice.ub.rocadredidactice.ub.ro/simonavarlan/files/2017/02/Curs-2.pdf · Exemple de algoritmi elementari 5.1 Algoritmi cu structura de decizie 5.2. Algoritmi

5.4 Algoritmi cu structura repetitivă cu număr cunoscut de pași

natural a, b, i, suma

citeşte a,b

suma = 0

pentru i=a+1,b-1 execută

suma = suma + i

sfârșit pentru

scrie suma

stop


Recommended