Elementele de bază ale limbajului C/C++

Tipuri, operatori, expresii și funcții predefinite

De ce 15/2 dă 7, de ce o comparație dă 0 sau 1 și cum evaluezi o expresie exact ca programul. Itemii I.1 din lucrări, rezolvați, plus abs, sqrt, pow, floor și ceil.

  • 24 min
  • La BAC: I.1 · I (funcții predefinite, la științele naturii) · Subiectul al II-lea, 3
  • De revizuit
Ilustrație: Tipuri, operatori, expresii și funcții predefinite
Ilustrație generată pentru ZECE (artistică, nu o planșă științifică: pentru detalii exacte vezi schemele din lecție).

ții minte doar fișa asta și ești acoperit

Fișa de aur

  1. 01

    Întreg împărțit la întreg dă întreg: 15/2 este 7, iar 15.4/2 este 7.7.

    Truc: Dacă vezi un punct zecimal, împărțirea devine reală.

  2. 02

    % dă restul: x%2==0 înseamnă par; x%10 este ultima cifră; x/10 taie ultima cifră.

  3. 03

    O comparație dă 1 sau 0. Asta face ca 4>3>2 să fie 0: 4>3 dă 1, iar 1>2 dă 0.

  4. 04

    Pentru intervale folosește &&: x aparține lui (2020,2025] se scrie x>2020 && x<=2025.

  5. 05

    Negarea: !(a && b) este !a || !b și !(a || b) este !a && !b.

  6. 06

    ceil urcă, floor coboară, și pe numere negative: ceil(-1.6) este -1.

1 din 9

Pe scurt

1 minesențialul, de recitit oricând

Culorile din lecție:termencifră, datăidee-cheie

  • Fiecare valoare are un tip: int, float/double, char.
  • / între doi întregi dă câtul, iar % dă restul.
  • Comparațiile și operatorii logici dau 1 sau 0.
  • Funcțiile predefinite din programă sunt, în lucrări, abs, sqrt, pow, floor și ceil.
  • Primul item din Subiectul I e aproape mereu o expresie: se rezolvă sigur, cu puțină atenție.

Tipuri, variabile, constante

4 min

Imaginează-ți că pui obiecte în cutii: o cutie mică pentru numere întregi, una pentru numere cu virgulă, una pentru o literă. Tipul spune ce fel de valoare intră în cutie și ce poți face cu ea.

int
Ce memorează
numere întregi; pe compilatoarele obișnuite, până la aproximativ 2 miliarde
Exemplu
int n=2026;
long long
Ce memorează
întregi mai mari
Exemplu
long long p=1000000000LL*2;
float, double
Ce memorează
numere reale, cu punct zecimal
Exemplu
float pret=400.99;
char
Ce memorează
un singur caracter, între apostrofuri
Exemplu
char c='V';
1 / 4

Identificatorii sunt nume: litere, cifre și _, fără să înceapă cu o cifră, fără cuvinte rezervate (int, for). Literele mari și mici sunt diferite: n nu e N.

Constantele au un nume și nu se schimbă: const int N=100;. Comentariile se scriu cu // până la capătul liniei sau între /* și */.

Operatorii aritmetici

2 min

Dacă împarți 15 mere la 2 persoane, în mâna fiecăreia ajung 7 mere și rămâne unul. Așa gândește / între întregi.

15/2
Valoare
7
De ce
ambii operanzi întregi: câtul
15%2
Valoare
1
De ce
restul
15.0/2
Valoare
7.5
De ce
un operand real: împărțire reală
2026%100
Valoare
26
De ce
ultimele două cifre
2026/100
Valoare
20
De ce
fără ultimele două cifre
1 / 5

Ordinea: *, /, % înaintea lui +, -. La același nivel se merge de la stânga la dreapta. Deci (27+1)/3*3 înseamnă 28/3, adică 9, apoi 9*3, adică 27.

Operatorii relaționali și logici

3 min

O comparație e o întrebare cu răspuns da sau nu. C/C++ scrie răspunsul ca număr: 1 pentru da, 0 pentru nu.

