Sunteți pe pagina 1din 11

1. Sa se calc. catul, restul si raportul impartirii a doua nr intregi.

#include "stdafx.h" #include <iostream> using namespace std; int main (){ int a,b; cout<<"Introduceti a:"; cin>>a; cout<<"Introduceti b:"; cin>>b; cout<<"Catul dintre" <<a<< "si" <<b<< "este:" <<(a/b)<<endl<< "Restul celor 2 nr. este:" <<(a%b)<<endl<< "Raportul este:" <<((double)a/b)<<endl; return 0; }

2. Sa se afiseze partea intreaga si partea zecimala a unui nr real fara a se fol. fct. de biblioteca.
#include "stdafx.h" #include <iostream> using namespace std; int main (){ double a; cout<<"Introduceti nr.:"; cin>>a; cout<<"Partea intreaga:"<<(int)a<<endl<< "Partea zecimala:"<<a-(int)a<<endl; return 0; }

3. Sa se det max si min a 2 nr intregi fol op aditional.


#include "stdafx.h" #include <iostream> using namespace std; int main (){ int a, b; cout<<"Introduceti a:"; cin>>a; cout<<"Introduceti b:"; cin>>b; cout<<"Maximul dintre "<<a<<" si "<<b<<" este: "<<(a>b?a:b)<<endl<< "Minimul dintre "<<a<<" si "<<b<<" este: "<<(a<b?a:b)<<endl; return 0; }

4. Sa se af val absoluta a unui nr real, fol op additional.


#include "stdafx.h" #include <iostream> using namespace std; int main (){ double d; cout<<"Introduceti un nr. real:"; cin>>d; cout<<"Valoarea absoluta este: "<<(d<0?-d:d)<<endl; return 0; }

5. Sa se verifice daca un nr intreg este par.


#include "stdafx.h" #include <iostream> using namespace std; int main (){ int a; cout<<"Introduceti nr.: "; cin>>a; cout<<"Numarul "<<a<<(a%2==0?" este par ":" este impar")<<endl; return 0; }

6. Sa se testeze daca un nr real preluat de la terminal este intreg.


#include "stdafx.h" #include <iostream> using namespace std; int main (){ double a; cout<<"Introduceti nr.: "; cin>>a; cout<<"Numarul "<<a<<" este "<<(a==(int)a?"intreg":"real")<<endl; return 0; }

7. Sa se testeze daca un nr intreg preluat de la terminal este patrat perfect.


#include "stdafx.h" #include <iostream> using namespace std; int main (){ int a; cout<<"Introduceti nr.: "; cin>>a; double rad=sqrt((double)a); cout<<"Numarul "<<a<<(rad==(int)rad?"":" nu")<<" este partat perfect"<<endl; return 0; }

8. Se citeste de la terminal un nr real repr nota unui student. Sa se rotunjeasca aceasta nota.
#include "stdafx.h" #include <iostream> using namespace std; int main(){ double a; cout<<"Introduceti nota: "; cin>>a; cout<<"Nota rotunjita este: "<<(int)(a+0.5)<<endl; return 0; }

9. Sa se rotunjeasca un nr real la 2 zecimale prin trunchierea celorlalte zecimale.

#include "stdafx.h" #include <iostream> using namespace std; int main(){ double a; cout<<"Introduceti nr.: "; cin>>a; cout<<"Numarul rotunjit este: "<<(int)(a*100)/100.<<endl; return 0; }

10. Acceasi pb ca mai sus, numai ca precizia (nr de zecimale la care se face rotunjirea) va fi citita de la terminal.

#include "stdafx.h" #include <iostream> using namespace std; int main(){ double a; int p; cout<<"Introduceti nr.: "; cin>>a; cout<<"Introduceti precizia: "; cin>>p; double b=pow(10.,p); cout<<"Numarul rotunjit este: "<<(int)(a*b)/b<<endl; return 0; }

11. Sa se precizeze cati biti ocupa (efectiv) un nr intreg pozitiv.

#include "stdafx.h" #include <iostream> using namespace std; int main(){ int n; cout<<"Introduceti nr.: "; cin>>n; cout<<n<<" ocupa "<<(int) (log((double)n)/log(2.))+1<<" biti"<<endl; return 0; }

12. Sa se testeze, fara a se fol fct de biblioteca, daca un character preluat de la terminal este litera sau cifra./

#include "stdafx.h" #include <iostream> using namespace std; int main(){ unsigned char c; cout<<"Caracter: "; cin>>c; if (c>='a' && c<='z' || c>='A' && c<='Z') cout<<"Litera"; else if (c>='0' && c<='9') cout<<"Cifra"<<endl; else cout<<"Nici litera, nici cifra"<<endl;

return 0; }

13. Sa se calc n factorial: n!=1*2*3*.*n.


