Sunteți pe pagina 1din 8

Programarea calculatoarelor 1. Sa se determine max dintre 3 nr. reale.

Pseudocod: Start real a,b,c,max; citeste a,b,c; daca a>b si a>c atunci max<-a altfel daca b>c atunci max<-b altfel max<-c scrie max stop In c++ #include<iostream.h> #include<conio.h> void main() { float a,b,c,max; clrscr(); cout<<"a= ";cin>>a; cout<<"b= ";cin>>b; cout<<"c= ";cin>>c; if(a>b && a>c) max=a; else if(b>c) max=b; else max=c; cout<<"maximul este "<<max; getch(); } 2. Suma divizorilor unui nr. nat. x. Pseudocod Start unsigned int x; citeste x; S<-0 Pentru i<-1,x,1 Executa Daca x mod i =0 atunci S=S+i Scrie S Stop

In c++ #include<iostream.h> #include<conio.h> void main() { unsigned int x,i,S; clrscr(); cout<<"x= ";cin>>x; S=0; for(i=1;i<=x;i++) if(x%i==0) S=S+i; cout<<"Suma divizorilor lui "<<x<<" este "<<S; getch(); }

3. Fie atribuirile, unde x si y sunt variabile reale: x=3; y=4; x++; y=sqrt(y); x+=y; y=y*2+8; x=y/2; n final, x si y vor avea valorile: a) x=12; y=4; b) x=6; y=2;

c) x=6; y=12;
d) x=12; y=6; Rezolvare: x=3, y=4

x=4, y= =2 x+=y inseamna x=x+y => x= 4+2=6, y= 2*2+8=4+8=12 x=6, y=12


4. Declaratia n limbajul C : float x,y;

a) este echivalenta cu: float x;float y;


b) este gresita c) este echivalenta cu: x,y:float; d) este echivalenta cu: real x,y;

5. Fie urmatoarea secventa de program: cin>>x; i=1; y=2; while(i<10) { i++; y+=x; } cout<<y; Ce valoare se va afisa daca pentru variabila x se citeste valoarea 10? a) 70 b) 82

c) 92
d) 2

Rezolvare: x=10, i=1, y=2 i=1< 10 DA deci (i++) adica i=2, (y+=x) y=y+x= 12 i=2<10 DA deci i=3, y=22 i=3<10 DA deci i=4, y=32 i=4<10 DA deci i=5, y=42 i=5<10 DA deci i=6, y=52 i=6<10 DA deci i=7, y=62 i=7<10 DA deci i=8, y=72 i=8<10 DA deci i=9, y=82 i=9<10 DA deci i=10, y=92 i=10<10 NU deci y=92
6. Secventa de program: int i=3; while(i!=0) i--; cout<<i; a) afiseaza 2 1 0 b) contine o bucla eterna

c) afiseaza 0
d) nu afiseaza nimic, ntruct contine erori de sintaxa

7. Scrieti un program C/C++ pentru calculul expresiei

E= REZOLVARE:

#include<iostream.h> #include<conio.h> #include<math.h> void main() { int x,valid; float E; clrscr(); cout<<"x=";cin>>x; valid=0; if (x<=0) { if (x!=-2) { E=(float)(x-1)/(x+2); valid=1; } else cout<<"Nu este posibil"<<endl; } else { E=sqrt(x*x+3); valid=1; } if (valid==1) cout<<"Expresia este= "<<E; getch(); }

8. Scrieti un program C/C++ pentru calculul sumei: S= REZOLVARE: #include<iostream.h> #include<conio.h> void main()

{ unsigned int i,n; float S; clrscr(); cout<<n=;cin>>n; S=0; for (i=1;i<=n;i++) S=S+(float)i*i/(i+1); cout<<Suma este=<<S; getch(); }

9. Care din urmatoarele expresii logice reprezinta n limbajul C conditia ca valoarea variabilei ntregi a sa fie un numar par? a) a mod i=0

b) a%2==0
c) a%2=1 d) a mod 2=0

10. Se citeste un vector cu n componente numere ntregi. Sa se calculeze media aritmetica a numerele pare din vector. Exemplu: Pentru n=8 si v={3, 6, 8, 4, 15, 12, 7, 11} se obtine media 7.50 . Rezolvare: #include<iostream.h> #include<conio.h> #include<math.h> void main() { clrscr(); int n; int nrPare = 0; cout<<"Introduceti dimensiunea vectorului:"; cin>>n; int *v=new int[n]; int i; for (i=0;i<n;i++) { cout<<"v["<<i<<"]="; cin>>v[i]; } long suma=0; for (i=0;i<n;i++) {

if (v[i]%2 == 0){ nrPare++; suma+=v[i]; } } if(nrPare == 0) cout << "Nu ati introdus niciun numar par"; else cout<<"media aritmetica a elemetelor pare este:\n"<<(float)suma/nrPare; delete v; getch(); }

11. Se citeste un vector cu n componente numere ntregi. Sa se determine cel mai mare numar divizibil cu 3 din vector. Exemplu: Pentru n=8 si v={3, 6, 28, 4, 15, 12, 17, 11} se obtine numarul 15 . Rezolvare: #include<iostream.h> #include<conio.h> #include<math.h> void main() { clrscr(); int n; int max; cout<<"Introduceti dimensiunea vectorului:"; cin>>n; int *v=new int[n]; int i; for (i=0;i<n;i++) { cout<<"v["<<i<<"]="; cin>>v[i]; } int j = 0; for (i=0;i<n;i++) { if (j == 0){ if (v[i]%3 == 0){ max = v[i]; j=1; } } else if (v[i]%3 == 0){

if(max < v[i]) max = v[i]; } } if(j == 0) cout << "Nu ati introdus niciun numar divizibil cu 3"; else cout<<"cel mai mare nr divizibil cu 3 este:\n"<<max; delete v; getch(); }

12. Se citesc doi vectori x si y de aceeasi dimensiune n. Sa se calculeze produsul scalar al celor doi vectori. PS=

Exemplu: Pentru n = 4 si x ={3, 6, 8, 4} si y ={-2, 1, 3, 2} produsul scalar este PS 3(2) 6 18 3 4 2 32


Rezolvare:

#include<iostream.h> #include<conio.h> #include<math.h> void main() { clrscr(); int n; cout<<"Introduceti dimensiunea vectorilor:"; cin>>n; int *x=new int[n]; int *y=new int[n]; int i; cout<< "introduceti vectorul x: \n"; for (i=0;i<n;i++) { cout<<"x["<<i<<"]="; cin>>x[i]; } cout<< "introduceti vectorul y: \n"; for (i=0;i<n;i++) { cout<<"y["<<i<<"]="; cin>>y[i];

} long ps=0; for (i=0;i<n;i++) { ps += x[i] * y[i]; }

cout<< "Produsul scalar este:" << ps; delete x; delete y; getch(); }