==
Înseamnă
egal
Exemplu cu valoarea 1
5==5
!=
Înseamnă
diferit
Exemplu cu valoarea 1
5!=4
<, <=, >, >=
Înseamnă
comparații
Exemplu cu valoarea 1
3<=3
!
Înseamnă
nu
Exemplu cu valoarea 1
!(2>3)
&&
Înseamnă
și
Exemplu cu valoarea 1
2<3 && 3<4
||
Înseamnă
sau
Exemplu cu valoarea 1
2>3 || 3<4
1 / 6

Trei formule de reținut:

  • Paritate: x%2==0 par, x%2==1 impar pentru naturale.
  • Divizibilitate: x%d==0 înseamnă d divide x.
  • Intervale: x aparține lui [a,b] se scrie a<=x && x<=b. Reuniunea de intervale se scrie cu ||.

Negarea (legile lui De Morgan, în varianta pentru programare): !(a && b) este !a || !b, iar !(a || b) este !a && !b. O comparație negată se scrie invers: !(x<=2020) este x>2020.

Funcțiile predefinite

2 min

Funcțiile predefinite sunt calcule gata făcute. Le apelezi cu numele și argumentele, după ce incluzi biblioteca <cmath>.

abs(x)
Ce face
valoarea absolută
Exemplu
abs(-25)
Valoare
25
sqrt(x)
Ce face
radicalul
Exemplu
sqrt(25)
Valoare
5
pow(x,y)
Ce face
x la puterea y
Exemplu
pow(2,10)
Valoare
1024
floor(x)
Ce face
cel mai mare întreg mai mic sau egal
Exemplu
floor(0.53)
Valoare
0
ceil(x)
Ce face
cel mai mic întreg mai mare sau egal
Exemplu
ceil(20.26)
Valoare
21
1 / 5

La științele naturii apar în Subiectul I. În lucrările MI extrase, din 2020 până în 2027, nu au apărut în enunțuri, dar le poți folosi în programele tale, cum ar fi sqrt pentru un pătrat perfect.

Oficial: itemii I.1, rezolvați

9 min 4 întrebări la final

Model 2027, I.1 (MI și SN). Care expresie are valoarea 0?

Calculezi partea din dreapta a lui == în fiecare variantă:

A. 27==27/(3*3*3)
Dreapta
27/27 = 1
Comparația
27 == 1
Valoare
0
B. 27==(27+1)/3*3
Dreapta
28/3 = 9, 9*3 = 27
Comparația
27 == 27
Valoare
1
C. 27==27/3+27/3+27/3
Dreapta
9+9+9 = 27
Comparația
27 == 27
Valoare
1
D. 27==(27+2)/3+(27+1)/3+27/3
Dreapta
9+9+9 = 27
Comparația
27 == 27
Valoare
1
1 / 4

Răspuns: A, conform baremului. În varianta Pascal aceeași expresie este 27=27 div (3*3*3), iar cerința vrea valoarea false.

Iunie 2026, varianta 3, I.1. Care expresie e 1 dacă și numai dacă x și y au aceeași paritate?

Testezi cu (2,4), (3,5) și (2,3). Primele două trebuie să dea 1, ultima 0.

a. (x*y)%2==0
(2,4)
1
(3,5)
0
Merge?
nu
b. x%2==0 && y%2==0
(2,4)
1
(3,5)
0
Merge?
nu
c. (x+y)%2==0
(2,4)
1
(3,5)
1
(2,3)
0
Merge?
da
d. !(x%2==y%2)
(2,4)
0
Merge?
nu
1 / 4

Răspuns: c.

August 2025, varianta 4, I.1. Pentru !(x<=2020) && !(x>2025), scrii fără negații: x>2020 && x<=2025. Asta înseamnă intervalul (2020,2025], varianta a.

Rezervă 2026, varianta 5, I.1. Care expresie are valoarea 1?

a. !(2>3 || 3>4)
Calcul
!(0 || 0)
Valoare
1
b. !(2>3) && 3>4
Calcul
1 && 0
Valoare
0
c. 2>3 && !(3>4)
Calcul
0 && 1
Valoare
0
d. 4>3>2
Calcul
1>2
Valoare
0
1 / 4

Răspuns: a. Varianta d e capcana: pare adevărată la matematică.

Alți itemi din aceeași familie, cu litera din barem:

