[Teorie] Tipul expresiilor in C++. Conversii de tip (implicit / explicit)
Posted: Sun Sep 20, 2026 7:15 pm
Tipul expresiilor in C++. Conversii de tip
Conversii implicite si explicite (casting) • ierarhia tipurilor • functii matematice
Nivel: Intermediar | Durata: ~30 min
Tipul expresiilorNivel: Intermediar | Durata: ~30 min
Expresie = operanzi (variabile, constante) + operatori. Dupa evaluare, rezultatul are o valoare si un tip de data.
Regula de baza: tipul expresiei este dat de cel mai "incapator" (precis) tip dintre operanzi.
1. Conversia implicita
Realizata automat de compilator cand operanzii au tipuri diferite.
Ierarhia conversiei (de la cel mai mic la cel mai mare):
Code: Select all
bool -> char -> short -> int -> long long -> float -> doubleCode: Select all
int a = 5;
double b = 2.5;
// a + b este double (double e superior lui int)
double rezultat = a + b; // 7.5Fortata de programator — utila contra trunchierilor gresite, mai ales la impartirea intregilor.
Sintaxa C-style:
Code: Select all
(tip_nou) expresieCode: Select all
int x = 5, y = 2;
float gresit = x / y; // 2.0 (5/2 da 2 intreg!)
float corect = (float)x / y; // 2.5
float f = 3.99;
int i = (int)f; // 3 (taie zecimalele)Code: Select all
char litera = 'A';
int codAscii = (int)litera; // 65
char caracter = (char)97; // 'a'Necesita biblioteca
Code: Select all
#include <cmath>abs(x) / fabs(x) wrote:Modulul lui x — abs pentru intregi, fabs pentru reali.
sqrt(x) wrote:Radacina patrata a lui x (radicalul). Argumentul trebuie sa fie pozitiv.
pow(x, y) wrote:Returneaza x la puterea y (x la puterea y).
floor(x) / ceil(x) wrote:Floor rotunjeste in jos, iar ceil rotunjeste in sus.
trunc(x) / round(x) wrote:Trunc taie zecimalele, round rotunjeste la cel mai apropiat intreg.
Intrebari? Postati mai jos.exp(x) wrote:Returneaza numarul lui Euler e la puterea x.
Sursa: bac-2026.vercel.app/lessons/4