Algoritmi elementari Să se scrie un program care determină cel mai mic multiplu comun a două numere. #include #include 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(); }
1
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 Sfârsit
2
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
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 #include 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["<<<"]=";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 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; }
5
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
6
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
7
#include 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 "<>m;
8