Documente Academic
Documente Profesional
Documente Cultură
Clasa X-a
Prin evaluarea unei expresii se înţelege calculul
valorii ei.
Rezultatul furnizat depinde de valorile operanzilor și de
operatorii care acţionează asupra acestora.
4. expresia
2. termenii
propriu-zisă
3. expresiile
simple
Programul de mai jos afișează pe ecran rezultatele evaluării
expresiilor x*y+z şi x+y<z–1.0. Valorile curente ale variabilelor x,
y şi z sunt citite de la tastatură.
// Programul P39
#include <iostream>
using namespace std;
// Evaluarea expresiilor
int main()
{double x, y, z;
cout<<″Introduceti numerele reale x, y, z:\n″;
cin>>x>>y>>z;
cout<<x*y+z<<endl;
cout<<(x+y<z-1.0);
return 0;
}
Sarcină individuală
Fie x = 1, y = 2 şi z = 3. Evaluaţi următoarele expresii:
• a) x+y+2*z • f) x*(y+y)*z
• b) (x+y+2)*z • g) x*y<y*z
• c) x*y+y*z • h) (x>y) || (6*x>y+z)
• d) x*(y+y)*z • i)!(x+y+z>0)
• e) (x*y+y)*z • j)!(x+y>0) && !(z<0)
Creați un program care evaluează expresiile c şi g. Valorile curente
ale variabilelor reale x, y şi z se citesc de la tastatură.
•6*i<sin(x/y)
• unde i este de tip int, iar x și y sunt de tip double .
• Aflăm tipul fiecărei părți componente și al
expresiei în ansamblu în ordinea de
evaluare:
• 1) 6*i
• 2) x/y
• 3) sin(x/y)
• 4) 6*i < sin(x/y)
• Aflăm tipul fiecărei părți componente și al
expresiei în ansamblu în ordinea de
evaluare:
• 1) 6*i rezultat de tip int;
• 2) x/y rezultat de tip double;
• 3) sin(x/y) rezultat de tip double;
• 4) 6*i < sin(x/y) rezultat de tip bool.
În funcţie de expresii
tipul expresiei, aritmetice
distingem: (integer sau
double);
expresiile aritmetice int
sau double în C++
Expresiile ordinale – int,
bool, char, enumerare în
C++, expresii
iar expresiile booleene – expresii
ordinale (int,
booleene
bool în C++. bool, char,
(bool).
enumerare);
aflaţi tipul următoarelor expresii:
a) i % 3
b)i/3
c)i % 3 > j / 4
d)x+y/(x–y)
e) !(x<i)
f)sin(abs(i)+abs(j))
g)sin(abs(x)+abs(y))
h)p && (cos(x)<=sin(y))
i)pow(i,2)-pow(j,2)
În prezenţa j)pow(x,2)-pow(y,2)
k)trunc(x)+trunc(y)
declaraţiilor l)char(i)
m)int(r)
double x, y; n)ceil(x)>floor(y)
int i, j; o)2*floor (x+y)
bool p, q; p)(–x+sin(x–y))/(2*i)
char r;
enum s {A, B, C, D, E, F, G, H};
• Elaboraţi programele respective şi precizaţi tipul
expresiilor ce urmează, pornind de la forma
textuală a rezultatelor afişate:
Se consideră numerele
•a)3*x–4*y==0
întregi x = 8 şi y = 6. •b)(x+y)/2 > x%y+1
Care dintre expresiile ce
urmează au valoarea •c)!(x/2+2 == y)
false? Indicaţi ordinea
efectuării operaţiilor. •d)x–y+3 != 0
•a)pow(2.5,2)
•b)(1+pow(4,2))*3
•c)floor(sqrt(20))
•d)floor(27%4) + ceil(27.8)
Ce tip va avea •e)(floor(-47%5) –
rezultatul ceil(19.5))*2
expresiilor: