Documente Academic
Documente Profesional
Documente Cultură
#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; }
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; }
#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; }
#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; }
#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; }
#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.
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; }
#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; }
#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){
#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; }
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++;