intint n=2026;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.

ții minte doar fișa asta și ești acoperit
Î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ă.
% dă restul: x%2==0 înseamnă par; x%10 este ultima cifră; x/10 taie ultima cifră.
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.
Pentru intervale folosește &&: x aparține lui (2020,2025] se scrie x>2020 && x<=2025.
Negarea: !(a && b) este !a || !b și !(a || b) este !a && !b.
ceil urcă, floor coboară, și pe numere negative: ceil(-1.6) este -1.
Culorile din lecție:termencifră, datăidee-cheie
int, float/double, char./ între doi întregi dă câtul, iar % dă restul.abs, sqrt, pow, floor și ceil.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.
intint n=2026;long longlong long p=1000000000LL*2;float, doublefloat pret=400.99;charchar c='V';| Tip | Ce memorează | Exemplu |
|---|---|---|
int | numere întregi; pe compilatoarele obișnuite, până la aproximativ 2 miliarde | int n=2026; |
long long | întregi mai mari | long long p=1000000000LL*2; |
float, double | numere reale, cu punct zecimal | float pret=400.99; |
char | un singur caracter, între apostrofuri | char c='V'; |
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 */.
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/215%215.0/22026%1002026/100| Expresie | Valoare | De ce |
|---|---|---|
15/2 | 7 | ambii operanzi întregi: câtul |
15%2 | 1 | restul |
15.0/2 | 7.5 | un operand real: împărțire reală |
2026%100 | 26 | ultimele două cifre |
2026/100 | 20 | fără ultimele două cifre |
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.
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.
==5==5!=5!=4<, <=, >, >=3<=3!!(2>3)&&2<3 && 3<4||2>3 || 3<4| Operator | Înseamnă | Exemplu cu valoarea 1 |
|---|---|---|
== | egal | 5==5 |
!= | diferit | 5!=4 |
<, <=, >, >= | comparații | 3<=3 |
! | nu | !(2>3) |
&& | și | 2<3 && 3<4 |
|| | sau | 2>3 || 3<4 |
Trei formule de reținut:
x%2==0 par, x%2==1 impar pentru naturale.x%d==0 înseamnă d divide x.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 sunt calcule gata făcute. Le apelezi cu numele și argumentele, după ce incluzi biblioteca <cmath>.
abs(x)abs(-25)sqrt(x)sqrt(25)pow(x,y)pow(2,10)floor(x)floor(0.53)ceil(x)ceil(20.26)| Funcție | Ce face | Exemplu | Valoare |
|---|---|---|---|
abs(x) | valoarea absolută | abs(-25) | 25 |
sqrt(x) | radicalul | sqrt(25) | 5 |
pow(x,y) | x la puterea y | pow(2,10) | 1024 |
floor(x) | cel mai mare întreg mai mic sau egal | floor(0.53) | 0 |
ceil(x) | cel mai mic întreg mai mare sau egal | ceil(20.26) | 21 |
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.
Model 2027, I.1 (MI și SN). Care expresie are valoarea 0?
Calculezi partea din dreapta a lui == în fiecare variantă:
27==27/(3*3*3)27==(27+1)/3*327==27/3+27/3+27/327==(27+2)/3+(27+1)/3+27/3| Variantă | Dreapta | Comparația | Valoare |
|---|---|---|---|
A. 27==27/(3*3*3) | 27/27 = 1 | 27 == 1 | 0 |
B. 27==(27+1)/3*3 | 28/3 = 9, 9*3 = 27 | 27 == 27 | 1 |
C. 27==27/3+27/3+27/3 | 9+9+9 = 27 | 27 == 27 | 1 |
D. 27==(27+2)/3+(27+1)/3+27/3 | 9+9+9 = 27 | 27 == 27 | 1 |
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.
(x*y)%2==0x%2==0 && y%2==0(x+y)%2==0!(x%2==y%2)| Variantă | (2,4) | (3,5) | (2,3) | Merge? |
|---|---|---|---|---|
a. (x*y)%2==0 | 1 | 0 | nu | |
b. x%2==0 && y%2==0 | 1 | 0 | nu | |
c. (x+y)%2==0 | 1 | 1 | 0 | da |
d. !(x%2==y%2) | 0 | nu |
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?
!(2>3 || 3>4)!(0 || 0)!(2>3) && 3>41 && 02>3 && !(3>4)0 && 14>3>21>2| Variantă | Calcul | Valoare |
|---|---|---|
a. !(2>3 || 3>4) | !(0 || 0) | 1 |
b. !(2>3) && 3>4 | 1 && 0 | 0 |
c. 2>3 && !(3>4) | 0 && 1 | 0 |
d. 4>3>2 | 1>2 | 0 |
Răspuns: a. Varianta d e capcana: pare adevărată la matematică.
Alți itemi din aceeași familie, cu litera din barem:
15.4/2+15/22026%1002025%2019+62025%2021+8 (ambele 12)!(x%26!=0) && !(x%2026==0)x și y ambele parex%2==0 && (y+1)%2!=0| Lucrare | Item | Răspuns |
|---|---|---|
| Rezervă 2025 var. 7, I.1 | valoarea lui 15.4/2+15/2 | b: 14.7 |
| Sesiunea specială 2026 var. 4, I.1 | expresia cu valoarea 26 | d: 2026%100 |
| Iunie 2025 var. 1, I.1 | aceeași valoare ca 2025%2019+6 | d: 2025%2021+8 (ambele 12) |
| August 2026 var. 1, I.1 | divizibil cu 26, nedivizibil cu 2026 | b: !(x%26!=0) && !(x%2026==0) |
| Iulie 2024 var. 3, I.1 | x și y ambele pare | a: x%2==0 && (y+1)%2!=0 |
Funcții predefinite, la științele naturii:
ceil(20.26)floor(sqrt(25)-sqrt(20))abs(-25)-25ceil(x)*abs(y) egal cu 16x în [-3,-1]∪[1,3]abs(x)>=1 && abs(x)<=3| Lucrare SN | Item | Răspuns |
|---|---|---|
| Sesiunea specială 2026 var. 4, I.3 | ceil(20.26) | a: 21 |
| Iunie 2025 var. 1, I.3 | floor(sqrt(25)-sqrt(20)) | b: 0 |
| August 2025 var. 4, I.3 | abs(-25)-25 | c: 0 |
| Model 2027, I.3 | valori pentru ceil(x)*abs(y) egal cu 16 | A: x=4, y=-4 |
| Iunie 2026 var. 3, I.4 | x în [-3,-1]∪[1,3] | b: abs(x)>=1 && abs(x)<=3 |
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)?
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
%, /, comparații și operatori logici.15/2 nu e 7.5.= în loc de == într-o condiție.4>3>2 citit ca la matematică.a+b/2 nu e media; media e (a+b)/2.ceil pe numere negative rotunjit în jos.