Se vor afişa valorile componentelor vecorului şi valorile expresiilor. Prototipurile funcţiilor matematice sunt definite în biblioteca .
Să se afişeze valorile variabilelor m şi x şi ale variabilelor n şi y. Să se explice rezultatele.
pentru x = 1.2 şi radiani.
Să se calculeze determinantul acestei matrice.
using namespace std;
int main() {
// operatorul ++ prefix
int i = 1;
cout << “i = “ << i << endl;
cout << “++i = “ << ++i << endl;
cout << “i = “ << i << endl;
// operatorul ++ postfix
int j = 1;
cout << “j = “ << j << endl;
cout << “j++ = “ << j++ << endl;
cout << “j = “ << j << endl;
return 0;
}
Rezultatele rulării programului sunt prezentate mai jos. Se vor explica aceste rezultate.
Exerciţiu. Se va scrie un program care să utilizeze în acelaşi mod operatorul --.
2.2Operatori de deplasare
Operatorii de deplasare se aplică numai asupra numerelor întregi. Deplasarea la stânga cu un bit a unui număr întreg realizează înmulţirea cu 2 a acelui număr. Deplasarea la dreapta cu un bit a unui număr întreg este câtul impărţirii cu 2 a acelui număr.
-
<< este operator de deplasare la stânga cu un număr de biţi;,
-
>> este operator de deplasare la dreapta cu un număr de biţi;.
Expresiile în care intervin operatorii de deplasare au forma
expresie1 << expresie2
expresie1 >> expresie2
În aceste expresii expresie1 este expresia ce va fi deplasată, iar expresie2 dă numărul de biţi cu care este deplasată expresie1.
Problema 2. Fie variabila întregă x = 12. Sa se deplaseze la stanga cu trei biţi. Fir variabila întreagă t = 33. Să se deplaseze la dreapta cu doi biţi.
#include
using namespace std;
int main()
{
int x = 12;
int rez = x << 3;
cout << "x = " << x << endl << "x << 3 = " << rez << endl;
int y(33);
rez = y >> 2;
cout << "y = " << y << endl << "y >> 3 = " << rez << endl;
return 0;
}
Rezultatul rulării programului este cel de mai jos.
2.3Operatori logici pe biţi
Operatorii logici pe biţi se aplică numai operanzilor întregi. Ei sunt următorii :
~ operand care reprezintă negaţia termenului întreg operand
& este operatorul şi
| este operatorul sau inclusiv
^ este operatorul sau exclusiv
Aceşti operatori sunt definiţi cu tabelele de adevăr de mai jos.
a
|
b
|
a|b
|
a&b
|
a^b
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
Tabelul 2. Tabelele de adevăr pentru operatorii |, &, ^.
Tabelul 3. Tabela de adevăr pentru operatorul ~.
Operatorii |, &, ^ sunt binari, operatorul ~ este unar. Operatorii binari sunt comutativi şi asociativi la stânga. Priorităţile lor sunt ~, apoi & şi în final | şi ^.
Problema 3. Fie variabila întreagă i = 0xf şi variabila întreagă j = 0xc. Să se scrie un program care să calculeze valorile : i & j ; i |j ; i ^ j ; ~i. Rezultatele se vor afişa în zecimal şi hexazecimal.
Indicaţie. Pentru a afişa o variabilă întreagă în hexazecimal se va folosi manipulatorul hex ca mai sus. Programul este următorul.
#include
using namespace std;
int main()
{
int i=0xf, j=0xc, rez;
cout << "\t" << "baza 10" << "\t" << "baza 16" << endl;
cout << "i = \t" << dec << i << "\t" << hex << i << endl;
cout << "j = \t" << dec << j << "\t" << hex << j << endl;
rez=i&j;
cout<<"i&j=\t"<rez=i|j;
cout<<"i|j=\t"<rez=~i;
cout<<"~i=\t"<return 0;
}
Rezultatul rulării programului este cel de mai jos.
Problema 4. Fie variabila întreagă k = 0xabc. Să se calculeze valoarea expresiei
k | 0xff
Se vor afişa valoarea variabilei k şi valoarea expresiei în hexazecimal. Să se explice rezultatul.
#include
using namespace std ;
int main(){
int k = 0xabc;
k = k | 0xff;
cout << "k=" << hex << k << endl;
return 0;
}
Rezultatele rulării programului sunt prezentate în caseta text.
In cazul operatorului & valoarea 0xff extrage ultimele două cifre hexazecimale din număr. Ea se numeşte mască.