Escolar Documentos
Profissional Documentos
Cultura Documentos
int a=13, b=4; b=a+b/2; a=a-b/2*a; -78 2. Fie a,b,c si d patru variabile reale. Care dintre urmatoarele instruciuni atribuie variabilei d media aritmetica a valorilor variabilelor a,b si c? a. b. c. d. 3. a. b. c. d. e. f. d=(a+b+c)/2 d=a/3+b/3+c/3 d=a+b+c/3 d=(a+b+c)/4-1 Care dintre urmatoarele declaratii de variabile sunt eronate sintactic si de ce? float a=b=0; double z=x/2; char d=120; int k; i; long a=0,b=a+3; unsigned float a
4. Se considera a si b, doua variabile de tip int. Variabilei a i se atribuie valoarea 1, iar lui b, valoarea 32767. Care este valoarea expresiei a+b? a. b. c. d. 5. 32768 -1 -32768 Nu se poate calcula valoarea acestei expresii pentru a atribui variabilei reale x rezultatul expresiei
2ab c 2 , unde a,bsi c 0.25
6. Care dintre urmatoarele expresii este adevarata daca si numai daca numarul impar x este negativ? a. (x%2==1) && (x<0) b. (x%2!=0) || (x<0) c. ! ((x%2==0) || (x>=0)) d. ! ((x%2==0) && (x>=0)) e. x%2=1 && x<0
1
7. Care dintre urmatoarele expresii este adevarata daca si numai daca valorile variabilelor x si y sunt numere naturale consecutive? a. b. c. d. e. x-y==1 (x==1) && (y==2) (x-y==1) && (y-x==1)
y = x 1
(x-y==1) || (y-x==1)
8. Care dintre urmatoarele expresii au valoare diferita de 0, daca si numai daca variabilele intregi a, b si c contin trei valori distincte, doua cate doua? a. b. c. d. a != b != c != a ! (a==b && b==c && a==c) (a!=b) && (b!=c) ! (a==b) && !(b==c || a==c)
Instructiuni de citire/scriere. Atribuire 9. Se citeste o variabila r, reprezentand raza unui cerc. Aflati lungimea si aria cercului. #include <iostream.h> #include <conio.h> void main(){ float r,l,a; cout<<Dati raza cercului:; cin>>r; l=2*3.14*r; a=3.14*r*r; cout<<Lungimea cercului este <<l<<endl; cout<<Aria cercului este <<a<<endl; getch();} 10. Se citesc trei valori reale, pozitive, a, b,c. Presupunand ca ele pot forma laturile unui triunghi, aflati perimetrul si aria acestuia. Pentru arie, folositi formula lui Heron s = p( p a )( p b )( p c ) , unde p=semiperimetrul. #include <iostream.h> #include <math.h> #include <conio.h> float a,b,c,p,s; void main (){ cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"c="; cin>>c; p=a+b+c; cout<<"perimentrul triunghiului"<<p<<endl; p=p/2;
2
s=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"aria este "<<s<<endl; getch();} 11. Se citesc x1, y1, x2, y2, coordonatele plane a doua puncte A(x1, y1), B(x2, y2). Aflati distanta dintre puncte. Indicatie: AB = ( x1 x 2 ) 2 +( y1 y2 ) 2 #include <iostream.h> #include <math.h> #include <conio.h> float x1,1x2,y1,y2,ab; void main (){ cout<<"Coordonatele lui A"; cin>>x1>>x1; cout<<"Coordonatele lui B"; cin>>x2>>y2; ab=sqrt((x1-x2)*(x1-x2)+ (y1-y2)*(y1-y2)); cout<<"Lungimea segnetului AB este "<<ab<<endl; getch();} 12. Doua corpuri in miscare se deplaseaza unul catre celalalt, cu vitezele v1 si v2, intre doua locatii A si B, aflate la distanta d, una fata de alta. Aflati timpul t dupa care se intalnesc si la ce distanta, d1,fata de A. d1=v1*t d-d1=v2*t Avem, deci, d1* t = d v 2 * t t = #include <iostream.h> #include <conio.h> void main(){ float v1,v2,t,d,d1; cout<<Dati vitezele v1 si v2:; cin>>v1>>v2; cout<<Dati distanta d:; cin>>d; t=d/(v1+v2); d1=v1*d/(v1+v2); cout<<Se intalnesc dupa timpul <<t<< la distanta <<d1<< fata de A <<endl; getch();}
d v1* d , iar d1 = v1 + v 2 v1 + v 2
Instructiunea conditionala 13. Se citeste un numar natural. Sa se verifice daca este par sau impar. #include <iostream.h> #include <conio.h> void main(){ clrscr( ); int n; cout<<Dati n:; cin>>n; if (n%2==0) cout <<par; else cout <<impar; getch( );} 14. Se citete un numr real. S se afieze dac este pozitiv, negativ sau nul. #include <iostream.h> #include <conio.h> void main(){ float n; cout<<"dati n"; cin>>n; if (n>0) cout<<"pozitiv" ; else if (n<0) cout <<"negativ"; else cout<<"nul"; getch();} 15. Se citesc doua valori a si b reale a si b. Aflati solutia ecuatiei ax + b = 0, a 0 #include <iostream.h> #include <conio.h> void main(){ clrscr( ); float a,b,x; cout<<Dati a si b:; cin>>a>>b; if (a!=0) {x=-b/a; cout<<x=<<x;} else if (b!=0) cout<<Ecuatie imposibila; else cout<<Ecuatie nedeterminata; getch( );} 16. Se citesc trei valori a si b reale a, b, c. Aflati radacinile ecuatiei ax 2 + bx + c = 0 , a 0 #include <iostream.h> #include <math.h> #include <conio.h> float a,b,c,delta,x1,x2; void main (){cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"c="; cin>>c;
4
if (a != 0) { delta=b*b-4*a*c; if (delta < 0) cout<<"rad. complexe"; else {x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); cout<<"x1="<<x1<<endl; cout<<"x2="<<x2<<endl; }} else cout<<"nu avem ec. de grad 2"; getch();} 17. Se citesc trei numere reale. Aflati maximul si minimul dintre ele.
#include <iostream.h> #include <conio.h> void main(){float a,b,c,max; max=a; min=a; cout<<"dati cele 3 numere"; cin>>a>>b>>c; if (max<b) max=b ; if (max<c) max=c; if (min<b) min=b ; if (min<c) min=c; cout<<"maximul este "<<max; cout<<"minimul este "<<min; getch();}
#include <iostream.h> #include <conio.h> #include <math.h> void main( ){ float x, f; cout<<"Introduceti x"; cin>>x; if (x<=0) f=2*pow(x,3)-3 ; else if (x<5) f=pow(x,3)-2*pow(x,2); else f=sqrt(pow(x,5)/3); cout<<"f("<<x<<")="<<f; getch( );}
Instructiunea repetitiva cu numar cunoscut de pasi (for) 19. Se citete un numr natural n, apoi se citesc n numere reale. Aflai suma lor. #include <iostream.h> #include <conio.h> void main(){ int n,i; float x; long int s=0; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) {cout<<"dati x"; cin>>x; s=s+x;} cout<<"suma este "<<s; getch();} 20. Se citete un numr natural n. Calculai suma s=1+2+3++n. #include <iostream.h> #include <conio.h> void main(){ int n,i; long int s=0; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) s=s+i; cout<<"suma numerelor de la 1 la "<<n<<" este "<<s; getch();} 21. Se citete un numr natural n. Calculai suma s = 1 + #include <iostream.h> #include <conio.h> void main(){ int n,i; float s=0; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) s=s+ (float) 1/(i*i); cout<<"suma este "<<s; getch();} 22. Se citete un numr natural n. Aflai produsul p=n!=1x2x3xxn #include <iostream.h> #include <conio.h> void main(){ int n,i, p=1; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) p=p*i; cout<<"factorial de "<<n<< este <<p; getch();}
6
1 1 1 + 2 + ... + 2 . 2 2 3 n
23. Se citete un numr natural n. Afiai divizorii acestuia. #include <iostream.h> #include <conio.h> void main(){ int n,i, p=1; cout<<"dati n"; cin>>n; cout<<"divizorii lui "<<n<< sunt: ; for (i=1;i<=n;i++) if (n%i==0) cout<<i<< ; getch();}
24. Se citesc numere ntregi de la tastatur, pn la introducerea valorii 0. Aflai suma valorilor citite. De exemplu, pentru irul de intrare 2,56,78,4,0, rezultatul va fi s=140 (adic 2+56+78+4+0) #include<conio.h> #include<iostream.h> void main() {clrscr(); long int n,c,s=0; cout<<"introduceti nr:";cin>>n; while (n!=0) { s=s+n; cout<<"dati alt nr:"; cin>>n; } cout<<"suma. numerelor este"<<s<<endl; getch();} 25. Se citete un numr ntreg,n. Aflai suma cifrelor acestuia. De exemplu, pentru n=4568, suma calculat va fi s=23 (adic 4+5+6+8) #include<conio.h> #include<iostream.h> void main() {clrscr(); long int n,c,s=0; cout<<"introduceti nr:";cin>>n; while (n!=0) {c=n%10; s=s+c;n=n/10; } cout<<"suma. cifrelor este"<<s<<endl; getch();}
Instructiunea repetitiva cu test final (do-while) 26. Se citete un numr ntreg,n. Aflai cte cifre conine. De exemplu, pentru n=4568, numrul calculate va fi k=4 cifre #include<conio.h> #include<iostream.h> void main() {clrscr(); long int n, nrc=0; cout<<"introduceti nr:";cin>>n; do {n=n/10; nrc++ ;} while (n!=0); cout<<"nr. cifrelor este"<<nrc<<endl; getch();} Tablouri unidimensionale (vectori)
27. Se citete un vector cu n componente reale. Aflai suma elementelor vectorului. #include <iostream.h> #include <conio.h> void main(){ int n, v[50],i,s=0; cout<<"Dati numarul elementelor vectorului"; cin >>n; for(i=1;i<=n;i++) { cout<<"elementul "<<i<<":"; cin>>v[i]; s=s+v[i];} cout<<"suma elemtelor vectorului este "<<s; getch();} 28. Se citete un vector cu n componente reale. Aflai maximul dintre acestea. #include <iostream.h> #include <conio.h> void main(){ int n, v[50],i,s=0; cout<<"Dati numarul elementelor vectorului"; cin >>n; for(i=1;i<=n;i++) { cout<<"elementul "<<i<<":"; cin>>v[i]; s=s+v[i];} cout<<"suma elemtelor vectorului este "<<s; getch(); }
8
29. Se citete un vector cu n componente reale. Aflai minimul dintre acestea. #include <iostream.h> #include <conio.h> void main(){ int n, v[50],i,min; cout<<"Dati numarul elementelor vectorului"; cin >>n; for(i=1;i<=n;i++) { cout<<"elementul "<<i<<":"; cin>>v[i];} min=v[1]; for(i=2;i<=n;i++) if (min>v[i]) min=v[i]; cout<<"minimul este "<<min; getch(); } 30. Se citesc doi vectori a i b, avnd elemente ntregi. Aflai suma c a celor doi vectori. Elementele ci, ale vectorului c, se calculeaz astfel: ci=ai+bi, pentru orice i, ntre 1 i n. #include <iostream.h> #include <conio.h> void main(){ int n, a[50],b[50],c[50],i; cout<<"Dati elementelor vectorilor"; cin >>n; cout<<"vectorul a:"<<endl; for(i=1;i<=n;i++) { cout<<"a["<<i<<"]:"; cin>>a[i];} cout<<"vectorul b:"<<endl; for(i=1;i<=n;i++) { cout<<"b["<<i<<"]:"; cin>>b[i]; c[i]=a[i]+b[i];} for(i=1;i<=n;i++) cout<<c[i]<<" "; getch(); }
Siruri de caractere 31. Se citete de la tastatur un ir s de caractere i un character c. Aflai dac c se gsete n irul s i, n caz afirmativ, afiai poziia pe care se afl. De exemplu, dac s=examen i c=e, programul va afia Se gsete n poziiile 0, 4. #include <iostream.h> #include <conio.h> #include <string.h> void main(){ clrscr( ); char s[100]; cout<<"dati sirul:"; cin.getline(s,100); cout<<"Lungimea sirului introdus este "<<strlen(s); getch(); } 32. Se citete de la tastatur un ir s de caractere. Aflai lungimea acestuia. #include <iostream.h> #include <conio.h> #include <string.h> void main(){ clrscr( ); char s[100]; cout<<"dati sirul:"; cin.getline(s,100); cout<<"Lungimea sirului introdus este "<<strlen(s); getch(); } 33. Se citete de la tastatur un ir s de caractere. Transformai toate caracterele din irul s n litere mari. #include <iostream.h> #include <conio.h> #include <string.h> #include <ctype.h> void main(){ clrscr( ); char s[100],c; int i; cout<<"dati sirul:"; cin.getline(s,100); for (i=0;i<=strlen(s);i++) s[i]=toupper(s[i]); cout<<s; getch(); }
10
34. Se citete de la tastatur un ir s de caractere. Transformai toate caracterele din irul s n litere mici. #include <iostream.h> #include <conio.h> #include <string.h> void main(){ clrscr( ); char s[100],c; int i; cout<<"dati sirul:"; cin.getline(s,100); strlwr(s); cout<<s; getch(); }
Tablouri bidimensionale (matrici) 35. Intr-o coala sunt 30 de clase. n fiecare clas sunt 25 de elevi, identificai printr-un nume. Care dintre urmtoarele declaraii poate fi folosit pentru memorarea acestor informaii? a) b) c) d) int elev[30][25]; int elev[55] int elev=[25][30] char[40] elev[30][25]
36. O matrice ptratic este simetric fa de diagonala principal dac, pentru orice pereche de indici (i,j): a) a[i][j] == - a[j][i] b) a[i][j] == - a[i][j] c) a[i][j] == a[j][i] d) a[i][j] != a[i][j] e) 37. Se citesc de la tastatur elementele unei matrici ptratice, de dimensiune n, preluat. S se afieze elementele matricei b) S se afieze elementele de pe diagonala principal matricei i cele de pe diagonala secundar. #include <iostream.h> #include <conio.h> void main(){clrscr(); int n,i,j; float a[10][10]; cout<<"Dimensiunea matricei:";cin>>n; for (i=1; i<=n;i++) for (j=1; j<=n;j++) { cout<<"Elementul["<<i<<","<<j<<"]="; cin>> a[i][j];}
11
/*afisarea sub forma de matrice*/ for (i=1; i<=n;i++) { for (j=1; j<=n;j++) cout <<a[i][j]<<" "; cout<<endl;} cout<<Diagonala principala:<<endl; for (i=1; i<=n;i++) for (j=1; j<=n;j++) if (i==j) cout<<a[i][j]<<" "; cout<<endl; cout<<Diagonala secundara:<<endl; for (i=1; i<=n;i++) for (j=1; j<=n;j++) if (j==n-i+1) cout<<a[i][j]<<" "; cout<<endl; getch();} 4. Se dau dou matrici, a i b, avnd m linii i n coloane. S se calculeze matricea sum c, unde cij=aij+bij #include <iostream.h> #include <conio.h> void main(){clrscr(); int m,n,i,j, a[10][10], b[10][10],c[10][10]; cout<<"Nr. linii:";cin>>m; cout<<"Nr. coloane:";cin>>n; for (i=1; i<=m;i++) for (j=1; j<=n;j++) { cout<<"a["<<i<<","<<j<<"]="; cin>> a[i][j];} for (i=1; i<=m;i++) for (j=1; j<=n;j++) { cout<<"b["<<i<<","<<j<<"]="; cin>> b[i][j];} for (i=1; i<=m;i++) for (j=1; j<=n;j++) c[i][j]=a[i][j]+b[i][j]; for (i=1; i<=m;i++) { for (j=1; j<=n;j++)cout <<c[i][j]<<" "; cout<<endl;} getch();}
12
38. Se dau dou matrici, a i b, a avnd m linii i n coloane, iar b avand n linii si p coloane. S se calculeze matricea produs c. #include <iostream.h> #include <conio.h> void main(){ int a[10][10], b[10][10], c[10][10]; int i, j, k; int m, n, p; clrscr(); // Se citesc dimensiunile matricelor a si b cout<<"Dimensiunile matricei a"<<endl; cout<<"Nr. linii:";cin>>m; cout<<"Nr. coloane:"; cin>>n; cout<<"Dimensiunile matricei b"<<endl; cout<<"Nr. linii:"<<n<<endl; cout<<"Nr. coloane:"; cin>>p; //Se citeste matricea A for(i=1; i<=m; i++) for(j=1; j<=n; j++) { cout<<"a["<<i<<","<<j<<"]="; cin>>a[i][j]; } //Se citeste matricea B for(i=1; i<=n; i++) for(j=1; j<=p; j++){ cout<<"b["<<i<<","<<j<<"]="; cin>>b[i][j];} //Se calculeaza matricea C for(i=1; i<=m; i++) for(j=1; j<=p; j++) { c[i][j]=0; for(k=1; k<=n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } //Se afiseaza matricea A cout<<"Matricea A:"<<endl ; for(i=1; i<=m; i++) { for(j=1; j<=n; j++) cout<<a[i][j];cout<<endl; } //Se afiseaza matricea B cout<<"Matricea B:"<<endl; for(i=1; i<=n; i++) { for(j=1; j<=p; j++) cout<<b[i][j];cout<<endl; } //Se afiseaza matricea C cout<<"Matricea produs C:" <<endl; for(i=1; i<=m; i++) { for(j=1; j<=p; j++) cout<<c[i][j]<<" ";cout<<endl; } getch();}
13
39. Se introduc punctajele realizate de m concureni la n probe sub forma unei matrici a, cu m linii i n coloane. Afiai punctajul total realizat de fiecare concurent. Exemplu: Date de intrare: m=3 n=2 punctaj concurent 1: 7 9 punctaj concurent 2: 10 8 punctaj concurent 3: 9 9 Date de intrare: Concurent 1 : 6 Concurent 2 : 18 Concurent 3 : 18 #include <iostream.h> #include <conio.h> void main(){clrscr(); int m,n,i,j, a[10][10], s ; cout<<"Nr. concurenti: (linii in matricea a )"; cin>>m; cout<<"Nr. probe (coloane in matricea a):";cin>>n; //se introduc punctajele fiecarui concurent i, pentru fiecare proba j, in elementul a[i][j] for (i=1; i<=m;i++) for (j=1; j<=n;j++) { cout<<"Dati punctajul concurentului "<<i<<" proba "<<j<<":"; cin>> a[i][j];} // se calculeaza punctajul total pentru fiecare concurent in variabila s for (i=1; i<=m;i++) {s=0; for (j=1; j<=n;j++) s=s+a[i][j]; cout<<"Concurent "<<i<<":"<<s<<endl;};getch();} 1) Trebuie cumparate p produse din m magazine. S se scrie un program care s indice, pentru fiecare produs, magazinul n care acesta are preul minim. Cunoscnd cantitile ce trebuie cumprate pentru fiecare produs, s se determine suma ce urmeaz a fi cheltuit. Exemplu: p=2 m=3 i preurile aezate ntr-o matrice cu p linii i m coloane: 50000 48000 49500 11000 11500 11500 se va afia: produs 1 pret minim in magazin 2 produs 2 pret minim in magazin 1 cunoscnd cantitile 5 7, suma necesar va fi de 317000 lei. #include <iostream.h> #include <conio.h> void main(){clrscr(); int m,p,i,j,k; long int a[10][10], s, min[10], c[10] ; cout<<"Nr. produse: (linii in matricea a )"; cin>>p; cout<<"Nr. magazine (coloane in matricea a):";cin>>m; //se introduc preturile pentru produsul i, magazinul j, in elementul a[i][j] for (i=1; i<=p;i++) for (j=1; j<=m;j++) { cout<<"Dati pretul produsului "<<i<<" magazinul "<<j<<":";
14
cin>> a[i][j];} // se calculeaza in vectorul min, pretul minim pentru fiecare produs i, in cele m magazine // k reprezinta magazinul unde a fost identificat pretul minim, la un moment dat for (i=1; i<=p;i++) {min[i]=a[i][1];k=1; for (j=2; j<=m;j++) if (min[i]>a[i][j]) {min[i]=a[i][j] ;k=j;} ; cout<<"Produs "<<i<<" pret minim in magazin "<<k<<endl;} /*se introduc cantitatile din produsul i, ce trebuie cumparate, in componenta c[i] a vectorului c*/ for (i=1; i<=p;i++) { cout<<"Dati cantitatea necesara din produsul "<<i<<":"; cin>> c[i];} //se calculeaza suma totala necesara s=0; for (i=1; i<=p;i++) s=s+c[i]*min[i]; cout<<"Suma necesara: "<<s; getch();}
15