Programarea Calculatoarelor Rezolvare Subiecte

9
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

Transcript of Programarea Calculatoarelor Rezolvare Subiecte

Page 1: Programarea Calculatoarelor Rezolvare Subiecte

Programarea calculatoarelor

1. Sa se determine max dintre 3 nr. reale.Pseudocod:

Startreal a,b,c,max;citeste a,b,c;daca a>b si a>c atunci max<-aaltfel daca b>c atunci max<-b altfel max<-cscrie maxstop

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.PseudocodStartunsigned int x;citeste x; S<-0Pentru i<-1,x,1 Executa Daca x mod i =0 atunci S=S+iScrie S

Page 2: Programarea Calculatoarelor Rezolvare Subiecte

StopIn 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= =2x+=y inseamna x=x+y => x= 4+2=6, y= 2*2+8=4+8=12x=6, y=12

4. Declaratia în limbajul C :float x,y;a) este echivalenta cu: float x;float y;b) este gresitac) este echivalenta cu: x,y:float;d) este echivalenta cu: real x,y;

Page 3: Programarea Calculatoarelor Rezolvare Subiecte

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) 70b) 82c) 92d) 2

Rezolvare:x=10, i=1, y=2i=1< 10 DA deci (i++) adica i=2, (y+=x) y=y+x= 12i=2<10 DA deci i=3, y=22i=3<10 DA deci i=4, y=32i=4<10 DA deci i=5, y=42i=5<10 DA deci i=6, y=52i=6<10 DA deci i=7, y=62i=7<10 DA deci i=8, y=72i=8<10 DA deci i=9, y=82i=9<10 DA deci i=10, y=92i=10<10 NU deci y=92

6. Secventa de program:int i=3;while(i!=0)i--;cout<<i;

a) afiseaza 2 1 0b) contine o bucla eternac) afiseaza 0d) nu afiseaza nimic, întrucât contine erori de sintaxa

Page 4: Programarea Calculatoarelor Rezolvare Subiecte

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

E= x

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>

Page 5: Programarea Calculatoarelor Rezolvare Subiecte

#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 valoareavariabilei întregi a sa fie un numar par?

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

10. Se citeste un vector cu n componente numere întregi. Sa se calculeze mediaaritmetica 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]; }

Page 6: Programarea Calculatoarelor Rezolvare Subiecte

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 maimare 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){

Page 7: Programarea Calculatoarelor Rezolvare Subiecte

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 produsulscalar al celor doi vectori.

PS=

Exemplu: Pentru n = 4 si x ={3, 6, 8, 4} si y ={-2, 1, 3, 2} produsul scalar estePS 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++) {

Page 8: Programarea Calculatoarelor Rezolvare Subiecte

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();}