Bazele programării în C++

Operatori și expresii în C++

Înțelege operatorii C++: împărțire între întregi, rest, comparații și condiții logice. Exersează prioritatea operațiilor cu exemple și răspunsuri.

O expresie combină valori, variabile și operatori pentru a calcula un rezultat. De exemplu, pret * cantitate poate calcula costul unei cumpărături. Lecția presupune că ai parcurs variabilele și tipurile.

Operațiile aritmetice de bază

Pentru numere folosim + pentru adunare, - pentru scădere, * pentru înmulțire și / pentru împărțire. Operatorul % calculează restul împărțirii întregi și se aplică operanzilor întregi.

Tipul operanzilor contează. 17 / 5 produce întregul 3, în timp ce 17.0 / 5 produce 3.4. Împărțirea întregilor elimină partea fracționară spre zero: -17 / 5 este -3. Pentru exercițiile cu cifre și grupuri vom porni de la numere naturale.

#include <iostream>

int main() {
    int obiecte = 17;
    int capacitate = 5;
    std::cout << obiecte / capacitate << '\n';
    std::cout << obiecte % capacitate << '\n';
    std::cout << 17.0 / capacitate << '\n';
    return 0;
}

Rezultatul are trei linii: 3, 2, 3.4. Din 17 obiecte poți forma 3 grupe complete de câte 5 și rămân 2 obiecte. Pentru aceste valori verifici relația 17 = 3 * 5 + 2.

Nu împărți la zero și nu calcula restul față de zero. Verificarea numitorului va deveni un exemplu util pentru structura de decizie.

17 obiecte se împart în trei grupe de câte cinci și două obiecte rămase. Câtul este 3, restul este 2.Împărțirea între întregi și restul, reprezentate prin grupe de obiecte.

Ordinea operațiilor

Înmulțirea, împărțirea și restul au prioritate față de adunare și scădere. Astfel, 2 + 3 * 4 este 14, iar (2 + 3) * 4 este 20. Operatorii aritmetici de același nivel din aceste exemple se grupează de la stânga la dreapta: 20 / 5 * 2 înseamnă (20 / 5) * 2, deci 8.

Folosește paranteze când exprimi o formulă, mai ales dacă ele clarifică intenția. Media lui a și b se scrie (a + b) / 2.0, nu a + b / 2.0. Prima formulă adună ambele valori înainte de împărțire.

Dacă scrii double medie = (a + b) / 2; cu a și b întregi, împărțirea se face tot între întregi. Conversia rezultatului la double nu recuperează fracția pierdută.

Comparații și condiții

Operatorii ==, !=, <, <=, > și >= compară valori. Rezultatul este logic. = atribuie, iar == compară: confuzia dintre ele schimbă programul.

Condițiile se combină folosind && pentru „și”, || pentru „sau” și ! pentru negare. Pentru apartenența lui x la intervalul închis de la 1 la 10 scrie 1 <= x && x <= 10. Forma matematică 1 <= x <= 10 nu exprimă acest test în C++.

#include <iostream>

int main() {
    int x = 8;
    bool inInterval = 1 <= x && x <= 10;
    bool par = x % 2 == 0;
    std::cout << std::boolalpha << inInterval << ' ' << par << '\n';
    return 0;
}

Programul afișează true true. std::boolalpha cere afișarea valorilor logice prin cuvinte; fără el, în această utilizare obișnuită a fluxului, s-ar afișa 1 1.

Greșeli pe care le poți preveni

Nu confunda ^ cu ridicarea la putere: în C++ acesta este un operator pe biți. Pentru pătratul unei valori folosește x * x, într-un tip care poate reprezenta rezultatul. Evită expresiile complicate cu mai multe incrementări ale aceleiași variabile; scrie pașii separat ca să poți urmări valorile.

O condiție precum b != 0 && a / b > 2 verifică mai întâi că b este nenul. Pentru operatorul logic && pe aceste valori, partea dreaptă nu se evaluează dacă partea stângă este falsă. Ordinea celor două condiții este deci relevantă.

Exersează

  1. Calculează 23 / 10 și 23 % 10.
  2. Calculează 6 + 8 / 4 și (6 + 8) / 4 între întregi.
  3. Scrie condiția ca x să fie strict pozitiv și impar.
  4. Ce valoare obții din (5 + 8) / 2.0?

Răspunsuri: 2 și 3; 8 și 3; x > 0 && x % 2 != 0; respectiv 6.5. În al doilea exercițiu, 14 / 4 rămâne o împărțire între întregi.

Continuă cu citirea datelor și aplică expresiile în programe care primesc valori diferite la fiecare rulare.

Un pas mai departe

Se încarcă progresul…

Exersează cu o problemă →