Sunteți pe pagina 1din 23

Algoritmi elementari

Florea Matei
Cuprins

1. Slide-ul 3: Construirea oglinditului si verificarea lui n daca este palindrom


2.Slide-ul 4: 2.Media aritmetica a cifrelor nenule
3.Slide-ul 5: 3. Cifra maxima din n
4.Slide-ul 6: 4. Eliminarea cifrelor impare din n
5.Slide-ul 7: 5.Dublarea aparitiilor cifrelor pare
6.Slide-ul 8: 6.Numararea cifrelor pare din n
7.Slide-ul 9: 7.Cifra de control a unui numar n
8.Slide-ul 10: 8. Divizorii proprii al lui n
9.Slide-ul 11: 9. Divizorii proprii ai lui n - optimizat
10.Slide-ul 12: 10. Divizorii primi
11.Slide-ul 13: 11. Divizorii primi ai lui n - optimizat
12.Slide-ul 14: 12. Primalitate. Testarea primalitatii unui numar n
13.Slide-ul 15: 13. Cmmdc
14.Slide-ul 16: 14. cmmmc
15.Slide-ul 17: 15. Prelucrarea primilor n termeni din sirul lui fibonacci
16.Slide-ul 18: 16. Al n-lea termen Fibonacci impar
17.Slide-ul 19: 17. Conversii intre baza 10 si baza b, 2 <= b<=9 pentru un numar n
18.Slide-ul 20: 18.Algoritmul de conversie din baza 10 in baza b>10
19.Slide-ul 21: 19. Prelucrarea numerelor dintr-un interval [1, n] sau [a, b], a <=b
20,Slide-ul 22: 20. Prelucrarea a n numere citite pe rand
21.Slide-ul 23: 21. Prelucrarea perechilor citite consecutiv
22.Slide-ul 24: Bibliografia
1. Construirea oglinditului si verificarea lui n daca este palindrom

copie 🡠 n

oglindit 🡠9

cat timp n ≠ 0 executa

cif 🡠 n % 10

oglindit 🡠 oglindit * 10 + cif

n 🡠 [n/10]

daca copie=oglindit atunci

prelucrare_cifra(palindrom)
2.Media aritmetica a cifrelor nenule

sum 🡠 0
nrcif 🡠 0
cat timp n ≠ 0 executa
cif 🡠 n % 10
daca cif > 0 atunci
sum 🡠 sum + cif
nrcif 🡠 nrcif + 1
n 🡠 [n/10]
3. Cifra maxima din n

cifmax 🡠 0
cat timp n ≠ 0 executa
cif 🡠 n % 10
daca cif > cifmax
atunci
cifmax 🡠cif
n 🡠[n/10]
4. Eliminarea cifrelor impare din n

nrNou 🡠0

p🡠1

cat timp n ≠ 0 executa

cif 🡠 n % 10

daca cif % 2 = 0 atunci

nrNou 🡠nrNou + cif * p

p 🡠 p * 10

n 🡠 n / 10

prelucrare(nrNou)
5.Dublarea aparitiilor cifrelor pare
NrNou 🡠0
p 🡠1
cat timp n ≠ 0 executa
cif 🡠n % 10
daca cif % 2 = 0 atunci
nrNou🡠nrNou+ cif * p
p 🡠 p * 10
nrNou 🡠nrNou + cif * p
n 🡠p * 10
n🡠n/10
prelucrare(nrNou)
6.Numararea cifrelor pare din n
nrPare 🡠0
repeta
cif 🡠 n % 10
daca cif % 2 = 0 atunci
nrPare 🡠 nrPare + 1
n 🡠n / 10
pana cand n = 0
prelucrare(nrPare)
7.Cifra de control a unui numar n
cat timp n > 9 executa
sumcif 🡠 0
cat timp n ≠ 0 atunci
n 🡠 n % 10
sumcif 🡠 sumcif + cif
n 🡠n/10
n 🡠 sumcif
prelucrare(n)
8. Divizorii proprii al lui n

p 🡠1
pentru d 🡠 , [n/2], 1 executa
daca n % d = 0 atunci
prelucrare(d)
9. Divizorii proprii ai lui n - optimizat

p🡠1
pentru d 🡠2, [√2], 1 executa
daca n % d = 0 atunci
prelucrare(d)
10. Divizorii primi

d 🡠2
cat timp n > 1 executa
p🡠0
cat timp n % d = 0 executa
n 🡠 [n/d]
p🡠p+1
daca p ≠ 0 atunci
prelucrare(d, p)
d 🡠d + 1
11. Divizorii primi ai lui n - optimizat
d 🡠2
cat timp d * d <= n executa
p 🡠0
cat timp n % d = 0 executa
n 🡠 [n/d]
p 🡠p+1
daca p ≠ 0 atunci
prelucrare(d, p)
d🡠d+1
daca n ≠ 1 atunci
prelucrare(n, 1)
12. Primalitate. Testarea primalitatii unui numar n

prim 🡠 1 // presupunem ca n e prim


daca n < 2 atunci
prim 🡠0
pentru d 🡠 2, [√n], 1 executa
daca n % d = 0 atunci
prim 🡠0
daca prim = 1 atunci
prelucrare(n)
prim 🡠 1
d🡠2
cat timp prim = 1 si d * d <= n executa
daca n % d = 0 atunci
prim 🡠0
altfel
d 🡠 d+1
daca prim = 1 atunci
prelucrare(n)
13. Cmmdc

cat timp b ≠ 0 executa


rest 🡠a % b
a🡠b
b 🡠 rest
14. cmmmc

cat timp b ≠ a executa


daca a > b atunci
a 🡠a -b
altfel
b 🡠b - a
15. Prelucrarea primilor n termeni din sirul lui fibonacci

F0 🡠1
F1 🡠1
Prelucrare(F0, F1)
pentru i 🡠2, n, executa
F2 🡠 F1 +F0
Prelucrare(F2)
F0 🡠 F1
F1 🡠 F2
16. Al n-lea termen Fibonacci impar

F0 🡠1
F1 🡠1
daca n > 2 atunci
scrie 1
n 🡠n-2
cat timp n > 0 executa
F2 🡠F1+F0
daca F@ % 2 <> 0 atunci
n 🡠 n- 1
F0🡠F1
F1 🡠F2
scrie F1
17. Conversii intre baza 10 si baza b, 2 <= b<=9 pentru un numar n

repeta
cif 🡠n % b
Prelucrare(cif)
n 🡠 [n/b]
pana cand n = 0
nrNou 🡠 0
p 🡠1
cat timp n > executa
cif 🡠 n % 10
nrNou 🡠 nrNou+p*cif
n🡠[n/10]
p 🡠 p *b
Prelucrare(nrNou)
18.Algoritmul de conversie din baza 10 in baza b>10

repeta
rest 🡠n %b
daca rest < 10 atunci
prelucreaza(‘0’+rest)
altfel
prelucreaza(“A” + rest - 10)
n 🡠 [n/b]
pana cand n = 0
19. Prelucrarea numerelor dintr-un interval [1, n] sau [a, b], a <=b

pentru x 🡠1, n, 1 executa


prelucrare(x)
pentru x 🡠 a, b, 1 executa
prelucrare(x)
20. Prelucrarea a n numere citite pe rand

pentru i 🡠1, n, 1 executa


citeste x
Prelucrare(x)
F0 🡠 F1
F1 🡠 F2
21. Prelucrarea perechilor citite consecutiv

citeste a
pentru i 🡠2, n, 1 executa
citeste b
Prelucrare(a, b)
a🡠b

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