În C++, o variabilă este un spațiu de memorie care stochează o valoare ce poate fi utilizată și modificată în program. Fiecare variabilă are un nume (identificator), un tip de date și o valoare.
Sintaxa de bază:
tip_de_date nume_variabila = valoare_initiala;
Exemple:
int varsta = 25; // o variabilă întreagă
float inaltime = 1.75; // o variabilă cu virgulă mobilă
char litera = 'A'; // o variabilă caracter
bool esteStudent = true; // o variabilă booleană
Explicații:
int,float,char,boolsunt tipuri de date.varsta,inaltime, etc. sunt numele variabilelor.- Valorile (
25,1.75,'A',true) pot fi modificate pe parcursul programului.
Caracteristici:
- O variabilă trebuie să fie declarată înainte de a fi utilizată.
- Numele variabilei trebuie să înceapă cu o literă sau un underscore (_), nu cu o cifră.
- Tipul determină ce fel de date poate conține și cât spațiu ocupă în memorie.
Un exemplu simplu de program C++ care folosește variabile:
#include <iostream>
using namespace std;
int main() {
// Declararea variabilelor
int varsta = 20;
float inaltime = 1.75;
char initiala = 'M';
bool esteStudent = true;
// Afișarea valorilor
cout << "Varsta: " << varsta << endl;
cout << "Inaltime: " << inaltime << " metri" << endl;
cout << "Initiala: " << initiala << endl;
cout << "Este student: " << (esteStudent ? "Da" : "Nu") << endl;
return 0;
}
Ce face programul:
- Declară 4 variabile de tipuri diferite.
- Le inițializează cu valori.
- Afișează valorile folosind
cout.
Rezultatul la rulare:
Varsta: 20
Inaltime: 1.75 metri
Initiala: M
Este student: Da
Iată o variantă a programului în care utilizatorul introduce valorile variabilelor de la tastatură:
#include <iostream>
using namespace std;
int main() {
// Declararea variabilelor
int varsta;
float inaltime;
char initiala;
bool esteStudent;
// Introducerea valorilor de la tastatură
cout << "Introdu varsta: ";
cin >> varsta;
cout << "Introdu inaltimea (in metri): ";
cin >> inaltime;
cout << "Introdu initiala numelui tau: ";
cin >> initiala;
cout << "Esti student? (1 pentru Da, 0 pentru Nu): ";
cin >> esteStudent;
// Afișarea valorilor introduse
cout << "\n--- Informatii introduse ---" << endl;
cout << "Varsta: " << varsta << endl;
cout << "Inaltime: " << inaltime << " metri" << endl;
cout << "Initiala: " << initiala << endl;
cout << "Este student: " << (esteStudent ? "Da" : "Nu") << endl;
return 0;
}
O variantă îmbunătățită a programului, cu validare pentru ca vârsta și înălțimea să nu fie negative și pentru ca răspunsul la „Ești student?” să fie doar 0 sau 1:
#include <iostream>
using namespace std;
int main() {
int varsta;
float inaltime;
char initiala;
bool esteStudent;
// Citire cu validare pentru varsta
do {
cout << "Introdu varsta (numar pozitiv): ";
cin >> varsta;
if (varsta < 0) {
cout << "Varsta nu poate fi negativa!\n";
}
} while (varsta < 0);
// Citire cu validare pentru inaltime
do {
cout << "Introdu inaltimea (in metri, valoare pozitiva): ";
cin >> inaltime;
if (inaltime <= 0) {
cout << "Inaltimea trebuie sa fie mai mare decat 0!\n";
}
} while (inaltime <= 0);
// Citire initiala
cout << "Introdu initiala numelui tau: ";
cin >> initiala;
// Citire cu validare pentru esteStudent (doar 0 sau 1)
int raspunsStudent;
do {
cout << "Esti student? (1 pentru Da, 0 pentru Nu): ";
cin >> raspunsStudent;
if (raspunsStudent != 0 && raspunsStudent != 1) {
cout << "Te rog sa introduci doar 1 (Da) sau 0 (Nu).\n";
}
} while (raspunsStudent != 0 && raspunsStudent != 1);
esteStudent = static_cast<bool>(raspunsStudent);
// Afișare rezultate
cout << "\n--- Informatii introduse ---" << endl;
cout << "Varsta: " << varsta << endl;
cout << "Inaltime: " << inaltime << " metri" << endl;
cout << "Initiala: " << initiala << endl;
cout << "Este student: " << (esteStudent ? "Da" : "Nu") << endl;
return 0;
}
O variantă îmbunătățită a programului, cu validare pentru ca vârsta și înălțimea să nu fie negative și pentru ca răspunsul la „Ești student?” să fie doar 0 sau 1 și cu salvarea datelor în fișierul date_utilizatori.txt:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int numarPersoane;
cout << "Cate persoane doresti sa introduci? ";
cin >> numarPersoane;
// Deschidem fisierul pentru scriere
ofstream fisier("date_utilizatori.txt");
if (!fisier) {
cerr << "Eroare la deschiderea fisierului!" << endl;
return 1;
}
for (int i = 1; i <= numarPersoane; i++) {
cout << "\n--- Introdu datele pentru persoana #" << i << " ---" << endl;
int varsta;
do {
cout << "Varsta (pozitiva): ";
cin >> varsta;
if (varsta < 0)
cout << "Eroare: varsta trebuie sa fie pozitiva!" << endl;
} while (varsta < 0);
float inaltime;
do {
cout << "Inaltime (in metri, > 0): ";
cin >> inaltime;
if (inaltime <= 0)
cout << "Eroare: inaltimea trebuie sa fie > decat 0!" << endl;
} while (inaltime <= 0);
char initiala;
cout << "Initiala numelui: ";
cin >> initiala;
int raspunsStudent;
bool esteStudent;
do {
cout << "Esti student? (1 = Da, 0 = Nu): ";
cin >> raspunsStudent;
if (raspunsStudent != 0 && raspunsStudent != 1)
cout << "Eroare: introdu doar 1 sau 0!" << endl;
} while (raspunsStudent != 0 && raspunsStudent != 1);
esteStudent = (raspunsStudent == 1);
// Scriere in fisier
fisier << "Persoana #" << i << endl;
fisier << "Varsta: " << varsta << endl;
fisier << "Inaltime: " << inaltime << " metri" << endl;
fisier << "Initiala: " << initiala << endl;
fisier << "Este student: " << (esteStudent ? "Da" : "Nu") << endl;
fisier << "-------------------------" << endl;
}
fisier.close();
cout << "\nDatele au fost salvate in 'date_utilizatori.txt'.\n";
return 0;
}
Temă:
Să se studieze programele de mai sus astfel încât să puteți răspunde pentru orice linie de program la întrebarea despre ce efect are.
