Sunteți pe pagina 1din 25

Clasa a IX-a

tiinele naturii
Ce sunt acetia ?
Algoritmii elementari ofer metode de rezolvare pentru
probleme clasice
ing.Lungu Iudit
2
1. Algoritmi pentru interschimbare
Varianta 1 cu variabil intermediar
real a, b, x;
nceput
citete a, b;
xa;
ab;
bx;
scrie a, b;
sfrit
ing.Lungu Iudit
3
Varianta 2 fr variabil intermediar
real a, b;
nceput
citete a, b;
aa-b;
ba+b;
ab-a;
scrie a, b;
sfrit
ing.Lungu Iudit
4
2. Algoritm pentru determinarea maximului
(minimului)
Algoritmul determin valoarea maxim (minim) dintr-un ir
de numere introduse de la tastatur.
Modalitate de lucru:
Se atribuie primului element valoarea max (min)
Apoi se compar acesta cu fiecare element din ir
ing.Lungu Iudit
5
Varianta 1 se tie n
ntreg a, max, n, i;
nceput
citete n, a;
max a ;
pentru i 2, n execut;
citete a;
dac a max
atunci maxa;
sfrit_dac;
sfrit_pentru;
scrie max;
sfrit
ing.Lungu Iudit
6
Varianta 2 pn la introducerea lui 0
ntreg a, max;
nceput
citete a;
max a ;
ct timp a0 execut;
dac a max
atunci maxa;
sfrit_dac;
sfrit_ct_timp;
scrie max;
sfrit
ing.Lungu Iudit
7
3. Algoritmi pentru prelucrarea cifrelor unui
numr
a) Algoritm pentru extragerea cifrelor unui numr
b) Algoritm pentru compunerea unui numr din cifrele sale
c) Algoritm pentru determinarea inversului unui numr
ing.Lungu Iudit
8
a) Algoritm pentru extragerea cifrelor unui
numr
Se determin cifrele unui numr prin extragerea pe rnd a
ultimei cifre a numrului prin n mod 10 i eliminarea din
numr a cifrei extrase prin n div 10 pn la epuizarea tuturor
cifrelor
ntreg n, c;
nceput
citete n;
ct timp n0 execut;
cn mod 10;
scrie c;
nn div 10;
sfrit_ct_timp;
sfrit
ing.Lungu Iudit
9
b) Algoritm pentru compunerea unui numr
din cifrele sale
Se determin numrul format din cifrele introduse de la
tastatur, primul numr devenind cifra cea mai semnificativ.
Algoritmul utilizeaz reprezentarea unui numr n baza 10
ing.Lungu Iudit
10
c) Algoritm pentru determinarea inversului
unui numr
Algoritmul determin inversul unui numr prin extragerea pe
rnd a fiecrei cifre a unui numr (ncepnd cu cifra unitilor)
i compunerea unui nou numr n care aceasta devine cifra
cea mai semnificativ
ntreg n, inv;
nceput
citete n;
ct timp n0 execut;
invinv*10 + n mod 10;
nn div 10;
sfrit_ct_timp;
scrie inv;
sfrit
ing.Lungu Iudit
11
4. Algoritmi pentru determinarea cmmdc
Varianta 1 Algoritmul lui Euclid, care atribuie lui b, restul
mpririi lui a la b, iar lui a vechea valoare a lui b (b0)
ntreg a, b, r;
nceput
citete a, b;
ct timp b0 execut;
ra mod b;
ab;
br;
sfrit_ct_timp;
Scrie cmmdc=, a;
Sfrit
ing.Lungu Iudit
12
Sapt.28
Varianta 2 algoritmul de scdere repetat
ntreg a, b;
nceput
citete a, b;
ct timp ab execut;
dac a>b
atunci aa - b;
altfel bb - a;
sfrsit_dac;
sfrit_ct_timp;
Scrie cmmdc= , a;
sfrit
ing.Lungu Iudit
13
5. ALGORITMI PENTRU TESTAREA UNUI NR. PRIM
Const n generarea tuturor numerelor naturale >=2 i
<=sqrt(n) i verificarea dac acestea l divid pe n.
Dac cel puin unul dintre ele l divid pe n nr nu este prim.
ing.Lungu Iudit
14
ntreg n,i;
logic x;
inceput
citeste n;
xT; i 2;
cat timp i<=sqrt(n) and x executa
daca n mod i =0
atunci x F;
altfel i i+1;
sfarsit_daca;
sfarsit_cat_timp;
daca x
atunci scrie numarul este prim;
altfel scrie numarul nu este prim;
sfarsit_daca;
sfarsit
ing.Lungu Iudit
15
Ciurul lui Eratostene
ing.Lungu Iudit
16
6. ALGORITMI PT. PRELUCRAREA DIVIZORILOR
UNUI NUMAR
Algoritmul de generarea a divizorilor proprii ai unui numr n
const n mprirea numrului la un ir de numere i,
i[2,n/2].
Dac numrul n se mparte la numrul generat, atunci acesta
este divizor al lui n.
ing.Lungu Iudit
17
Varianta 1
ntreg n,i;
nceput
citete n;
scrie 1,n;
pentru i2, n div 2 execut
dac n mod i = 0
atunci scrie i;
sfrit_dac;
sfrit_pentru;
sfrit;
ing.Lungu Iudit
18
Se verific dac n este divizibil cu i, dac da se scrie i.
Se repeta aciunea de la i=2 la i=n div 2
Varianta 2
ntreg n,i;
nceput
citete n;
scrie 1,n;
pentru i2, sqrt(n) execut
dac n mod i = 0
atunci scrie i, n div i;
sfrit_dac;
sfrit_pentru;
sfrit;
ing.Lungu Iudit
19
Se verific dac n este divizibil cu i, dac da se scrie i. Se afieaz i n div i care este
divizor al lui n
Se repeta aciunea de la i=2 la i=n div 2
7. ALGORITMI PT. CONVERSII INTRE SISTEME
DE NUMERATIE
Algoritm pentru conversia din baza 10 n baza q
Conversia unui numr n din baza 10 n baza q se face prin
mprirea ntreag a numrului la q pn cnd restul obinut
este mai mic dect q.
Resturile obinute reprezint cifrele numrului n scris n baza
q, primul rest reprezentnd cifra cea mai puin semnificativ,
iar ultimul rest cifra cea mai semnificativ.
ing.Lungu Iudit
20
Algoritm n pseudocod(din baza 10 n baza q)
ntreg nz,nq,p,q;
nceput
citete nz, q;
nq 0; p 1;
ct timp nz<>0 execut
nq nq + p*(nz mod q);
nz nz div q;
p p*10;
sfrit_ct_timp;
scrie nq;
sfrit
ing.Lungu Iudit
21
Algoritm pentru conversia din baza 10 n baza q
Conversia unui numr nq, din baza q(2 q9), ntr-un numr
nz reprezentat n baza 10, se face folosind descompunerea
numrului dup puterile bazei
nq=a
n
*q
n
+a
n-1
*q
n-1
++a
1
*q+a
0
*q
0
nz=(a
n
*q+a
n-1
)*q+a
n-2
)*q++a
1
)*q+a
0
ing.Lungu Iudit
22
Algoritm n pseudocod(din baza q n baza 10)
ntreg c,nz,q;
nceput
citete q;
nz 0;
citeste c;
ct_timp c>=0 and c<q execut
nz nz *q+c;
citeste c;
sfrit_ct_timp;
scrie nz;
sfrit
ing.Lungu Iudit
23
ing.Lungu Iudit
24
8. ALGORITMI PT. GENERAREA SIRURILOR
RECURENTE
13.06
ing.Lungu Iudit
25

S-ar putea să vă placă și