Sunteți pe pagina 1din 8

Algoritmi elementari

S se scrie un program care determin cel mai mic multiplu comun a dou
numere.
#include<iostream.h>
#include<conio.h>
void main(void)
{
// declaram variabilele pe care le vom utiliza in program
int a, b, i, c, r, min;
cout<<Dati primul numar ;cin>>a;
cout<<Dati al doilea numar ;cin>>b;
getch();
if( a != 0 && b != 0 )
if( a < b ) min = a;
else min = b;
c = 1;
for(i = 1; i <= min; i++ )
if ( a % i == 0 && b % i == 0 ) c = i;
cout<<C.m.m.m.c este = <<(a * b) / c<
cout<<<<<Apasati tasta ENTER pentru terminarea programului;
getch();
}

Algoritmii elementari sunt algoritmi simpli care ne ajuta n rezolvarea


problemelor
Exemple de algoritmi elementari:
-interschimbare
-determinarea minimului/maximului
-prelucrarea cifrelor unui numar
-calcularea celui mai mare divizor comun
-testarea unui numar prim
-conversii ntre sisteme de numeratii
-generarea sirurilor recurente
Prin interschimbare ntelegem ca 2 variabile ai si b si schimba reciproc
valorile initiale prin intermediul unei variabile auxiliare.
Ex a=12 b=-3
aux=a
a=b
b=aux
Pseudocod
nceput
Citeste a,b
aux=a
a=b
b=aux
Scrie a,b
Sfrsit

Algoritm de interschimbare
Formula

aux<- a
a<- b
b<-aux
Rezolvare:
start
citeste a, b
aux<-a
a<-b
b<-aux
scrie a,b
stop

Algoritm de determinarea min/max

O variabila preia continutul primei componente a vectorului (max=v[0] sau


mi n=v[0]), apoi o compara pe rind cu celelalte componente ale vectorului, iar
in functie de conditia care se pune in program variabila va retine componenta
cu valoare maxima sau componente cu valoare minima. Pentru m axim :
max=v[0] ; if(v[i]>max) max=v[i]
Pentrumi ni m ;
min=v[0] ; if(v[i]<min) min=v[i]
Exemplu. Se introduc valorile componentelor unui vector si se afiseaza
valoarea maxima si valoarea minima.
#include<iostream.h>
#include<conio.h>
void main()
{int max,min,n,i,v[100];
cout<<"Introduceti numarul de elemente n="; cin>>n;
for(i=1;i<=n;i++)
{cout<<"v["<<i<<"]=";cin>>v[i];};
max=v[0];
for(i=1;i<=n;i++) if(v[i]>max) max=v[i] ;
cout<<"Valoarea maxima citita este"<<" "<<max<<endl;
min=v[0];
for(i=1;i<=n;i++) if(v[i]<min) min=v[i];
cout<<"Valoarea minima citita este"<<" "<<min
Algoritm pentru prelucrarea cifrelor unui numar

Suma cifrelor unui numar


#include<iostream.h>
void main()
4

{
int s;
long d,x;
cout<<"x=";cin>>x;
d=x;
s=0;
while(d)
{
s=s+d%10;
d=d/10;
}
cout<<"s="<<s;
}

Algoritm pentru determinarea cmmdc

Algoritmul:
-citim a si b;
-daca a*b=0 scrie a+b;
-altfel cat timp a!=b executa
Daca a>b atunci scade din a pe b
Altfel scade din b pe a
-afiseaza a.
Pseudocodul
start
citeste a,b
daca a*b=0 atunci scrie a+b
altfel cat timp a!=b executa
daca a>b atuncia=a-b
altfel b=b-a
scrie a
stop

Observatii
1.Numarul se modifica.Daca dorim sa folosim numarul dupa calculul Cmmdc
atunci trebuie sa le facem o copie:x=a si y=b.
2.Algoritmul este lent din punct de vedere al timpului.

Algoritm pentru determinarea unui numar prim

cin>>n;
ok=1;
if(n==0||n==1)
ok=0;
for(i=2; i<=n/2; i++)
if(u%i==0)
ok=0;
if(ok==1)
cout<<nr este prim;
else
cout<<nr nu este prim;

Algoritm pentru determinarea divizorilor

#include<iostream.h>
int main ()
{int n, nr=0,m;
cout<<"numarul este:";
cin>>n;
for(int d=2;d<=n/2;d++)
if(n%d==0)nr++;
cout<<"Numarul de divizori ai numarului "<<n<<" este "<<nr+2;
cin>>m;

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