Se vor afişa valorile variabilelor x, y, z şi valorile expresiilor calculate. Programul este următorul.
using namespace std;
int main(){
float x = 8.7, y = 3.5, z = -5.2;
// se afiseaza valorile variabilelor
cout << "x = " << x << " y = " << y << " z = " << z << endl;
// se calculeaza expresiile
cout << "x+y+z=" << x + y + z << endl;
cout << "2y+5(x-z) = " << 2*y+5*(x-z) << endl;
// se completeaza programul cu calculul celelalte expresii
cout<<"2 x / (3 y+2.4)="<<2*x/(3*y+2.4)<
cout << "(x+y)/(x+2y+z)=" << (x+y)/(x + 2 * y +z) << endl;
return 0;
}
Rezultatele rulării programului sunt cele de mai jos.
Problema 9. Se dă circuitul electric de mai jos, în care rezistenţele au valorile R1= 1kΩ, R2 = 3kΩ. La bornele circuitului se aplică o tensiune U=10V. Să se calculeze curentul şi căderea de tensiune pe fiecare rezistenţă.
Programul este următorul.
#include
using namespace std;
int main(){
float R1=1000,R2=3e3,U=10,I,U1,U2;
I=U/(R1+R2);
U1=R1*I;
U2=R2*I;
cout<<"curentul="<
return 0;
}
Rezultatele rulării programului sunt prezentate mai jos.
Problema 10. Se dau variabilele întregi, i = 2, j = -7, şi variabilele reale x = 14.3, y = 2.5. Să se calculeze expresiile
ln(x) cos(x+y)
tg(x)
Indicaţie. Prototipurile funcţiilor matematice care se află în biblioteca .
Programul este următorul.
#include
using namespace std;
#include
int main() {
double x, y, e;
x = 14.3;
y = 2.5;
e = sqrt(x * x + y * y);
cout<<"sqrt (x^2+y^2) = "<
e = exp(x);
cout<<"e^x = "<
e = log(x);
cout<<"ln(x) = "<
e = cos(x + y);
cout << "cos(x+y) = " << e <
e = tan(x);
cout << "tg(x) = " << e << endl;
e = log10(x);
cout << "log.10(x) = " << e <
e = fabs(x + y);
cout << "|x+y| = " << e << endl;
int i = 2, j = -7;
e = abs(i + j);
cout<<"|i+j| = "<
return 0;
}
Rezultatele rulării programului sunt cele de mai jos.
Problema 12. Fie x1, x2 şi x3 trei variabile tip caracter ce au valorile ‘2’, ‘?’ şi ‘G’. Să se afişeze valoarile acestor variabile şi codurile ASCII ale caracterelor şi să se calculeze valorile numerice ale expresiilor:
x1 / x2 x1 % x2 2 * x1
x1 / x3 x1 % x3 ‘3’ * x1
x1 + x2 - x3 + 200 ‘2’ + ‘3’ (x1 / x2) * x3
x1 + 2 x1 + ‘@’ + 1 x1 / x2 * x3
La efectuarea calculelor, valorile variabilelor şi constantelor tip char sunt convertite în tipul int şi calculele se fac cu numere întregi pe 32 biţi. Dacă rezultatul trebuie atribuit unei variabile de tip char, el este trunchiat la 8 biţi. In program valorile expresiilor sunt atribuite unei variabile tip int şi unei variabile tip unsigned char, ce sunt apoi afişate.
Pentru a preciza dimensiunea câmpului în care se scrie o valoare se foloseşte manipulatorul setw(int) din biblioteca iomanip. Argumentul funcţiei setw() dă dimensiunea în caractere a câmpului următor.
Programul este cel de mai jos.
# include
using namespace std;
# include
int main() {
char x1 = '5', x2 = '?', x3 = 'G';
char e;
int i;
cout << "codurile ASCII ale caracterelor folosite" << endl;
cout << "\t" << x1 << "\t" << int(x1) << endl
<< "\t" << x2 << "\t" << int(x2) << endl
<<"\t" << x3 << '\t' <
<<"\t" << '@' << '\t'<
cout << setw(12) << "expresie" << setw(10) << "rezultat" << setw(12)
<< " conversie la char" << endl;
i = x1 / x2; e = x1 / x2;
cout << setw(12) << "x1/x2" <
i = x1 % x2; e = x1 % x2;
cout << setw(12) << "x1%x2" <
i = x1 + x2 - x3 + 200; e = x1 + x2 - x3 + 200;
cout << setw(12) << "x1+x2-x3+2" <
i = '2' + '3'; e = '2' + '3';
cout << setw(12) << "'2'+'3'" <
i = x1 + '@' + 1; e = x1 + '@' + 1;
cout << setw(12) << "x1+'@'+1" <
i = x1 + 2; e = x1 + 2;
cout << setw(12) << "x1+2" <
i = 2 * x1; e = 2 * x1;
cout << setw(12) << "2*x1" <
i = '3' * x1; e = '3' * x1;
cout << setw(12) << "'3'*x1" <
i = (x1 / x2) * x3; e = (x1 / x2) * x3;
cout << setw(12) << "(x1/x2)*x3" <
}
Rezultatele rulării programului sunt cele de mai jos.
Să se explice rezultatele expresiilor x1 / x2, '3' * x1 şi (x1 / x2) * x3. De ce nu se afişază caracterul corespunzător primei şi ultimei expresii?