curs2-PC
-
Upload
emanuelpredescu -
Category
Documents
-
view
7 -
download
3
description
Transcript of curs2-PC
Programarea calculatoarelor
Universitatea “Constantin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie
Departamentul de Automatică, Energie şi Mediu
Lect.dr. Adrian Runceanu
2. ALGORITMI
2.1. Algoritmi elementari (numai cu operatia de atribuire)
2.2. Algoritmi cu structura de decizie 2.3. Algoritmi cu structura repetitivă cu test iniţial 2.4. Algoritmi cu structura repetitivă cu test final 2.5. Algoritmi cu structura repetitivă cu număr
cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 3
2.1. Algoritmi elementari
PROBLEMA 1 Să se calculeze perimetrul şi aria unui dreptunghi,
ştiind laturile sale. 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: l şi L numere reale ce reprezintă laturile
dreptunghiului. Date de ieşire: p şi A numere reale ce reprezintă
perimetrul, respectiv aria dreptunghiului. 20.10.2013 Curs - Programarea calculatoarelor 4
2.1. Algoritmi elementari
Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le
îndeplinească datele de intrare pentru a fi prelucrate în cadrul algoritmului.
În cadrul problemei pe care o avem de rezolvat, cunoaştem formulele pentru calculul perimetrului, respectiv ariei unui dreptunghi dacă se stiu laturile sale:
Perimetru = 2*( latime + Lungime ) Aria = latime * Lungime
20.10.2013 Curs - Programarea calculatoarelor 5
2.1. Algoritmi elementari
Pas 3: Scrierea
algoritmului în pseudocod:
20.10.2013 Curs - Programarea calculatoarelor 6
real l, L, p, A
citeşte l, L
p <- 2 * ( l + L )
scrie ‘Perimetrul dreptunghiului este ‘, p
A <- l * L
scrie ‘Aria dreptunghiului este’, A
stop
2.1. Algoritmi elementari PROBLEMA 2 Sa se calculeze si sa se afiseze valoarea distantei
intre doua puncte, dandu-se coordonatele acestora: A(x1, y1) si B(x2, y2).
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: x1, x2, y1 şi y2 numere reale ce reprezintă
coordonatele celor doua puncte. Date de ieşire: d = distanta intre cele doua puncte 20.10.2013 Curs - Programarea calculatoarelor 7
2.1. Algoritmi elementari
Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le
îndeplinească datele de intrare pentru a fi prelucrate în cadrul algoritmului.
În cadrul problemei pe care o avem de rezolvat, cunoaştem formula de calcul pentru aflarea distantei dintre doua puncte in plan:
20.10.2013 Curs - Programarea calculatoarelor 8
)()()()( 21212121 yyyyxxxxd
2.1. Algoritmi elementari
Pas 3: Scrierea
algoritmului în pseudocod:
20.10.2013 Curs - Programarea calculatoarelor 9
real x1, x2, y1, y2, d
citeşte x1, y1, x2, y2
scrie ‘Distanta dintre cele doua puncte este ’, d
stop
)21
()21
()21
()21
( yyyyxxxxd
2.1. Algoritmi elementari
PROBLEMA 3 Se dau două numere reale x şi y. Să se calculeze
următoarele expresii: A = 2 + x - y B = x * A + y C = A – 2 * B + x Pas 1: Stabilim care sunt datele de intrare, şi ce tip de date
reprezintă, împreună cu datele de ieşire. În cazul problemei date, avem: Date de intrare: x şi y numere reale Date de ieşire: A, B şi C numere reale
20.10.2013 Curs - Programarea calculatoarelor 10
2.1. Algoritmi elementari
Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le
îndeplinească datele de intrare pentru a fi prelucrate în cadrul algoritmului.
În cadrul problemei pe care o avem de rezolvat, cunoaştem formulele pentru fiecare expresie:
A = 2 + x - y B = x * A + y C = A – 2 * B + x
20.10.2013 Curs - Programarea calculatoarelor 11
2.1. Algoritmi elementari
Pas 3: Scrierea
algoritmului în pseudocod:
20.10.2013 Curs - Programarea calculatoarelor 12
real x, y, A, B, C
citeşte x, y
A <- 2 + x - y
B <- x * A + y
C <- A – 2 * B + x
scrie ‘Valoarea expresiei A este ‘, A
scrie ‘Valoarea expresiei B este ‘, B
scrie ‘Valoarea expresiei C este ‘, C
stop
2. ALGORITMI
2.1. Algoritmi elementari numai cu operatia de atribuire)
2.2. Algoritmi cu structura de decizie 2.3. Algoritmi cu structura repetitivă cu test iniţial 2.4. Algoritmi cu structura repetitivă cu test final 2.5. Algoritmi cu structura repetitivă cu număr
cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 13
2.2. Algoritmi cu structura de decizie
PROBLEMA 4 Se dau trei numere întregi a, b si c. Să se scrie un
algoritm care să se determine maximul și minimul acestor valori.
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, b și c numere întregi Date de ieșire: min, respectiv max 20.10.2013 Curs - Programarea calculatoarelor 14
2.2. Algoritmi cu structura de decizie
Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le
îndeplinească datele de intrare pentru a fi prelucrate în cadrul algoritmului.
i) Comparăm primele două numere (a și b). În funcție de
care este mai mic sau mai mare am determinat minimul și maximul celor două valori.
ii) Comparăm valorile de minim, respectiv de maxim cu cel de-al treilea număr si astfel vom determina cea mai mică, respectiv cea mai mare valoare dintre cele trei date.
20.10.2013 Curs - Programarea calculatoarelor 15
2.2. Algoritmi cu structura de decizie
Pas 3: Scrierea
algoritmului în pseudocod:
20.10.2013 Curs - Programarea calculatoarelor 16
intreg a, b, c, min, max
citeşte a, b, c
dacă a < b atunci
min <- a
max <- b
altfel
min <- b
max <- a
sfârşit dacă
dacă c < min atunci
min <- c
sfarşit dacă
dacă c > max atunci
max <- c
sfarşit dacă
scrie min, max
stop
2.2. Algoritmi cu structura de decizie
PROBLEMA 5 Să se calculeze valoarea funcţiei f(x), ştiind că x este un număr real
introdus de la tastatură:
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: x număr real Date de iesire: f număr real, reprezentând valoarea funcţiei date
20.10.2013 Curs - Programarea calculatoarelor 17
0,2
]0,7(,30
]7,(,206
)(
xdacax
xdacax
xdacax
xf
2.2. Algoritmi cu structura de decizie
Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le
îndeplinească datele de intrare pentru a fi prelucrate în cadrul algoritmului. Căutăm cazurile particulare.
În cadrul problemei pe care o avem de rezolvat, verificăm condiţiile date în expresia funcţiei:
1) Dacă x <= -7, atunci funcţia are valoarea: -6x + 20 2) Daca x > -7 si x <= 0, atunci funcţia are valoarea:
x+30 3) Daca x > 0, atunci funcţia are valoarea: sqrt(x) + 2 20.10.2013 Curs - Programarea calculatoarelor 18
2.2. Algoritmi cu structura de decizie
Pas 3: Scrierea
algoritmului în pseudocod:
20.10.2013 Curs - Programarea calculatoarelor 19
real x, f
citeşte x
dacă x <= -7 atunci
f <- -6 * x + 20
altfel
dacă x > -7 şi x <= 0 atunci
f <- x + 30
altfel
f <- sqrt(x) + 2
sfârşit dacă
sfarşit dacă
scrie f
stop
2.2. Algoritmi cu structura de decizie
PROBLEMA 6 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 din condițiile:
20.10.2013 Curs - Programarea calculatoarelor 20
222
222
222
bac
cab
cba
2.2. Algoritmi cu structura de decizie
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, b și c numere naturale Date de ieşire: mesaj corespunzător
20.10.2013 Curs - Programarea calculatoarelor 21
2.2. Algoritmi cu structura de decizie
Pas 2: Analiza problemei Stabilim condiţiile pe care trebuie să le îndeplinească
datele de intrare pentru a fi prelucrate în cadrul algoritmului.
În cadrul problemei pe care o avem de rezolvat, verificăm condiţiile care trebuie îndeplinite de cele trei valori:
1) Dacă 𝒂𝟐 = 𝒃𝟐 + 𝒄𝟐, atunci sunt numere pitagorice. Sau 2) Daca 𝒃𝟐 = 𝒂𝟐 + 𝒄𝟐, atunci sunt numere pitagorice. Sau 3) Daca 𝒄𝟐 = 𝒂𝟐 + 𝒃𝟐, atunci sunt numere pitagorice. 20.10.2013 Curs - Programarea calculatoarelor 22
2.2. Algoritmi cu structura de decizie
Pas 3: Scrierea
algoritmului în pseudocod:
20.10.2013 Curs - Programarea calculatoarelor 23
natural a,b,c citeşte a,b,c dacă 𝑎2 = 𝑏2 + 𝑐2 atunci
scrie ‘Numere pitagorice’ altfel dacă 𝑏2 = 𝑎2 + 𝑐2 atunci scrie ‘Numere pitagorice’ altfel dacă 𝑐2 = 𝑎2 + 𝑏2 atunci
scrie ‘Numere pitagorice’ altfel scrie ‘NU SUNT nr. pitagorice’ sfârşit dacă sfarşit dacă sfarşit dacă stop
2.2. Algoritmi cu structura de decizie
Varianta II-a Pas 3: Scrierea
algoritmului în pseudocod:
20.10.2013 Curs - Programarea calculatoarelor 24
natural a,b,c 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
2. ALGORITMI
2.1. Algoritmi elementari (numai cu operatia de atribuire)
2.2. Algoritmi cu structura de decizie 2.3. Algoritmi cu structura repetitivă cu test iniţial 2.4. Algoritmi cu structura repetitivă cu test final 2.5. Algoritmi cu structura repetitivă cu număr
cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 25
2.3. Algoritmi cu structura repetitivă cu test iniţial
PROBLEMA 7 Să se citească un număr natural n. Să se scrie un
algoritm care afişează toţi divizorii numărului dat. Exemplu:
20.10.2013 Curs - Programarea calculatoarelor 26
Pentru n = 12, mulţimea divizorilor este formată din valorile 1, 2, 3, 4, 6, 12.
2.3. Algoritmi cu structura repetitivă cu test iniţial
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: divizorii numărului n
20.10.2013 Curs - Programarea calculatoarelor 27
2.3. Algoritmi cu structura repetitivă cu test iniţial
Pas 2: Analiza problemei În cadrul problemei pe care o avem de rezolvat,
verificăm condiţia ca un număr să fie divizor al altui număr şi anume:
i este divizor al numărului n dacă se împarte exact la el, adică dacă este adevărată expresia n % i = 0.
Pentru a găsi toţi divizorii numărului n dat, vom da valori lui i, pornind de la valoarea 1 până la valoarea n.
Deci vom utiliza o structură repetitivă.
20.10.2013 Curs - Programarea calculatoarelor 28
2.3. Algoritmi cu structura repetitivă cu test iniţial
20.10.2013 Curs - Programarea calculatoarelor 29
Pas 3:
Scrierea algoritmului în pseudocod:
natural n, i citeşte n i <- 1 cât timp i <= n execută dacă n % i = 0 atunci scrie i sfârşit dacă i <- i + 1 sfârşit cât timp stop
2.3. Algoritmi cu structura repetitivă cu test iniţial
PROBLEMA 8 Să se citească un număr natural n. Să se scrie un
algoritm care 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:
20.10.2013 Curs - Programarea calculatoarelor 30
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’.
2.3. Algoritmi cu structura repetitivă cu test iniţial
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: număr prim sau nu
20.10.2013 Curs - Programarea calculatoarelor 31
2.3. Algoritmi cu structura repetitivă cu test iniţial
Pas 2: Analiza problemei: 1) Vom presupune, la începutul problemei, că numărul n dat
este prim, şi vom specifica acest lucru cu ajutorul unei variabile de tip logic, 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 n dat.
3) Dacă găsim un singur divizor printre aceste numere, atunci vom acorda valoarea ‘fals’ variabilei de tip logic de la începutul algoritmului.
4) La sfârşit vom verifica care este valoarea variabilei de tip logic şi vom afişa un mesaj corespunzător.
20.10.2013 Curs - Programarea calculatoarelor 32
2.3. Algoritmi cu structura repetitivă cu test iniţial
20.10.2013 Curs - Programarea calculatoarelor 33
Pas 3:
Scrierea algoritmului în pseudocod:
natural n, i logic p citeşte n p <- adevărat i <- 2 cât timp i <= n-1 execută dacă n % i = 0 atunci p <- fals sfârşit dacă i <- i + 1 sfârşit cât timp dacă p = adevărat atunci scrie ‘Numarul este prim’ altfel scrie ‘Numarul NU este prim’ sfârşit dacă stop
2.3. Algoritmi cu structura repetitivă cu test iniţial
PROBLEMA 9 Să se calculeze suma şi produsul primelor n
numere naturale, n fiind introdus de la tastatură.
Exemplu:
20.10.2013 Curs - Programarea calculatoarelor 34
Pentru n = 5, se vor afişa valorile s = 1 + 2 + 3 + 4 + 5 = 15 p = 1 * 2 * 3 * 4 * 5 = 120
2.3. Algoritmi cu structura repetitivă cu test iniţial
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 şi p
20.10.2013 Curs - Programarea calculatoarelor 35
2.3. Algoritmi cu structura repetitivă cu test iniţial
Pas 2: Analiza problemei La începutul problemei, vom iniţializa două
valori, s pentru sumă cu 0 şi p pentru produs cu 1.
Apoi vom verifica, pe rând, toate valorile naturale de la 1 la n şi le vom însuma, respectiv înmulţi.
Soluţiile obţinute le vom afişa.
20.10.2013 Curs - Programarea calculatoarelor 36
2.3. Algoritmi cu structura repetitivă cu test iniţial
20.10.2013 Curs - Programarea calculatoarelor 37
Pas 3:
Scrierea algoritmului în pseudocod:
natural n, i, s, p citeşte n s <- 0 p <- 1 i <- 1 cât timp i <= n execută s <- s + i p <- p * i i <- i + 1 sfârşit cât timp scrie ‘Suma numerelor este’, s scrie ‘Produsul numerelor este’, p stop
2. ALGORITMI
2.1. Algoritmi elementari (numai cu operatia de atribuire)
2.2. Algoritmi cu structura de decizie 2.3. Algoritmi cu structura repetitivă cu test iniţial 2.4. Algoritmi cu structura repetitivă cu test final 2.5. Algoritmi cu structura repetitivă cu număr
cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 38
2.4. Algoritmi cu structura repetitivă cu test final
PROBLEMA 10 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:
20.10.2013 Curs - Programarea calculatoarelor 39
Pentru n = 28, se va afişa mesajul Numar perfect (divizorii lui 28 sunt 1,2,4,7,14)
2.4. 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: mesaj corespunzător
20.10.2013 Curs - Programarea calculatoarelor 40
2.4. Algoritmi cu structura repetitivă cu test final
Pas 2: Analiza problemei 1) La începutul problemei, vom verifica initializa o
variabila de tip suma cu valoarea 0. 2) Pentru fiecare valoare i de la 1 la n-1 o 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’.
20.10.2013 Curs - Programarea calculatoarelor 41
2.4. Algoritmi cu structura repetitivă cu test final
20.10.2013 Curs - Programarea calculatoarelor 42
Pas 3:
Scrierea algoritmului în pseudocod:
natural n, i, s citeşte n i <- 1 s<- 0 repetă dacă n % i = 0 atunci s <- s + i sfârşit dacă i <- i + 1 până când i > n-1 dacă s = n atunci scrie ‘Numarul este perfect’ altfel scrie ‘Numarul NU este perfect’ sfârşit dacă stop
2.4. Algoritmi cu structura repetitivă cu test final
PROBLEMA 11 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:
20.10.2013 Curs - Programarea calculatoarelor 43
Pentru n = 7, se vor afişa valorile 1, 1, 2, 3, 5, 8, 13.
2.4. 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: numerele din şirul lui Fibonacci
20.10.2013 Curs - Programarea calculatoarelor 44
2.4. 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 lui Fibonacci, adică cu valori de 1.
Apoi, într-un ciclu repetitiv vom calcula cu ajutorul unei a treia valori (variabila c) suma lor şi vom da următoarele valori variabilelor a şi b.
20.10.2013 Curs - Programarea calculatoarelor 45
2.4. Algoritmi cu structura repetitivă cu test final
20.10.2013 Curs - Programarea calculatoarelor 46
Pas 3:
Scrierea algoritmului în pseudocod:
natural n, i, a, b, c citeşte n i <- 1 a <- 1 b <- 1 repetă c <- a + b scrie c a <- b b <- c i <- i + 1 până când i > n-2 stop
2.4. Algoritmi cu structura repetitivă cu test final
PROBLEMA 12 Fie un număr natural n de cinci cifre. Să se
scrie un algoritm care să calculeze suma cifrelor numărului dat.
Exemplu:
20.10.2013 Curs - Programarea calculatoarelor 47
Pentru n = 2178, se va afişa valoarea s = 2+1+7+8=18.
2.4. 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
20.10.2013 Curs - Programarea calculatoarelor 48
2.4. 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.
20.10.2013 Curs - Programarea calculatoarelor 49
2.4. Algoritmi cu structura repetitivă cu test final
20.10.2013 Curs - Programarea calculatoarelor 50
Pas 3:
Scrierea algoritmului în pseudocod:
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
Numarul fara ultima
cifra
Ultima cifra a lui n
2. ALGORITMI
2.1. Algoritmi elementari (numai cu operatia de atribuire)
2.2. Algoritmi cu structura de decizie 2.3. Algoritmi cu structura repetitivă cu test iniţial 2.4. Algoritmi cu structura repetitivă cu test final 2.5. Algoritmi cu structura repetitivă cu număr
cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 51
2.5. Algoritmi cu structura repetitivă cu număr cunoscut de pași
PROBLEMA 13 Se citesc două numere întregi a şi b. Să se realizeze
in pseudocod un algoritm care să verifice dacă cele doua numere sunt prietene.
Spunem ca două numere sunt prietene dacă suma divizorilor proprii ai unui număr este egală cu celalalt şi invers.
Exemplu:
20.10.2013 Curs - Programarea calculatoarelor 52
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 Divizorii lui 284, sunt 1, 2, 4, 71 și 142
2.5. 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
20.10.2013 Curs - Programarea calculatoarelor 53
2.5. Algoritmi cu structura repetitivă cu număr cunoscut de pași
Pas 2: Analiza problemei La începutul problemei, vom iniţializa valoarea unei
variabile pentru suma divizorilor lui n cu 0, iar apoi valoarea unei variabile pentru suma divizorilor lui m cu 0.
Apoi, într-un ciclu repetitiv avand n/2 pasi vom calcula suma divizorilor lui n.
Apoi, într-un ciclu repetitiv avand m/2 pasi vom calcula suma divizorilor lui m.
La sfarsit vom verifica daca cele suma divizorilor primului numar este egala cu cel de-al doilea numar, iar suma divizorilor celui de-al doilea numar este egala cu primul numar.
20.10.2013 Curs - Programarea calculatoarelor 54
2.5. Algoritmi cu structura repetitivă cu număr cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 55
Pas 3:
Scrierea algoritmului în pseudocod:
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 + i sfârșit daca sfârșit pentru
2.5. Algoritmi cu structura repetitivă cu număr cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 56
Pas 3:
Scrierea algoritmului în pseudocod:
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
2.5. Algoritmi cu structura repetitivă cu număr cunoscut de pași
PROBLEMA 14 Se citesc pe rând, n numere naturale. Să se
realizeze, în pseudocod, un algoritm care să determine cel mai mare număr dintre cele n date.
Exemplu:
20.10.2013 Curs - Programarea calculatoarelor 57
Pentru n = 10, si valorile următoare: -2, 12, 56, -123, 34, 7, -45, 90, 23, 6 Valoarea maximă este 90
2.5. 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 număr natural, n numere
naturale Date de ieşire: valoarea maximă
20.10.2013 Curs - Programarea calculatoarelor 58
2.5. Algoritmi cu structura repetitivă cu număr cunoscut de pași
Pas 2: Analiza problemei La începutul problemei, vom iniţializa o variabilă, în
care vom reține valoarea maximă, cu o valoare foarte mică.
Apoi, într-un ciclu repetitiv având n pași vom compara, pe rând cele n valori citite de la tastatură și vom reține de fiecare valoare mai mare decât cea din variabila max.
La sfârșit vom avea valoarea cea mai mare în variabila max.
20.10.2013 Curs - Programarea calculatoarelor 59
2.5. Algoritmi cu structura repetitivă cu număr cunoscut de pași
20.10.2013 Curs - Programarea calculatoarelor 60
Pas 3:
Scrierea algoritmului în pseudocod:
natural n, i, max, x citeşte n max <- -10000 pentru i=1,n execută citește x daca x>max atunci max <- x sfârșit daca sfârșit pentru scrie max stop