Elemente de bază ale limbajului C++
Ideile de bază pe scurt și, unde există, exercițiile din subiectele de BAC care le verifică. Lecția completă, animată, cu grile și exerciții corectate, e în aplicația Tomomi.
Pe scurt
Sintaxă: declararea variabilelor
Fiecare variabilă are un tip care spune ce fel de valori memorează:
int n; // număr întreg
long long big; // întreg foarte mare
double x; // număr cu zecimale
char c; // un caracter
bool ok; // adevărat / falsCitești cu cin >> n; și afișezi cu cout << n;.
Șablon: câtul și restul (div, mod)
Împărțirea a două numere întregi dă câtul și restul:
17 / 5 // câtul = 3 (pseudocod: 17 div 5)
17 % 5 // restul = 2 (pseudocod: 17 mod 5)Ultima cifră a lui n este n % 10; n / 10 taie ultima cifră.
Capcana: 5 / 2 la numere întregi
La numere întregi, / trunchiază: 5 / 2 dă 2, nu 2.5. Ca să obții zecimale, cel puțin un operand trebuie să fie real: 5.0 / 2 dă 2.5. Operatorul % funcționează doar pe întregi.
Idee: o comparație este o valoare
În C++, o comparație precum a > b produce o valoare: 1 dacă e adevărată, 0 dacă e falsă. De aceea poți scrie direct cout << (a > b);, fără să folosești if.
Sintaxă: operatori și precedență
Operatorii, de la cel mai puternic la cel mai slab:
- Aritmetici:
*,/,%, apoi+,-. - Relaționali:
<,>,<=,>=,==,!=. - Logici:
!, apoi&&, apoi||.
Parantezele schimbă ordinea: (a + b) * c.
Din subiectele de BAC
Exerciții reale din subiectele anilor trecuți. Încearcă-le singur înainte să deschizi rezolvarea.
Indicați expresia C/C++ cu aceeași valoare ca a expresiei alăturate.
2025%2019+6a. 2025/2020+5
b. 2025/2021+8
c. 2025%2020+5
d. 2025%2021+8
Vezi rezolvarea
Calculăm expresia dată: , deci 2025%2019+6 are valoarea .
Evaluăm apoi variantele, ținând cont că / între întregi este împărțire întreagă, iar % este restul:
| variantă | calcul | valoare |
|---|---|---|
| a | , | 6 |
| b | , | 9 |
| c | , | 10 |
| d | , | 12 |
Singura expresie cu valoarea 12 este cea de la litera d.
Indicați expresia C/C++ care are valoarea 1 dacă și numai dacă numerele memorate în variabilele întregi x și y sunt pare.
a. x%2==0 && (y+1)%2!=0
b. (x-y)%2==0
c. (x+y)%2==0
d. x%2==y%2
Vezi rezolvarea
Analizăm fiecare variantă:
x%2==0 && (y+1)%2!=0: prima condiție cere caxsă fie par; a doua cere cay+1să fie impar, adicăypar. Expresia este 1 exact când ambele numere sunt pare.(x-y)%2==0și(x+y)%2==0sunt adevărate și cândxșiysunt ambele impare (de exemplu x=3, y=5), deci nu convin.x%2==y%2cere doar aceeași paritate, nu paritate pară.
Răspunsul corect este a.
Indicați expresia C/C++ care are cea mai mare valoare, comparativ cu celelalte trei expresii.
a. 20*23/(2*2)
b. 20/2*23/2
c. (20*23)/2
d. (20*23)/2*2
Vezi rezolvarea
Operatorii * și / au aceeași prioritate și se aplică de la stânga la dreapta (împărțire întreagă).
- a.
20*23/(2*2) - b.
20/2*23/2 - c.
(20*23)/2 - d.
(20*23)/2*2
Cea mai mare valoare este , deci răspunsul corect este d.