Expresii aritmetice. Instructiunea de atribuire
Instructiunea de atribuire
4.1.1. Instructiunea de atribuire simpla
Instructiunea de atribuire simpla atribuie o anumita valoare unei variabile. Sintaxa instructiunii de atribuire simpla este urmatoarea:
v=expresie;
unde:
= este operatorul de atribuire.
v este identificatorul unei variabile de un anumit tip declarata corespunzator si se mai numeste si variabila rezultat.
'expresie' este o expresie de un anumit tip, compatibil cu tipul variabilei rezultat v, expresie numerica (intreaga sau reala), expresie relationala, expresie logica, etc.
Instructiuni de atribuiri multiple
unde:
v1,v2,v3, ... vn sunt variabile de acelasi tip sau de tipuri compatibile;
expresie - este o expresie de tip compatibil cu variabilele vi, i=1,n.
Instructiunile de atribuire multipla se evalueaza de la dreapta la stanga. Asfel, se evalueaza expresia a carei valoare va fi atribuita variabilei vn, care la randul sau va fi atribuita variabilei vi-1. s.a.m.d . pana la atribuirea aceleiasi valori variabilei v1.
Exemplu:
x=y=z=a=b1=2.
Expresii aritmetice
Expresiile aritmetice sunt formate din constante, variabile si functii. Operatorii utilizati in expresiile aritmetice sunt +, - * /, iar in cazul operanzilor de tip intreg si % (restul impartirii a doua numere intregi). Pentru a grupa termeni se pot utiliza parantezele rotunde ( si ). Prototipurile functiilor matematice standard sunt definite in biblioteca <math.h>
Tabela 1. Functii matematice standard
Functia |
Descriere |
int abs(int) |
Calculeaza valoarea absoluta a unui intreg |
double acos(double) |
Calculeaza arcos |
double asin(double) |
Calculeaza arcsin |
double atan(double) |
Calculeaza arctg |
double atan2(double x, double y) |
Calculeaza arctg(x/ y) |
int atoi(char []) |
Converteste un sir in intreg |
float atof(char []) |
Converteste un sir in double |
double ceil(double) |
Calculeaza cel mai mic intreg >= cu x |
double cos(double) |
Calculeaza cos |
double cosh(double) |
Calculeaza cosh |
double exp(double) |
Calculeaza exp |
double fabs(double) |
Calculeaza valoarea absoluta a unui real |
double floor(double) |
Calculeaza rotunjire inferioara |
fmod(double, double) |
Calculeaza restul impartirii a doua numere reale |
long labs(long) |
Calculeaza valoarea absoluta a unui intreg long |
double log(double) |
Calculeaza logaritmul natural |
double log10(double) |
Calculeaza logaritmul zecimal |
double pow(double a, double b) |
Calculeaza a la puterea b |
double sin(double) |
Calculeaza sin |
double sinh(double) |
Calculeaza sinh |
double sqrt(double) |
Calculeaza radacina patrata |
double tan(double) |
Calculeaza tan |
double tanh(double) |
Calculeaza tanh |
Probleme rezolvate
Problema 5. Se dau urmatoarele variabile intregi: a = 7, b = 3, c = -5. Sa se scrie un program care sa calculeze valorile urmatoarelor expresii :
a+b+c a%b
2a +3(a+b) a%c
a / b (ac)%b
a b / c a(c%b)
Se vor afisa valorile variabilelor a, b, c si valorile expresiilor calculate. Programul este urmatorul.
#include<iostream.h>
void main()
Rezultatele rularii programului sunt cele de mai jos.
Problema 6. Se dau urmatoarele variabile reale: x = 8.7, y = 3.5, z = -5.2; Sa se se scrie un program care sa calculeze valorile urmatoarelor expresii:
x+y+z (x/y) +z 1/(x+y+z)
2y+5(x-z) (2x)/ (3y) 2 x / (3 y+2.4)
x / y x/(y+z) (x+y)/(x+2y+z)
Se vor afisa valorile variabilelor x, y, z si valorile expresiilor calculate. Programul este urmatorul.
#include<iostream.h>
void main()
Rezultatele rularii programului sunt cele de mai jos.
Problema 7. Se da circuitul electric de mai in care rezistentele au valorile R1= 1k, R2 = 3k. La bornele circuitului se aplica o tensiune U=10V. Sa se calculeze curentul si caderea de
tensiune pe fiecare rezistenta. Programul este urmatorul.
#include<iostream.h>
int main()
Rezultatele rularii programului sunt prezentate in caseta.
Problema 8. Se dau variabilele intregi, i = 2, j = -7, si variabilele reale x = 14.3, y = 2.5. Sa se calculeze expresiile
ln(x) cos(x+y)
tg(x)
Se vor include prototipurile functiilor matematice care se afla in biblioteca <math.h>. Programul este urmatorul.
#include<iostream.h>
#include<math.h>
int main()
Rezultatele rularii programului sunt cele de mai jos.
Problema 9. Fie un vector cu 3 componente reale x = (1.2, -3.45, 11). Sa se calculeze norma vectorului x. Sa se modifice programul ca valorile componentelor sa se citeasca de la tastatura. Norma vectorului x se defineste ca . Programul este urmatorul.
#include<iostream.h>
#include<math.h>
void main(void)
norma=sqrt(norma);
cout<<'norma='<<norma<<endl; }
Rezultatele rularii programului sunt prezentate in caseta text.
Problema 10. Fie x1, x2 si x3 trei variabile tip caracter ce au valorile '2', '?' si 'G'. Sa se calculeze valorile numerice ale expresiilor
x1 x2 x3
x1 / x2 x1 % x2 2 * x1
x1 / x3 x1 % x3 '2' * x1
x1 + x2 - x3 + 2 '2' + '3' (x1 / x2) * x3
x1 + 2 x1 + '@' + 1 x1 / x2 * x3
Pentru a preciza dimensiunea campului in care se scrie o valoare se foloseste manipulatorul
setw(int)
din biblioteca <iomanip.h>. Argumentul functiei setw() da dimensiunea in caractere a campului urmator. Programul este urmatorul.
# include <iostream.h>
# include <iomanip.h>
int main()
Rezultatele rularii programului sunt cele de mai jos.
Probleme propuse
Problema 1. Sa se scrie un program care sa afiseze litera E pe ecran intr-o grila de 7 x 7 puncte.
*******
*
*
***
*
Indicatie. Fiecare linie se va afisa cu o instructiune cout.
Problema 2. Sa se scrie un program care sa afiseze valorile minima si maxima pentru tipul float. Constantele respective sunt FLT_MIN si FLT_MAX si sunt definite in biblioteca <float.h>
Problema 3. Sa se scrie un program care sa citesca valorile x si n de la tastatura si sa calculeze expresia , unde x este real si n este intreg.
Problema 4. Sa se scrie un program care sa efecteze cele patru operatii aritmetice cu numerele reale 12.44 si 3.57 in simpla precizie. Rezultatele se vor afisa astfel
a = 12.44
b = 3.57
a + b = .
a - b = .
a * b = .
a / b = .
Problema 5. Fie x un vector cu doua componente intregi. Se vor citi componentele vectorului de la tastatura si se vor calcula calcula expresiile
Se vor afisa valorile componentelor vecorului si valorile expresiilor. Prototipurile functiilor matematice sunt definite in biblioteca <math.h>.
Problema 6. Sa de defineasca un vector de tip char care sa contina textul "Curs de programare". Sa se afiseze acest sir pe ecran.
Problema 7. Conversia tipurilor. Se dau : variabila de tip intreg
int m = 14
si variabila de tip real
float x = 3.14159
Fie variabilele n si m date de instructiunile
int n = m + x;
float y = m + x;
Sa se afiseze valorile variabilelor m si x si ale variabilelor n si y. Sa se explice rezultatele.
Problema 8. Sa se calculeze valoarea expresiei
pentru x = 1.2 si x = 6.3 radiani.
Prototipurile functiilor matematice se afla in biblioteca <math.h>
Problema 9. Se da matricea cu elemente reale
Sa se calculeze determinantul acestei matrice.
Problema 10. Se da matricea
Sa se calculeze expresia
|