Ierarhia (de la prioritate mare la mică)
- parantezele
( ); - unare:
!,-(minusul de semn),++,--; *,/,%(aceeași prioritate, evaluate de la stânga la dreapta);+,-;- comparațiile
<,<=,>,>=, apoi==,!=; &&, apoi||;- atribuirea
=(cea mai slabă).
Evaluare pas cu pas (tiparul de subiect I)
1. 2 + 3 * 4 % 5
3*4 = 12 12 % 5 = 2 2 + 2 = 4.
2. 7 / 2 * 2 + 7 % 2
7/2 = 3 (întreg!) 3*2 = 6; 7%2 = 1 7.
3. 10 - 4 - 3
stânga-dreapta: 6 - 3 = 3 (nu 9!).
4. (1 + 2) * (10 % 4) - 6 / 4
3 * 2 - 1 = 5.
Expresiile logice și scurtcircuitarea
&& și || evaluează operandul drept DOAR dacă e necesar:
x != 0 && 10 / x > 2: sigură (împărțirea nu se execută la x = 0);- în C++, orice valoare NENULĂ e "adevărat"; rezultatul comparațiilor e 0 sau 1.
Exemplu. Pentru x = 5: x > 3 && x < 10 1 && 1 = 1. Expresia 3 < x < 10 e o CAPCANĂ: se evaluează (3 < x) < 10 1 < 10 = 1 mereu adevărat, indiferent de x!
Modulo cu negative (detaliu de barem)
În C++, semnul restului urmează DEÎMPĂRȚITUL: -7 % 2 = -1, 7 % -2 = 1.
Greșeli frecvente
7/2*2este 6, nu 7: împărțirea întreagă lovește înainte de înmulțire.- Intervalele se scriu
a < x && x < b, niciodată înlănțuit. %are aceeași prioritate cu*și/: se evaluează în ordinea apariției.
Alege limbajul în care dai examenul. Poți edita codul și îl poți rula direct aici. Programa oficiala de BAC (proba E.d) cere Pascal sau C/C++, la alegere. Python apare in manualele noi si e pus aici pentru inteles, nu ca limbaj de examen.
#include <iostream>
using namespace std;
int main() {
cout << 2 + 3 * 4 << " ";
cout << (2 + 3) * 4 << " ";
cout << 17 / 5 % 3 << " ";
cout << (7 > 3 && 2 < 1);
return 0;
}