Programarea Calculatoarelor Cursul 9: Șiruri de caractere ...
Programarea Calculatoarelor Rezolvare Subiecte
-
Upload
safta-daniel -
Category
Documents
-
view
78 -
download
6
Transcript of 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
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;
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
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>
#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]; }
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){
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++) {
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();}