#include "stdafx.h" #include <iostream> using namespace std; int main(){ double f=1.;int n; cout<<"Introduceti n: "; cin>>n; for(int i=1;i<=n;i++) f*=i; cout<<n<<"!= "<<f<<endl; return 0; }

14. Sa se calc expresia:

#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ int n; double E=0; cout<<"n="; cin>>n; for(int i=2; i<=n; i++) E=i*sqrt((double)(i-1)); cout<<"Suma este: "<<E<<endl; return 0; }

15. Sa se calc expresia E=1^2+3^2+5^2++(n=2k+1)^2, unde n este citit de la tastatura.

#include "stdafx.h" #include <iostream> using namespace std; int main(){ int E=0, n; cout<<"Introduceti n: "; cin>>n; for(int i=1; i<=n; i+=2) E+=i*i; cout<<"E= "<<E<<endl; return 0; }

16. Sa se calc cel mai mare div comun a 2 nr intregi fol alg lui Euclid.

#include "stdafx.h" #include <iostream> using namespace std; int main(){

int a, b, r; cout<<"a="; cin>>a; cout<<"b=";cin>>b; cout<<"cmMdc("<<a<<','<<b<<")="; while(b){ r=a%b; a=b; b=r; } cout<<a<<endl; return 0; }

17. Sa se calc suma, produsul cifrelor nenule si nr de cifre ale unui nr nat.

#include "stdafx.h" #include <iostream> using namespace std; int main(){ int n, s=0, p=1, c=0, cifra; cout<<"Introduceti n: "; cin>>n; if(!n) p=0; do{ cifra=n%10; s+=cifra; if(cifra) p*=cifra; c++; n/=10; }while (n); cout<<"Suma cifrelor este: "<<s<<endl<< "Produsul cifrelor nenule este: "<<p<<endl<< "Numarul de cifre este: "<<c<<endl; return 0; }

18. Sa se cal x la puterea n, fara a fol fct de biblioteca; baza si exponentul sunt nr intregi cu semn.

#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ int x, n, p=1; cout<<"Introduceti baza: "; cin>>x; cout<<"Introduceti exponentul: "; cin>>n; for (int i=1; i<=abs(n); i++, p*=x); cout<<x<<'^'<<n<<'='<<(n>0?p:1./p)<<endl; return 0; }

19. Sa se afiseze lista patratelor perfecte mai mici decat 500.

#include "stdafx.h"

#include <iostream> #include <math.h> using namespace std; int main(){ cout<<"Lista patrate perfecte mai mici decat 500: "<<endl; for(int n=1; n<500; n++){ double rad=sqrt((double)n); if (rad==(int)rad) cout<<n<<'='<<rad<<'*'<<rad<<endl; } return 0; }

20. Sa se verifice daca un nr intreg preluat de la terminal este prim.

#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ int n, prim=1; while(cout<<"Introduceti nr.: ", cin>>n, n<=0); for(int i=2; i<=sqrt((double)n)&&prim;i++) if(n%i==0) prim=0; cout<<"Numarul "<<n<<(prim?"":" nu")<<" este prim"<<endl; return 0; }

21. Sa se reface probl de mai sus a.i. testarea sa se repete la optiunea utilizatorului.

#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ int n, prim=1; char repeta; do{ while(cout<<"Introduceti nr.: ", cin>>n, n<=0); prim=1; for(int i=2; i<=sqrt((double)n)&&prim;i++) if(n%i==0) prim=0; cout<<"Numarul "<<n<<(prim?"":" nu")<<" este prim"<<endl; cout<<"Repetati? (y/n)"; cin>>repeta; } while(repeta=='d'); return 0; }

22. Se introduce nr intregi poz. Sa se verifice daca ele pot constitui lungimile laturilor unui triunghi (conditia este ca suma oricaror 2 nr sa fie mai mare decat cel de-al 3 lea nr) si, daca da, sa se specific ce fel de triunghi formeaza(echilateral, isoscel, dreptunghic, oarecare).

#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ int a, b, c; cout<<"Introduceti 3 nr.: "<<endl; cin>>a>>b>>c; if(a+b>c && b+c>0 && c+a>b) { if(a==b && b==c) cout<<"Triunghi echilateral"; else if(a*a==b*b+c || b*b==c*c+a*a || c*c==a*a+b*b) cout<<"Triunghi dreptunghic"; else cout<<"Triunghi oarecare"; } else cout<<"Numerele nu fromeaza un triunghi"; cout<<endl; return 0; }

23. Sa se genereze toate tripletele pitagirce mai mici decat 50. Un triplet pitagoric este de forma (a,b,c), unde a, b si c sunt intregi si a2+b2=c2, a, b, c<50.
#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ int a, b; double c; cout<<"Triplete pitagorice: "<<endl; for (a=1; a<50; a++) for(b=a; b<50; b++){ c=sqrt((double)(a*a+b*b)); if(c<50 && c==(int)c) cout<<'['<<a<<','<<b<<','<<c<<']'<<endl; } return 0; }

