duminică, 17 noiembrie 2013

Aplicatii implementarea unor algoritmi elementari

Aplicatii:

Algoritmul lui EUCLID
1Fiind date 2 numere naturale a si b, sa se calculeze cmmdc (a,b).
Acesta se calculeaza facand impartirea lui a la b, si pastrand restul.
Cat timp restul este diferit de 0, se atribuie lui a valoarea b, lui b valoarea restului iar restul se recalculeaza.
Cand se iese din structura repetitiva, cmmdc se gaseste in variabila b.
Exemplu numeric

abr
32144
1442
420
 #include <iostream>

using namespace std;

int main()
{
    int a,b,r;
    cout<<"a=";cin>>a;
    cout<<"b=";cin>>b;
    r=a%b;
    while(r)
    {
        a=b;b=r;r=a%b;}
        cout<<"cmmdc="<<b;
    }



2.Sa se verifice daca un nr este prim.
Se verifica prin impartirea numarului repetat de la 2 la radical din acesta. Daca exista o impartire cu rest 0 (=impartire buna) inseamna ca numarul nu este prim.
 #include <iostream>
#include<conio.h>
#include<math.h>
using namespace std;

int main()
{

int ok=0, i, n;
cout<<"n= "; cin>>n;
for(i=2; i<=sqrt(n); i++)
if(n%i==0) ok=1;
if(ok) cout<<"Nu este prim.";
else cout<<"Este prim.";
_getch();
}
3Rezolvarea ecuatiei de gradul 2


- se consideră ecuaţia de forma a*x*x+b*x+c=0
- se citesc: a, b şi c de la tastatură
- se calculează delta şi se verifică
- dacă delta este mai mic decât zero, programul va afişa: “Nu are soluţie în Z”
- dacă delta este mai mare decât zero, programul va calcula x1 şi x2
- se afişează x1 şi x2

 #include <iostream>
#include <math.h>
using namespace std;

int main()
{

int a,b,c,x1,x2,delta;

cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
cout<<"c=";cin>>c;
delta = b*b-4*a*c;
if (delta<0)
cout<<"Ecuatia nu are solutie in Z";
else
{ x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
cout<<"x1="<<x1;
cout<<"\nx2="<<x2;}
}