Rezervă 2025 var. 7, I.1
Item
valoarea lui 15.4/2+15/2
Răspuns
b: 14.7
Sesiunea specială 2026 var. 4, I.1
Item
expresia cu valoarea 26
Răspuns
d: 2026%100
Iunie 2025 var. 1, I.1
Item
aceeași valoare ca 2025%2019+6
Răspuns
d: 2025%2021+8 (ambele 12)
August 2026 var. 1, I.1
Item
divizibil cu 26, nedivizibil cu 2026
Răspuns
b: !(x%26!=0) && !(x%2026==0)
Iulie 2024 var. 3, I.1
Item
x și y ambele pare
Răspuns
a: x%2==0 && (y+1)%2!=0
1 / 5

Funcții predefinite, la științele naturii:

Sesiunea specială 2026 var. 4, I.3
Item
ceil(20.26)
Răspuns
a: 21
Iunie 2025 var. 1, I.3
Item
floor(sqrt(25)-sqrt(20))
Răspuns
b: 0
August 2025 var. 4, I.3
Item
abs(-25)-25
Răspuns
c: 0
Model 2027, I.3
Item
valori pentru ceil(x)*abs(y) egal cu 16
Răspuns
A: x=4, y=-4
Iunie 2026 var. 3, I.4
Item
x în [-3,-1]∪[1,3]
Răspuns
b: abs(x)>=1 && abs(x)<=3
1 / 5

La modelul 2027, I.3, varianta D e bună capcană: ceil(-1.6) este -1, iar abs(-8) este 8, deci produsul este -8, nu 16.

Cât este 15.4/2+15/2?

Ce expresie are valoarea 26: 2026/100 sau 2026%100?

Ce dă !(x<=2020) && !(x>2025)?

Cât este ceil(-1.6)?

Verifică singur

2 min

Programul de mai jos calculează câteva dintre expresiile lecției, iar ieșirea e sub el.

#include <iostream>
#include <cmath>
using namespace std;

int main()
{ cout<<15.4/2+15/2<<endl;
  cout<<(27==27/(3*3*3))<<" "<<(27==(27+1)/3*3)<<endl;
  cout<<2026%100<<" "<<(2026-26)/100<<endl;
  cout<<(4>3>2)<<" "<<!(2>3 || 3>4)<<endl;
  cout<<ceil(20.26)<<" "<<floor(sqrt(25)-sqrt(20))<<" "<<abs(-25)-25<<endl;
  return 0;
}
14.7
0 1
26 20
0 1
21 0 0

Ce se cere la BAC

1 mincum apare la examen

  • I.1, la ambele specializări: o expresie de evaluat sau de ales, cu %, /, comparații și operatori logici.
  • SN, I.3 sau I.4: o funcție predefinită sau o expresie pentru o mulțime sau un interval.
  • Secvențele de la II.3 și programele de la II.1 c folosesc aceleași expresii.

Greșeli care costă puncte

1 mincapcanele de evitat

  • Faci împărțirea reală în loc de cea întreagă: 15/2 nu e 7.5.
  • = în loc de == într-o condiție.
  • Testezi doar un caz la „dacă și numai dacă”: trebuie și cazurile care dau 0.
  • Lanț de comparații de tipul 4>3>2 citit ca la matematică.
  • Uiți ordinea: a+b/2 nu e media; media e (a+b)/2.
  • ceil pe numere negative rotunjit în jos.

Termeni-cheie

Tip de dată
Stabilește ce valori poate memora o variabilă și ce operații se pot face cu ea: int, float, double, char.
Împărțire întreagă
Dacă ambii operanzi sunt întregi, / dă câtul: 15/2 este 7. Dacă unul e real, rezultatul e real: 15.4/2 este 7.7.
Operatorul %
Restul împărțirii a doi întregi: 2026%100 este 26. Nu se aplică numerelor reale.
Operatori relaționali
==, !=, <, <=, >, >=. În C/C++ dau valoarea 1 pentru adevărat și 0 pentru fals.
Operatori logici
! (negație), && (și), || (sau).
Ordinea operațiilor
!, apoi * / %, apoi + -, apoi comparațiile, apoi && și la final ||. La același nivel: de la stânga la dreapta.
abs, sqrt, pow
Valoarea absolută, radicalul și ridicarea la putere, din biblioteca cmath.
floor și ceil
floor rotunjește în jos, ceil rotunjește în sus. ceil(20.26) este 21, ceil(-1.6) este -1.

Notițele mele

Salvat local

Surse