Se vor afişa valorile componentelor vecorului şi valorile expresiilor. Prototipurile funcţiilor matematice sunt definite în biblioteca .
Indicaţie. Componentele vectorului x sunt x0 şi x1.
Problema 6. Să de definească un vector de tip char care să conţină textul “Curs de programare”. Să se afişeze acest şir pe ecran.
Problema 7. Conversia tipurilor. Fie variabila de tip întreg
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ă.