Invatare Atomica

Limbajul C++: Elemente de baza

Progres lectie:
0%
🎯

Obiectivul lectiei

Dupa aceasta lectie, vei intelege structura unui program C++, tipurile de date si cum sa declari variabile.

Dupa aceasta lectie vei putea:

  • Sa analizezi structura de baza
  • Sa explici variabile - "cutii" pentru date
  • Sa clasifici tipuri de date princIPale
  • Sa aplici operatori aritmetici
  • Sa aplici citire de la tastatura

Incearca singur!

🎯 INCEARCA

Scrie si ruleaza acest cod!

Provocarea ta:
#include <iostream> using namespace std; int main() { int varsta = 13; float inaltime = 1.65; string nume = "Andrei"; cout << "Salut, " << nume << "!" << endl; cout << "Ai " << varsta << " ani." << endl; cout << "Inaltimea ta este " << inaltime << " m." << endl; return 0; }
🚀 Ruleaza pe OnlineGDB

Modifica: Schimba valorile variabilelor cu datele tale personale si ruleaza din nou!

💡 Ce observi in output? Click pentru explicatie

cout = "console output" - afiseaza text

<< = "trimite spre" - trimite date spre ecran

endl = "end line" - trece pe rand nou

1

Structura de baza

Structura de baza
#include <iostream> // 1. Biblioteci (ce unelte folosim) using namespace std; // 2. Spatiu de nume (scurtatura) int main() { // 3. Functia principala // Codul tau aici return 0; // 4. Semnaleaza "totul OK" }
2

Variabile - "cutii" pentru date

Variabile - "cutii" pentru date
O variabila este ca o cutie cu eticheta. Are:
  • Tip - ce fel de date contine
  • Nume - eticheta cutiei
  • Valoare - ce e in cutie
int varsta = 13; // tip: int, nume: varsta, valoare: 13 float pret = 19.99; // tip: float, nume: pret, valoare: 19.99 string culoare = "rosu"; // tip: string, nume: culoare, valoare: "rosu"
3

Tipuri de date principale

Tipuri de date principale
Tip Ce stocheaza Exemple
int Numere intregi -5, 0, 13, 1000
float Numere cu virgula (6-7 cifre precizie) 3.14, -0.5, 100.0
double Numere cu virgula (15 cifre precizie) 3.141592653589
char Un singur caracter 'A', 'x', '7'
string Text (sir de caractere) "Salut", "Ana"
bool Adevarat/Fals true, false
4

Operatori aritmetici

Operatori aritmetici
Operator Operatie Exemplu Rezultat
+Adunare5 + 38
-Scadere5 - 32
*Inmultire5 * 315
/Impartire5 / 31 (intreg!) sau 1.66 (float)
%Rest (modulo)5 % 32
5

Citire de la tastatura

Citire de la tastatura
int numar; cout << "Introdu un numar: "; cin >> numar; // cin = "console input" - citeste de la utilizator cout << "Ai introdus: " << numar;
6

💡 Reguli pentru nume de variabile

💡 Reguli pentru nume de variabile

✅ Incep cu litera sau _ (nu cifra)

✅ Contin litere, cifre, _ (fara spatii!)

✅ Case-sensitive: Varstavarsta

❌ Evita: diacritice, cuvinte rezervate (int, if, while...)

Exercitii practice

Exercitiul 1 (Nivel minim) - Programare

Cerinta: Declara o variabila string cu numele tau si afiseaz-o pe ecran cu mesajul "Salut, [nume]!".

Vezi rezolvarea

Cod complet:

#include <iostream> #include <string> using namespace std; int main() { string nume = "Ana"; cout << "Salut, " << nume << "!"; return 0; }

Inlocuieste "Ana" cu numele tau real, intre ghilimele. Declararea urmeaza modelul din lectie: tip nume_variabila = valoare; (aici tipul e string). Compileaza cu F9 si verifica ca apare exact "Salut, [numele tau]!".

Exercitiul 2 (Nivel standard) - Programare

Cerinta: Citeste doua numere intregi a si b de la tastatura si afiseaza suma lor.

Vezi rezolvarea

Cod complet, dupa sablonul citire-prelucrare-afisare:

#include <iostream> using namespace std; int main() { int a, b; cout << "a= "; cin >> a; cout << "b= "; cin >> b; cout << "Suma= " << a + b; return 0; }

Foloseste cin >> a; si cin >> b; pentru citire, apoi calculezi a + b direct in cout (sau intr-o variabila separata suma). Testeaza cu a=3, b=5: rezultatul trebuie sa fie 8.