24. Sa se stimuleze un calculator de buzunar care efectueaza operatiile +, -, *, /, % pe nr intregi, unde +, -, *, /, % au smnificatiile cunoscute, iar / va realiza impartirea intreaga, in timp ce \ va realiza impartirea reala.
#include "stdafx.h" #include <iostream> using namespace std; int main(){ int a, b; char op; double rez;

cout<<"Introduceti linia de comanda de forma \n\ <operand1><+, -, *, /, \\, %><operand2>: "; cin>>a>>op>>b; switch(op){ case '+': rez=a+b; break; case '-': rez=a-b; break; case '*': rez=a*b; break; case '/': rez=b?a/b:(cout<<"Impartire la 0!"<<endl,0); break; case '\\': rez=b?(double)a/b:(cout<<"Impartire la 0!"<<endl,0); break; case '%': rez=a%b; break; default: cout<<"Operator nepermis."<<endl; } cout<<"="<<rez<<endl; return 0; }

25. Sa se verifice daca un element x apare intr-un vector A de dimensiune n. Daca da, sa se tipareasca indicele ultimei sale aparitii.
#include "stdafx.h" #include <iostream> using namespace std; int main(){ int A[50], n, m, i; cout<<"Nr. de elemente: "; cin>>n; for(i=0;i<n;i++){ cout<<"A["<<i<<"]: "; cin>>A[i]; } cout<<"Introduceti elementul cautat: "; cin>>m; for(i=n-1; i>=0; i--) if(A[i]==m){

cout<<"Elementul "<<m<<endl; return 0; } return 0; }

26. Sa se calc patratul minimului unui vector de nr intregi.

#include "stdafx.h" #include <iostream> using namespace std; int main(){ int A[50], n, m, i; while (cout<<"\ndimensiune:", cin>>n, n<0||n>50); for(i=0; i<n; i++) { cout<<"A["<<i<<"]="; cin>>A[i]; } m=A[0]; for(i=1;i<n;i++) if(m>A[i]) m=A[i]; cout<<"Patratul minimului este:"<<m*m<<endl; return 0; }

27. Sa se contorizeze nr de aparitii ale unui character dat intr-o matrice de ceractere.
#include "stdafx.h" #include <iostream> using namespace std; int main(){ char A[10][10], ch; int i, n, j; while (cout<< "n = ", cin>>n, n<0||n>10); for(i=0;i<n;i++) for(j=0; j<n; j++){ cout<<"A["<<i<<"]["<<j<<"]="; cin>>A[i][j]; } cout<<"ch = "; cin>>ch; int c = 0; for(i=0; i<n; i++) for(int j=0;j<n;j++) if(A[i][j] == ch) c++; cout<<"Caracterul "<<c<<" apare de "<<c<<" ori in matrice"<<endl; return 0; }

28. Sa se determine amplitudinea unei serii statice de volum n.


#include "stdafx.h" #include <iostream> using namespace std; int main(){ double A[50], max, min; int i, n; do{ cout<<"Dimensiune vector: "; cin>>n; } while (n>50); for(i=0; i<n; i++) { cout<<"A["<<(i+1)<<"]="; cin>>A[i]; } max=min=A[0]; for(i=1;i<n;i++){ if(max<A[i])max=A[i];

if(min>A[i])min=A[i]; } cout<<"Amplitudinea="<<(max-min)<<endl; return 0; }

29. Sa se verifice daca un vector este ordonat. Se vor lua in calcul situatiile: vector constant (1,1,1), ordonat (1,2,3), ordonat descrescator (3,2,1) sau oarecare (3,1,2).
#include "stdafx.h" #include <iostream> using namespace std; int main(){ int i, n, V[100]; cout<<"Introduceti nr de elemente: "; cin>>n; for(i=0;i<n;i++){ cout<<"V["<<i+1<<"]="; cin>>V[i]; } int cresc=1, descresc=1; for(i=1;i<n;i++) if(V[i]<V[i-1]) cresc=0; else descresc=0; if (cresc) { if(V[0]==V[n-1]) cout<<"Vectorul este constant"; else cout<<"Vectorul este ordonat crescator"; } else if(descresc) cout<<"Vectorul este ordonat descrescator"; else cout<<"Vectorul nu este ordonat"; cout<<endl; return 0; }

30. Sa se testeze daca o matrice de dimensiuni mXn este rara (cel putin jumatate din elementele sale sunt nule).
#include "stdafx.h" #include <iostream> using namespace std; int main(){ int i, m, n, a[50][50], j, zero=0; cout<<"Linii "; cin>>m; cout<<"Coloane "; cin>>n; for (i=0;i<m;i++) for(int j=0;j<n;j++){ cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j]; } for(i=0;i<m;i++) for(j=0;j<n;j++) if(!a[i][j]) zero++;

cout<<"Matricea"<<(zero>=m*n/2?"":" nu")<<" este rara"<<endl; return 0; }