Vous êtes sur la page 1sur 6

ALGORITMI ELEMENTARI

1)

Algoritmul de interschimbare

Varianta 1
real a, b,aux;
inceput
citeste a, b;
auxa;
ab;
baux;
scrie a, b;
sfarsit.

Varianta 2
real a, b;
inceput
citeste a, b;
aa-b;
ba+b;
ab-a;
scrie a, b;
sfarsit.

Problema 1: Din fisierul numar.in se citeste un numar natural de trei cifre. Sa se afiseze, in
fisierul numar.out, pe linii diferite, numarul minim si numarul maxim care se pot forma din
cifrele sale.
Problema 2: Se citesc trei numere intregi a, b, c din fisierul descrescator.in. Daca numerele
sunt diferite de zero, sa se calculeze media lor geometrica; altfel, sa se afiseze numerele in
ordine descrescatoare, in fisierul descrescator.out.

2)

Algoritmul de determinare a maximului/minimului

Varianta 1
intreg a, max, n, i;
inceput
citeste n, a;
maxa;
pentru i2, n executa
citeste a;
daca a>max atunci
maxa;
sfarsit_daca;
sfarsit_pentru;
scrie max;
sfarsit.

Varianta 2
intreg a, max;
inceput
citeste a;
maxa;
cat_timp a<>0 executa
daca a>max atunci
maxa;
sfarsit_daca;
citeste a;
sfarsit_cat_timp;
scrie max;
sfarsit.

OBS. Pentru determinarea minimului, conditia devine daca a<min atunci


Problema 1: Se introduc de la tastatura n numere intregi. In fisierul max.out, pe linii diferite sa
se afiseze valoarea maxima si de cate ori apare in sir.
Problema 2: Se citesc din fisierul max_min.in n numere intregi. Sa se sfiseze pe monitor
valoarea minima si valoarea maxima.
Problema 3: Se intoduce de la tastatura un sir de numere reale, pana la introducerea valorii 0.
Sa se afiseze pe monitor minimul, maximul si numarul de aparitii ale acestora.
Problema 4: Se intorduce un sir de numere intregi pana la introducerea valorii 0. Sa se
afiseze:a) maximul dintre numerele negative;
b) minimul dintre numerele negative;
c) maximul dintre numerele pozitive;
d) minimul dintre numerele pozitive.
1

3)

Algoritmi pentru prelucrarea cifrelor unui numar

a) Algoritmul pentru extragerea cifrelor unui numar


intreg n, c;
inceput
citeste n;
cat_timp n<>0 executa
c n mod 10;
scrie c;
nn div 10;
sfarsit_cat_timp;
sfarsit.
b) Algoritmul pentru compunerea unui numar din cifrele sale
Varianta 1
Varianta 2
intreg n, p, nr, i;
intreg c, nr;
inceput
inceput
citeste n;
nr0;
p1;
citeste c;
pentru i1, n-1 executa
cat_timp c>=0 and c<=9 executa
pp*10;
nrnr*10+c;
sfarsit_pentru;
citeste c;
nr0;
sfarsit_cat_timp;
pentru i1, n executa
scrie nr;
citeste n;
sfarsit.
nrnr+c*p;
pp div 10;
sfarsit_pentru;
scrie nr;
sfarsit.
c) Algoritmul pentru determinarea inversului unui numar
intreg n, inv;
inceput
citeste n;
inv0;
cat_timp n<>0 executa
invinv*10+n mod 10;
nn div 10;
sfarsit_timp;
scrie inv;
sfarsit.
Problema 1: Se citeste din fisierul extragere.in un numar natural n. Sa se afiseze in fisierul
extragere.out a) suma si produsul cifrelor sale;
b) suma cifrelor pare si produsul cifrelor impare;
c) suma si produsul cifrelor de pe pozitiile impare (pare);
(OBS. numararea incepe cu cifra cea mai semnificativa)
Problema 2: Se citesc de la tastatura mai multe numere reprezentand cifrele unui numar binar, pana
cand numar citit nu mai este cifra binara. In fisierul binar.out sa se afiseze numarul binar obtinut.
Problema 3: Se citeste un numar natural n, din fisierul palindrom.in. Sa se verifice daca este
palindrom si sa se afiseze mesajul corespunzator in fisierul palindrom.out.
2

Problema 4: Sa se afiseze pe monitor toate numerele care sunt palindrom din intervalul [a, b], cu a si
b citite de la tastatura.
Problema 5: Se citeste un sir de n numere naturale. Sa se afiseze cele care sunt palindroame.
Problema 6: Sa se afiseze toate numerele din intervalul [a, b] care au suma cifrelor un numar impar.
a si b sunt citite din fisierul interval.in.
Problema 7: Se citeste din fisierul invers.in un numar natural n.a se afiseze in fisierul invers.out
inversul sumei cifrelor sale.

