Sari la conținut

Capitolul 5 · Lecția 5.2 din 2

Prioritatea operatorilor și evaluarea expresiilor

Ordinea operațiilor în C++, capcanele cu împărțirea întreagă și exerciții de evaluare.

Capitolul 5: Operatori și expresiiConținut verificat

Pe scurt pentru BAC · 5 idei

  • Ordinea: paranteze, operatori unari, * / %, apoi + -, comparațiile, &&, ||, iar atribuirea are prioritatea cea mai slabă.
  • Operatorii de aceeași prioritate se evaluează de la stânga la dreapta, de aceea 10 - 4 - 3 dă 3, nu 9.
  • && și || evaluează operandul drept doar dacă e necesar, deci în x != 0 && 10 / x > 2 împărțirea nu se execută la x = 0.
  • În C++ orice valoare nenulă e adevărată, iar rezultatul unei comparații este 0 sau 1.
  • La modulo cu negative, semnul restului urmează deîmpărțitul: -7 % 2 = -1, iar 7 % -2 = 1.
Pe această pagină5 secțiuni

Ierarhia (de la prioritate mare la mică)

  1. parantezele ( );
  2. unare: !, - (minusul de semn), ++, --;
  3. *, /, % (aceeași prioritate, evaluate de la stânga la dreapta);
  4. +, -;
  5. comparațiile <, <=, >, >=, apoi ==, !=;
  6. &&, apoi ||;
  7. atribuirea = (cea mai slabă).

Evaluare pas cu pas (tiparul de subiect I)

1. 2 + 3 * 4 % 5 →\to 3*4 = 12 →\to 12 % 5 = 2 →\to 2 + 2 = 4.

2. 7 / 2 * 2 + 7 % 2 →\to 7/2 = 3 (întreg!) →\to 3*2 = 6; 7%2 = 1 →\to 7.

3. 10 - 4 - 3 →\to stânga-dreapta: 6 - 3 = 3 (nu 9!).

4. (1 + 2) * (10 % 4) - 6 / 4 →\to 3 * 2 - 1 = 5.

Expresiile logice și scurtcircuitarea

&& și || evaluează operandul drept DOAR dacă e necesar:

  1. x != 0 && 10 / x > 2: sigură (împărțirea nu se execută la x = 0);
  2. în C++, orice valoare NENULĂ e "adevărat"; rezultatul comparațiilor e 0 sau 1.

Exemplu. Pentru x = 5: x > 3 && x < 10 →\to 1 && 1 = 1. Expresia 3 < x < 10 e o CAPCANĂ: se evaluează (3 < x) < 10 →\to 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.

Reține

Trio-ul care rezolvă majoritatea evaluărilor: 1) *, /, % înaintea lui +, −; 2) egală prioritate = stânga→dreapta; 3) împărțirea între întregi e ÎNTREAGĂ. Iar "a < b < c" NU testează intervalul.

Greșeli frecvente

  1. 7/2*2 este 6, nu 7: împărțirea întreagă lovește înainte de înmulțire.
  2. Intervalele se scriu a < x && x < b, niciodată înlănțuit.
  3. % are aceeași prioritate cu * și /: se evaluează în ordinea apariției.

Exemplul, în 4 limbaje

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;
}

Bifează când ai terminat, ca s-o vezi citită pe toate dispozitivele.

Testează-te pe capitolul 5

Lecția în clipuri

Clipuri scurte, cu voce și subtitrări.

Folosim cookie-uri esențiale, fără de care site-ul nu merge, și cookie-uri de analiză anonimizate, ca să vedem ce pagini ajută. Detalii în politica de confidențialitate