Download - Algoritmi Elementari C++
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 1/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 programint 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(); }
1
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 2/8
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 reciprocvalorile initiale prin intermediul unei variabile auxiliare.
Ex a=12 b=-3aux=aa=bb=aux
Pseudocod
Început Citeste a,b
aux=aa=bb=auxScrie a,bSfârsit
2
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 3/8
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
3
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 4/8
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
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 5/8
{ 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;
}
5
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 6/8
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,bdaca a*b=0 atunci scrie a+baltfel cat timp a!=b executadaca a>b atuncia=a-baltfel b=b-a
scrie a stop
Observatii
1.Numarul se modifica.Daca dorim sa folosim numarul dupa calculul Cmmdcatunci 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
6
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 7/8
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”;
elsecout<<”nr nu este prim”;
Algoritm pentru determinarea divizorilor
7
7/22/2019 Algoritmi Elementari C++
http://slidepdf.com/reader/full/algoritmi-elementari-c 8/8
#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;
8