4)

Algoritmi pentru calcularea c.m.m.d.c.

Varianta 1
intreg a, b, r;
inceput
citeste a, b;
cat_timp b<>0 executa
ra mod b;
ab;
br;
sfarsit_cat_timp;
scrie c.m.m.d.c.=, a;
sfarsit.

Varianta 2
intreg a, b;
inceput
citeste a, b;
cat_timp a<>b executa
daca a>b atunci
aa-b;
altfel
bb-a;
sfarsit_daca;
sfarsit_cat_timp;
scrie c.m.m.d.c.=, a;
sfarsit.

Problema: Sa se calculeze cel mai mic multiplu comun si cel mai mare divizor comun a doua
numere nanturale a si b, citite din fisierul multiplu_divizor.in. Rezultatele se vor afisa pe ecran.

5)

Algoritm pentru testarea unui numar prim

intreg n, i;
inceput
citeste n;
daca n mod 2 = 0 atunci
in;
altfel
cat_timp i<=sqrt(n) executa
daca n mod i = 0 atunci
in;
altfel
ii+2;
sfarsit_daca;
sfarsit_cat_timp;
sfarsit_daca;
daca i<>n atunci
scrie numarul este prim;
altfel
scrie numarul nu este prim;
sfarsit_daca;
sfarsit.

Problema 1: Sa se afiseze toate numerele prime din intervalul [a, b], cu a si b introduse de la
tastatura.
Problema 2: Se citesc n numere de la tastatura. Sa se afiseze numerele prime.
Problema 3: Sa se afiseze primele n numere prime, cu n citit de la tastatura.

6)

Algoritmi pentru prelucrarea divizorilor unui numar

a) Algoritmul de generare a divizorilor proprii ai unui numar


Varianta 1
Varianta 2
intreg n, i;
intreg n, i;
inceput
inceput
citeste n;
citeste n;
scrie 1, n;
scrie 1, n;
pentru i=2, n div 2 executa
pentru i=1, [sqrt(n)] executa
daca n mod i=0 atunci
daca n mod i =0 atunci
scrie i;
scrie i, n div i;
sfarsit_daca;
sfarsit_daca;
sfarsit_pentru;
sfarsit_pentru;
sfarsit.
sfarsit.
b) Algoritmul de generare a divizorilor primi ai unui numar
intreg n, i;
inceput
citeste n;
i2;
cat_timp n<>1 executa
daca n mod i =0 atunci
scrie i;
cat_timp n mod i =0 executa
nn div i;
sfarsit_cat_timp;
sfarsit_daca;
ii+1;
sfarsit_cat_timp;
sfarsit.
Problema 1: Sa se descompuna in factori primi un numar n introdus de la tastatura.
Problema 2: Sa se scrie un program care calculeaza suma si produsul divizorilor primi ai unui numar
natural n, introdus de la tastatura.
Problema 3: Sa se scrie un program care determina si afiseaza toate numerele perfecte mai mici
decat un numar n, introdus de la tastatuta. ( un numar natural se numeste numar perfect daca este
egal cu suma divizorilor sai, fara el)
Problema 4: Sa se scrie un program care determina si afiseaza toate numerele prietene mai mici
decat un numar n, citit de la tastatura. (doua numere naturale se numesc prietene daca unul dintre
ele este geal cu suma divizorilor celuilalt, fara numarul respectiv )

7)

Algoritmi pentru conversii intre sistemele de numeratie

a) Algoritmul pentru conversia din baza 10 in baza q


intreg n10, nq, p, q;
inceput
citeste n10, q;
nq0;
p1;
cat_timp n10<>0 executa
nqnq+p*(n10 mod q);
n10n10 div q;
pp*10;
sfarsit_cat_timp;
scrie n, q;
sfarsit.
b) Algoritmul pentru conversia din baza q in baza 10
intreg c, n10, q;
inceput
citeste q;
n100;
citeste c;
cat_timp c>=0 and c<q executa
n10n10*q+c;
citeste c;
sfarsit_cat_timp;
scrie n10;
sfarsit.
Problema: Sa se scrie programele corespunzatoare celor doi algoritmi.

8)

Algoritmul de generare a sirului lui Fibonacci

intreg a1, a2, a3, n, i;


inceput
citeste n;
a11;
a21;
scrie a1, a2;
pentru i=3, n executa
a3a1+a2;
scrie a3;
a1a2;
a2a3;
sfarsit_pentru;
sfarsit.
Problema: Sa se scrie programul corespunzator.
5

Vous aimerez peut-être aussi