2.7Probleme rezolvate
Problema 5. Fie un vector cu trei componente tip double. Se vor citi componentele vectorului de la tastatură şi se vor afişa pe ecran. Inainte de citirea componentelor se va afişa mesajul
Introduceti componentele vectorului x
La citirea componentului x[i] se va afişa mai întâi indicele componentului cu mesajul
x[i] =
Inainte de scrierea componentelor se va afişa mesajul
Componentele lui x
Apoi se va afişa fiecare component sub forma forma
x[i] = valoare
Programul este următorul.
#include
using namespace std;
int main()
{
double x[3];
int i;
cout << " Introduceti componentele vectorului x" << endl;
for(i = 0; i < 3; i++)
{
cout << "x[" << i << "] = ";
cin >> x[i];
}
cout << "Componentele lui x" << endl;
for(i = 0; i < 3; i++)
cout << "x[" << i << "] = " << x[i] << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Prima instrucţiune for execută repetat două instrucţiuni
cout << "x[" << i << "] = "; cin >> x[i];
In consecinţă, ele se scriu între acolade. A doua instrucţiune for execută o singură instrucţiune
cout << "x[" << i << "] = " << x[i] << endl;
In consecinţă, nu este necesar să scriem această instrucţiune între acolade.
Problema 5. Se dă un şir de 5 numere. Să se scrie un program care să calculeze suma şi media termenilor şirului. Valorile termenilor şirului se vor citi de la tastatură. Programul este cel de mai jos.
#include
using namespace std;
int main(){
float s = 0, media, x[5];
int i;
for(i = 0; i < 5; i++){
cout << "dati x["<> x[i];
s = s + x[i];
}
media = s / 5;
cout << "suma este "<< s <<" media este " << media << endl;
return 0;
}
Rezultatele rulării programului sunt cele de mai jos.
Problema 6. Să se scrie un program care să calculeze suma primelor n numere impare
s = 1 + 3 + 5 + … + (2n-1)
Valoarea lui n se va citi de la tastatură. Programul este următorul.
#include
using namespace std;
int main(){
int s=0, i, n;
cout << "dati n" << endl;
cin >> n;
for(i=1; i<=2*n-1; i=i+2)
s = s + i;
cout<<"suma primelor "<
return 0;
}
Rezultatele rulării programului sunt cele de mai jos.
Problema 7. Operatorii de deplasare << şi >> pentru expresii întregi
Se consideră o variabilă întreagă a = 1024. Să se scrie un program care să deplaseze variabila a spre dreapta cu câte 1 bit de 4 ori. Se va afişa variabila a în zecimal şi hexazecimal după fiecare deplasare cu un bit.
Se consideră o variabilă întreagă a=-8. Să se scrie un program care să deplaseze spre dreapta cu câte 1 bit de 3 ori variabila a. Se va afişa variabila a în zecimal şi hexazecimal după fiecare deplasare cu un bit.
În program se utilizează manipulatorii dec şi hex care dau modul de afişare al numărului : zecimal, respectiv hexazecimal, .
#include
using namespace std;
int main(){
int a = 1024;
cout << "numar" << '\t' << "baza 10" << '\t' << "baza 16" << endl;
cout << "a "<< '\t' << dec << a << '\t' << hex << a <
for(int i = 1; i <= 4;i++){
a = a >> 1;
cout << "a >> "<< i << '\t' << dec << a << '\t' << hex << a << endl;
}
cout<<"************************"<
a = -8;
cout << "numar" << '\t' << "baza 10" << '\t' << "baza 16" << endl;
cout << "a "<< '\t' << dec << a << '\t' <
for(int i = 1; i <= 3; i++){
a = a << 1;
cout << "a << "<< i << '\t' << dec << a << '\t' << hex << a << endl;
}
return 0;
}
Rezultatele rulării programului sunt cele de mai jos.
Problema 8. Să se scrie un program care să calculeze suma a două matrice A şi B, cu două linii şi trei coloane fiecare. Elementele matricelor se vor citi de la tastatură. Dacǎm notǎm prin C matricea sumă, algoritmul de calcul este următorul.
for i =1 to 2
for j = 1 to 3
Programul este cel de mai jos.
#include
using namespace std;
int main(){
int i,j;
float a[2][3],b[2][3],c[2][3];
cout << "suma a doua matrice de 2 x 3" << endl;
for(i = 0; i < 2; i++)
for(j = 0; j < 3; j++) {
cout << "a["<>a[i][j];
cout << "b["<>b[i][j];
c[i][j]=a[i][j]+b[i][j];
}
cout << "matricea suma este" << endl;
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++)
cout<<"\t"<
cout << endl;
}
return 0;
}
Rezultatele rulării programului sunt cele de mai jos.
Problema 9. Să se scrie un program care să calculeze valorile funcţiei
cu pasul
#include
#include
#include
using namespace std;
int main()
{
cout << setw(4) << "t" << '\t'
<< setw(6) << "f(t)" << endl;
for(double t=0; t<=1; t = t + 0.1) {
double f = (exp(-0.1*t)*sin(10*t));
cout << setw(4) << t << '\t'
<< setw(6) << f << endl;
}
return 0;
}
Rezultatele rulării programului sunt prezentate mai jos.
Problema 10. Să se scrie un program care să calculeze cmmdc al două numere întregi. Programul va citi repetat seturi de două numere întregi de la tastatură până când primul număr citit este zero. Programul este următorul.
#include
using namespace std;
int cmmdc(int a,int b){
int r,m;
if(a < b) {
//interschimba pe a cu b
m = a; a = b; b = m;
}
r=a%b;
while (r!=0){
a=b; b=r; r=a%b;
}
return(b);
}
int main(){
int a,b,d;
cout << "calculul cmmdc al doua numere intregi" << endl;
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
while(a){
d = cmmdc(a, b);
if(d == 1)
cout << "numerele sunt prime intre ele" << endl;
else
cout << "numerele nu sunt prime intre ele, cmmdc = " << d << endl;
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
}
return (0);
}
Rezultatele rulării programului sunt cele de mai jos.
Problema 11. Fie vectorii a = (1.2, -1.0, 7.5) şi b = (-2.33, 1.244, 13.1) Să se scrie un program care să calculeze suma celor doi vectori. Programul este cel de mai jos.
#include
using namespace std;
int main(){
float c[3],a[3]={1.2, -1.0, 7.5};
float b[3]={-2.33, 1.244, 13.1};
cout << "suma a doi vectori, a si b" << endl;
for (int i=0;i<3;i++)
cout << "a[" << i << "] = " << a[i] << '\t';
cout << endl;
for (int i=0;i<3;i++)
cout << "b[" << i << "] = " << b[i] << '\t';
cout << endl;
for (int i=0;i<3;i++) {
c[i]=a[i]+b[i];
cout<<"c["<
}
cout <
return 0;
}
Rezultatele rulării programului sunt cele de mai jos.
Dostları ilə paylaş: |