De ce contează?
Imaginează-ți un perete cu dulăpioare la vestiar. Fiecare dulăpior are o etichetă cu un nume — „Geantă", „Telefon", „Cheie" — și înăuntru stă un singur lucru. Când vrei să vezi ce ai pus acolo, citești eticheta și deschizi dulăpiorul. Dacă schimbi conținutul, vechiul lucru dispare și rămâne doar cel nou. O variabilă este exact un astfel de dulăpior din memoria calculatorului.
Intuiția
Când un program lucrează, are nevoie să țină minte lucruri: vârsta unui elev, nota la teză, prima literă a numelui. Calculatorul nu poate ține minte „în cap" — pune fiecare valoare într-o căsuță din memorie și îi lipește o etichetă, ca să o regăsească. Eticheta este numele variabilei, iar ce stă în căsuță este valoarea ei. Tu nu te uiți niciodată la adresa fizică din memorie; te uiți doar la nume, exact ca la etichetele dulăpioarelor.
Ce este
O variabilă este o căsuță cu nume în memorie, care ține o singură valoare. Pe acea valoare o poți citi (te uiți ce e înăuntru) oricât de des și o poți suprascrie (pui altceva în loc) — dar în căsuță încape un singur lucru o dată.
Orice variabilă are mereu trei lucruri:
- Nume — eticheta prin care o chemi (
varsta,nota,litera) - Tip — ce fel de valoare poate ține (un număr întreg? un caracter?)
- Valoare — ce stă chiar acum înăuntru (
14,9.5,'A')
Ca să folosești o variabilă, mai întâi o declari: îi spui calculatorului tipul și numele, ca să-i rezerve o căsuță. Apoi îi atribui o valoare cu operatorul =.
int varsta; // declarare: rezerva o casuta de tip int, numita varsta
varsta = 14; // atribuire: pune valoarea 14 in casutaTipurile simple de care ai nevoie acum:
| Tip | Ce ține | Exemplu |
|---|---|---|
int | numere întregi (fără parte zecimală) | 14, -3, 0 |
double | numere zecimale (raționale) | 9.5, 3.14, -0.5 |
char | un singur caracter, scris între apostrofuri | 'A', 'z', '?' |
bool | o valoare de adevăr | true sau false |
Operatorul = din programare NU înseamnă „este egal cu", ca la matematică — înseamnă „pune valoarea din dreapta în căsuța din stânga". De aceea varsta = varsta + 1 are sens: calculatorul citește vechiul varsta, adună 1 și suprascrie căsuța cu rezultatul. Citește mereu = ca pe o săgeată: dreapta intră în stânga.
Cum arată
Hai să declarăm trei variabile și să le punem valori:
int varsta = 14;
double nota = 9.5;
char litera = 'A';În memorie apar trei căsuțe etichetate. Numele e eticheta de dedesubt, iar valoarea e ce stă în căsuță:
| valoare | 14 | 9.5 | 'A' |
| nume | varsta | nota | litera |
Acum suprascriem nota — elevul a luat 10 la următoarea teză. nota = 10; golește căsuța nota de vechea valoare și pune 10 în loc:
| valoare | 14 | 10 | 'A' |
| nume | varsta | nota | litera |
Observă două lucruri: numele rămâne același (nota), dar valoarea s-a schimbat; și nicio altă căsuță nu a fost atinsă. Asta înseamnă „suprascriere".
Implementare C++
Un program complet care declară variabile de fiecare tip, le suprascrie pe una și le afișează:
#include <iostream>
using namespace std;
int main() {
// declarare + atribuire intr-un singur pas
int varsta = 14;
double nota = 9.5;
char litera = 'A';
bool promovat = true;
// citim o variabila, o folosim si o suprascriem
varsta = varsta + 1; // anul urmator: 14 + 1 = 15
cout << "Varsta: " << varsta << endl; // Varsta: 15
cout << "Nota: " << nota << endl; // Nota: 9.5
cout << "Litera: " << litera << endl; // Litera: A
cout << "Promovat: " << promovat << endl; // Promovat: 1
return 0;
}Observă ultimul rând: un bool afișat apare ca 1 pentru true și 0 pentru false — pentru calculator „adevărat" și „fals" sunt doar aceste două numere.
Complexitate
| Operație | Timp | Spațiu |
|---|---|---|
| Declarare variabilă simplă | ||
| Citire / atribuire valoare |
O variabilă simplă ocupă o căsuță de dimensiune fixă, iar accesul la ea este instantaneu — nu depinde de cât de mare e programul.
Două capcane clasice:
1. Folosești o variabilă înainte să-i pui o valoare. Dacă scrii int varsta; și apoi cout << varsta; fără să fi atribuit nimic, căsuța conține o valoare „gunoi" — ce era întâmplător în memorie. Programul afișează un număr aiurea, diferit de la o rulare la alta. Regula: dă mereu o valoare înainte să citești o variabilă.
2. Pui un zecimal într-un int și pierzi partea fracționară. int x = 3.7; NU rotunjește la 4 — taie zecimalele și păstrează doar 3. Dacă ai nevoie de 3.7, declară double x = 3.7;. Alege tipul după ce vrei să ții, nu după întâmplare.
Pe scurt: o variabilă este o căsuță cu nume care ține o singură valoare, pe care o citești și o suprascrii cu =.
Tipul (int, double, char, bool) decide ce fel de valoare încape — alege-l după ce vrei să reții.