Sunteți pe pagina 1din 6

Algoritmi elementari

1.ALGORITMUL DE INTERSCHIMBARE
Interschimba valorile a doua variabile de memorie.

Exemplu: Presupunem ca avem 2 pahare: primul pahar (a) contine apa, al doilea
pahar (b) contine lapte. Cum putem interschimba continuturile celor doua pahare?
Raspuns: utilizand un alt pahar (aux).

Se vor utiliza 3 variabile: a si b (variabilele care isi interschimba valorile) si o


variabila aux.
intreg a,b,aux;

inceput

citeste a,b;

aux<-a;

a<-b;

b<-aux;

scrie a,b;

sfarsit.

2.ALGORITMUL PENTRU DETERMINAREA MAXIMULUI


Sa se determine cea mai mare valoare dintr-un sir de n numere intregi citite de la
tastatura.

Algoritmul:

– se vor utiliza variabilele: n ( numarul de valori citite), i (contor), a ( valoarea


citita), max (maximul)

– se citeste primul numar si se considera ca fiind cel mai mare ( max <- a)

– se citesc pe rand valorile de la tastatura si se compara cu maximul curent. Daca


valoarea citita este mai mare decat maximul atunci se atribuie variabilei max acea
valoare.
intreg n,i,a,max;

inceput

citeste n;

citeste a;

max <- a;

pentru i max

atunci

max <- a;

sfarsit_daca;

sfarsit_pentru;

scrie max;

sfarsit.

Probleme rezolvate maxim/minim


3.ALGORITMI PENTRU PRELUCRAREA CIFRELOR UNUI NUMAR
a) Extragerea cifrelor unui numar
Ex: Se citeste de la tastatura un numar intreg a. Sa se determine suma cifrelor
numarului a.

Algoritmul presupune extragerea pe rand a cifrelor numarului a incepand de la


ultima cifra si adaugarea cifrei la suma prin operatia s <- s + a mod 10 unde a mod
10 este ultima cifra a numarului, apoi eliminarea cifrei prin operatia a <- a div
10. Algoritmul se incheie atunci cand s-au adunat toate cifrele numarului deci
valoarea variabilei a este 0.
intreg a, s;

inceput

citeste a;

s <- 0;

cat_timp a 0 executa
s <- s + a mod 10;

a <- a div 10;

sfarsit_cat_timp;

scrie s;

sfarsit.

Exemple C++ prelucrarea cifrelor


b) Inversul unui numar
Pentru determinarea inversului (oglinditului) unui numar se vor utiliza
variabilele: a ( numarul citit de la tastatura) si inv (inversul). Initial valoarea
variabilei inv este 0. Inversul se va construi pas cu pas prin formula inv <- inv *10
+ a mod 10;
intreg a, inv;

inceput

citeste a;

inv <- 0;

cat_timp a 0 executa

inv <- inv * 10 + a mod 10;

a <- a div 10;

sfarsit_cat_timp;

scrie inv;

sfarsit.

 
Probleme rezolvate prelucrarea cifrelor
4.Determinarea divizorilor unui numar
Pentru determinarea divizorilor unui numar se vor utiliza variabilele: a (numarul
citit de la tastatura), i (contor). Se vor cauta posibilii divizori in intervalul [2, a/2].
Daca a mod i = 0 (a se divide la i) atunci se afiseaza divizorul (i).
 

intreg a, i;

inceput

citeste a;

pentru i <- 2,a/2 executa

daca a mod i=0

atunci scrie i;

sfarsit_daca;

sfarsit_pentru;

sfarsit.

 
5.Determinarea unui numar prim
Un numar este prim daca se divide doar la 1 si la el insusi.
Pentru verificarea unui numar prim se vor utiliza variabilele: a (numarul citit de la
tastatura), i (contor) si sw. Vom considera ca numarul este prim deci variabila sw se
va initializa cu valoarea 1. Se vor cauta posibilii divizori in intervalul [2, a/2]. Daca
a mod i = 0 (a se divide la i) atunci rezulta ca numarul nu este prim deci schimbam
valoarea variabilei sw=0.
intreg a, i,sw;

inceput

citeste a;

sw <- 1;

pentru i <- 2,a/2 executa

daca a mod i=0

atunci sw <- 0;
sfarsit_daca;

sfarsit_pentru;

daca sw = 1

atunci scrie "Numarul este prim";

altfel scrie "Numarul nu este prim."

sfarsit.

 
6.Determinarea celui mai mare divizor comun
Algoritmul determina cel mai mare divizor comun pentru doua numere intregi a si
b citite de la tastatura.
Se vor utiliza variabilele: a,b (numerele citite de la tastatura), r (restul impartirii a
mod b) .
 

intreg a, b, r;

inceput

citeste a, b;

cat_timp b 0 executa

r <- a mod b;

a <- b;

b <- r;

sfarsit_cat_timp;

scrie a;

sfarsit.

Exemplu:
a=30     b= 18
I.  18 0    se calculeaza   r = 30 mod 18 = 12     a = 18     b = 12
II. 12 0    se calculeaza  r = 18 mod 12 = 6        a = 12     b = 6
III. 6 0    se calculeaza  r = 12 mod 6 = 0          a = 6       b = 0
IV. 0 0 Fals
Se afiseaza 6 (cel mai mare divizor comun )

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