Sari la conținut

Capitolul 2 · Lecția 2.2 din 2

Erorile frecvente în C++ și cum le eviți

Cele mai comune greșeli de compilare și de logică din lucrările de BAC.

Capitolul 2: Limbajul C++: elemente de bazăConținut verificat

Pe scurt pentru BAC · 5 idei

  • Erorile de compilare împiedică pornirea programului, iar cele de logică îl lasă să ruleze, dar cu rezultate greșite.
  • C++ face diferența între litere mari și mici, deci nr și Nr sunt variabile diferite.
  • Fiecare funcție își cere biblioteca: cin/cout cer <iostream>, strlen cere <cstring>, iar sqrt cere <cmath>.
  • if (x = 5) atribuie 5 lui x și face condiția mereu adevărată, pe când comparația corectă este if (x == 5).
  • Bucla while (n != 0) fără modificarea lui n în corp nu se termină niciodată.
Pe această pagină4 secțiuni

Erori de COMPILARE (programul nu pornește)

1. Punct și virgulă lipsă. Fiecare instrucțiune se termină cu ;. Eroarea apare de regulă pe RÂNDUL URMĂTOR celui greșit.

2. Variabile nedeclarate sau scrise diferit. nr și Nr sunt variabile DIFERITE: C++ face diferența între litere mari și mici.

3. Acolade neînchise. Fiecare { are perechea ei }. Aliniază-le vizual ca să le verifici rapid.

4. Biblioteci lipsă. cin/cout cer #include <iostream> (+ using namespace std;), strlen cere <cstring>, sqrt cere <cmath>.

Erori de LOGICĂ (compilează, dar dă rezultate greșite)

1. = în loc de ==. if (x = 5) ATRIBUIE 5 lui x (condiția devine mereu adevărată); comparația corectă e if (x == 5).

2. Împărțirea întreagă. 5 / 2 dă 2, nu 2,5: la întregi, rezultatul e întreg. Pentru medie reală: (a + b) / 2.0.

3. Depășirea vectorului. La int v[10], indicii valizi sunt 0-9; v[10] e în afara vectorului (comportament imprevizibil, fără mesaj clar).

4. Bucla infinită. while (n != 0) fără modificarea lui n în corp nu se termină niciodată.

5. int prea mic. Pentru valori peste ~2 miliarde folosește long long (produsul a două int-uri mari depășește int).

Exemplu: găsește cele 3 erori

#include <iostream>
using namespace std;

int main() {
    int a = 5;
    if (a == 5)
        cout << "egal";
    else
        cout << "diferit";
    return 0;
}

Erorile: lipsă ; după int n; = în loc de == în if; lipsă ; după cout.

Atenție

La subiectele de tip "corectați secvența", cele mai frecvente capcane sunt exact acestea: ; lipsă, = în loc de ==, împărțirea întreagă. Caută-le PRIMELE.

Reține

Primele capcane de căutat: ; lipsă, = în loc de == și împărțirea întreagă (5 / 2 dă 2; pentru zecimale scrie (a + b) / 2.0). La int v[10] indicii valizi sunt de la 0 la 9.

Greșeli frecvente

  1. Mesajul de eroare arată deseori rândul de DUPĂ greșeală: verifică și rândul anterior.
  2. 5/2 = 2 la întregi: adaugă .0 sau folosește float/double când vrei zecimale.
  3. Citirea cu cin >> s se oprește la spațiu: pentru texte cu spații folosește cin.getline.

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

Testează-te pe capitolul 2

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