Exercitiul 3 (Nivel performanta) - Programare

Cerinta: Citeste doua numere a si b, interschimba-le folosind o variabila temporara temp, apoi afiseaza noile valori.

Vezi rezolvarea

Structura solutiei (schita):

  1. Citeste a si b cu cin.
  2. Declara o a treia variabila temp, de acelasi tip cu a si b.
  3. Ordinea corecta de interschimbare: temp = a; a = b; b = temp;
  4. Afiseaza noile valori ale lui a si b.

Capcana clasica: daca faci a = b; b = a; direct, fara temp, valoarea originala a lui a se pierde inainte sa fie salvata, iar ambele variabile ajung egale cu vechiul b. Criteriu de evaluare: valorile sunt cu adevarat schimbate (verifica pe hartie cu doua numere diferite, apoi ruleaza).

Exercitiul 4 (Nivel performanta) - Programare

Cerinta: Citeste un numar de minute si afiseaza cate ore complete si cate minute ramase reprezinta.

Vezi rezolvarea

Structura solutiei (schita):

  1. Citeste un int minute.
  2. Ore complete: ore = minute / 60; (impartire intreaga, se trunchiaza automat).
  3. Minute ramase: minute_ramase = minute % 60; (restul impartirii).
  4. Afiseaza ambele valori, cu etichete clare.

Capcana: daca declari minute ca float in loc de int, impartirea nu mai trunchiaza corect. Testeaza cu 125 de minute: rezultatul asteptat este 2 ore si 5 minute. Criteriu de evaluare: formulele / si % folosite corect, verificate pe un exemplu.

Exercitiul 5 (Nivel performanta) - Programare

Cerinta: Creeaza un program care citeste informatii personale si le afiseaza formatat frumos. Urmeaza pasii:

  1. Declara variabile: string nume, int varsta, float inaltime, string culoare_preferata.
  2. Citeste fiecare valoare de la tastatura cu cin (pentru string cu spatii, foloseste getline).
  3. Afiseaza un "card" formatat cu cout: fiecare informatie pe o linie separata, precedata de o eticheta (ex: "Nume: ", "Varsta: ").
  4. Adauga un mesaj care calculeaza si afiseaza cati ani vor fi la urmatoarea aniversare rotunda (multiplu de 10).
  5. Ruleaza programul cu datele tale reale si verifica ca afisarea arata corect.
Vezi rezolvarea

Structura solutiei (schita):

  1. Declara variabilele cerute: string nume; int varsta; float inaltime; string culoare_preferata;.
  2. Pentru nume si culoare_preferata (pot avea spatii), foloseste getline(cin, nume); in loc de cin >> nume;, asa cum indica enuntul.
  3. Afiseaza fiecare informatie pe rand propriu, cu eticheta (ex: cout << "Nume: " << nume << endl;).
  4. Aniversarea rotunda: calculeaza varsta - varsta % 10 + 10 (urmatorul multiplu de 10 mai mare decat varsta).

Capcana: daca amesteci cin >> cu getline, ramane un Enter necitit in flux care strica urmatorul getline - adauga cin.ignore(); intre ele. Criteriu: toate cele 4 date afisate formatat, plus calculul aniversarii verificat pe un exemplu (varsta 13 -> 20).

Ce ai invatat astazi

  • Ai invatat structura de baza
  • Acum stii variabile - "cutii" pentru date
  • Ai descoperit tipuri de date principale
  • Ai explorat operatori aritmetici
  • Ai inteles citire de la tastatura
  • Ai invatat 💡 reguli pentru nume de variabile

Vrei mai mult?

Stii tipurile de date si operatorii. Timpul sa vezi unde se sparg.

  • Provocare: Scrie un program cu int varsta; si cin >> varsta;. Ruleaza-l si, cand cere input, scrie cinci in loc de un numar. Noteaza EXACT ce afiseaza. Apoi introdu 7.9 intr-un int - ce se intampla cu partea zecimala?
  • De ce? Operatorul / da rezultat diferit intre doua numere int (trunchiat) fata de doua numere float, desi scrii acelasi simbol. Ce decide compilatorul cand alege cum sa imparta?
  • Mai departe: Erorile de tip sunt cea mai frecventa sursa de bug-uri in programare - o banca ce trunchiaza gresit banii la impartire pierde bani real. De-aia Java sau C# opresc programul la compilare daca amesteci tipurile fara sa fii explicit.

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →