Vous êtes sur la page 1sur 13

Algoritm elementari 1

Algoritmi
elementari
Algoritm elementari 1
Algoritm elementari 2

Algoritmi de interschimbare
a valorilor a două variabile

Interschimbarea valorilor a două variabile de memorie x şi y nu se face


prin simpla atribuire a noii valori, deoarece secvenţa de atribuiri x<-y şi
y<-x ar duce la pierderea valorii lui x, iar secvenţa y<-x şi x<-y ar
duce la pierderea valorii lui y.
Pentru a realiza interschimbarea conţinutului celor două variabile de
memorie se poate folosi una din următoarele variante de algoritm:
Algoritm elementari 2

cout<<"Valoarea
Varianta 1. lui a devine : Varianta 2.
Interschimbarea "<<a<<endl; Interschimbarea
valorilor a două cout<<"Valoarea valorilor a două
variabile a şi b lui b devine : variabile a şi b
prin folosirea "<<b<<endl; fără folosirea
unei variabile } unei variabile
intermediare x. intermediare. Se
Paşii algoritmului folosesc
sunt: identităţile
1. Se salvează matematice:
valoarea primei a=(a-b)+b şi b=((a-
variabile a în b)+b)-(a-b)
variabila x; #include<iostream
2. Se atribuie >
primei variabile using namespace
valoarea celei de a std;
doua variabile; void main()
3. Se atribuie celei {
de a doua int a,b;
variabile b cout<<"Introduceti
valoarea care a a : "; cin>>a;
fost salvată în cout<<"Introduceti
a treia variabilă x. b : "; cin>>b;
Exemplu. Se a=a-b;
citesc două b=a+b;
variabile de la a=b-a;
tastatură. Să se cout<<"Valoarea
interschimbe lui a devine :
conţinutul lor şi să "<<a<<endl;
se afişeze apoi pe cout<<"Valoarea
ecran. lui b devine :
#include<iostream "<<b<<endl;
>
using namespace
std;
void main()
{
int a, b, x;
cout<<"Introduceti
a : "; cin>>a;
cout<<"Introduceti
b : "; cin>>b;
x=a; a=b; b=x ;
Algoritm elementari 3

Determinarea min/max
}
MAXIM: MINIM:
#include <iostream>
#include <algorithm> MINIM:
using namespace std; #include <iostream>
#include <algorithm>
int main () { using namespace std;
cout << "max(1,2)==" << max(1,2)
<< endl; int main () {
cout << "max(2,1)==" << max(2,1) cout << "min(1,2)==" << min(1,2) << endl;
cout << "min(2,1)==" << min(2,1) << endl;
<< endl; cout << "min('a','z')==" << min('a','z') <<
cout << "max('a','z')==" << endl;
max('a','z') << endl; cout << "min(3.14,2.72)==" <<
cout << "max(3.14,2.72)==" << min(3.14,2.72) << endl;
max(3.14,2.72) << endl; return 0;
}
return 0;
Prelucrarea cifrelor unui numar:
Pentru prelucrarea cifrelor unui numar se poate folosi unul din urmatorii algoritimi:
- algoritmul pentru extragerea cifrelor unui numar
- algoritmul pentru compunerea unui numar din cifrele sale
- algoritmul pentru determinarea inversului unui numar

#include<iostream.h>
void main()
{
int c, n;
cout<<"introduceti numarul "; cin>>n;
while(n!=0)
{ c=n%10;
cout<<c<<endl;

SUMA si PRODUSUL cifrelor:

#include <iostream.h>
void main()
int s, p,m;
int suma(int x, int y, int z)
{
s=x+y+z;
cout<<"Suma nr:"<<x<<","<<y<<","<<z<<" este: "<<s;
return 0;
}
int produs(int x, int y, int z)
{
p=x*y*z;
cout<<"Produsul nr:"<<x<<","<<y<<","<<z<<" este: "<<p;
return 0;
}
int media(int x, int y, int z)
{
m=(x+y+z)/3;
cout<<"Media aritmetica a nr:"<<x<<","<<y<<","<<z<<" este: "<<m;
return 0;
}
void main()
{
int a,b,c;
cout<<"Dati a:\n"<<"= ";
cin>>a;
cout<<"Dati b:\n"<<"= ";
cin>>b;
cout<<"Dati c:\n"<<"= ";
cin>>c;
suma(a,b,c);
produs(a,b,c);
media(a,b,c);
}
Determinarea cmmdc:

#include <iostream.h>
int cmmdc(int a, int b)
{
int r;
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
}
int cmmmc(int a, int b)
{
return(a*b/cmmdc(a,b));
}
void main(void)
Algoritm elementari 6

Determinarea daca un nr este prim sau nu:

#include <iostream.h>
#include <math.h>
void main ()
{
int x, d; //x=nr citit; d=numerele la care se va imparti x;
cout<<”Divizorii unui numar”<<endl;
cout<<”Introduceti numarul: “;
cin>>x;
cout<<”Divizorii numarului x sunt: “;
for (d=1; d<=x; d++) //pentru d, initial 1, pana la numarul x;
{
if (x%d==0) //verificam daca x se imparte exact la acel presupus divizor
cout<<d<<”; “; //daca da, il afisam;
Algoritm elementari 7
Algoritm elementari 7

}
}
Algoritm elementari 7

Determinarea divizorilor
Algoritm elementari 7

Pentru primul program, cu alte cuvinte trebuie sa impartim numarul citit la toate
numerele mai mici decat el, sa verificam daca x se imparte exact la acel numar, si apoi
sa afisam toate numerele la care x se divide.

//Divizori
#include <iostream.h>
#include <math.h>
void main ()
{
int x, d; //x=nr citit; d=numerele la care se va imparti x;
cout<<”Divizorii unui numar”<<endl;
cout<<”Introduceti numarul: “;
cin>>x;
cout<<”Divizorii numarului x sunt: “;
for (d=1; d<=x; d++) //pentru d, initial 1, pana la numarul x;
{
if (x%d==0) //verificam daca x se imparte exact la acel presupus divizor
cout<<d<<”; “; //daca da, il afisam;
}
}

Pentru a verifica daca un numar este prim, se procedeaza asemanator ca la afisare,


doar ca aici nu afisam divizorii, ci testam daca numarul are exact 2 divizori, si anume 1 si
el insusi.

//Numar prim
#include <iostream.h>
#include <math.h>
void main ()
{
int x, d, cnt, aux; //x=nr citit; d=numerele la care se imparte x; cnt=variabila care
va numara cati divizori are x; aux=auxiliara care il va memora pe x;
cout<<”Numar prim”<<endl;
cout<<”Introduceti numarul: “; cin>>x;
cnt=0;
aux=x;
for (d=1; d<=x; d++)
{
if (x%d==0) //daca x se imparte exact la d, atunci cnt=cnt+1;
{
cnt=cnt+1;
}
}
if (cnt==2) //apoi verificam daca x are exact 2 divizori
cout<<”Numarul “<<aux<<” este prim.”; //si afisam daca acesta este prim
}else cout<<”Numarul “<<aux<<” nu este prim.”; //sau nu…
}

Vous aimerez peut-être aussi