Sunteți pe pagina 1din 7

C++ TIPURI DE DATE I OPERATORI UTILIZAI 1.

Scopul lucrrii Scopul lucrrii este prezentarea tipurilor de date, noiunii de expresie n limbajul C++, a operatorilor i a modului de evaluare a unei expresii. 2. Consideraii teoretice Computerele folosesc informaiile ntr-un mod asemntor cu oamenii. Acestea primesc informaiile fie din mediul exterior (prin dispozitivele de intrare de date, ex.: tastatur, scanner, camer web, memorii mobile, internet etc.) fie din memoria intern. Toate datele au o natur specific i n consecin acestor tipuri de date li se aplic operaii corespunztoare ce vor furniza rezultate corespunztoare cu natura lor. Datele stocate pot fi prelucrate n funcie de natura lor folosind aplicaii potrivite pentru acest tip de date. De exemplu datele calendaristice vor avea o caracteristic clar i deci vor putea fi difereniate fa de datele datele de natur aritmetic. 2.1 Date i tipuri de date Programele pot lua date (informaii) pentru a le prelucra din urmtoarele surse: - de la utilizator; - din memoria intern; - din rezolvarea unor operaii etc. Tipuri de date n C++ fiecare dat trebuie s fie definit de ctre programator ca fiind un anumit tip pentru a putea fi utilizat corect n cadrul operaiilor efectuate n programe. Tipul de dat determin modul n care datele sunt reprezentate n interiorul calculatorului i operaiile care se pot realiza asupra lor. Tipurile fundamentale (predefinite sau de baz )sunt: Tipul boolean, cuvnt cheie pentru definire: bool (ex.: true, false) Tipul caracter, cuvnt cheie pentru definire: char (ex.: a, b, c etc.) Tipuri ntregi, cuvnt cheie pentru definire: 40 etc.) Tipuri reale, cuvnt cheie pentru definire: (ex.: 2.55, 4.3265, 50.39871539 etc.)

int, short, long (ex.: 1, 2,3,4,

float, double, long double

Tipul vid sau absena unui tip de date, cuvnt cheie pentru definire: void

2.2 Definirea tipurilor de date n C++ pentru definirea tipurilor de date se folosesc identificatori pentru a se putea definii locaiile de memorie din calculator. Identificatorii sunt formai din nume formate de ctre programator pentru memorarea datelor ce sunt folosite n cadrul programelor rulate de ctre utilizatori. Programatorul se va folosii de identificatori pentru a putea gestiona informaiile iar denumirea unui identificator va fi alctuit dup urmtoarea regul: - numele identificatorului trebuie s nceap prin utilizarea de litere (A-Z, a-z), urmate de cifre (0-9).

Pentru grupuri de litere i cifre se va utiliza caracterul _ (underscore)pentru a fi unite ntre ele.

Exemple de indicatori coreci: A poate reprezenta identificatorul unei operaii aritmetice (sau se poate folosii a) suma un astfel de identificator este des utilizat n operaii aritmetice fiind uor de identificat rezultatul, alte exemple sunt: rest, rezultatul_final, rezultatul_mpririi. Exemple de indicatori incoreci:

Nu pot fi folosii ca i indicatori cuvinte cheie ce reprezint comenzi definite n limbajul C++. Un identificator const din dou componente: - tipul de dat - identificator (numele obiectului). Definirea sau declararea unei variabile n forma general se face dup forma:

Tip de dat identificator;


Ex.: int i; float a, rest, valoare_pre_unitar;

Tipul de dat trebuie specificat conform cu cuvntul cheie definit n C++ (ex.: bool, char, int, float etc.).
Identificatorul poate fi urmat de o iniializare (atribuirea unei valori de nceput), care specific valoarea de pornire (iniial) asociat identificatorului. Exemple: int i, j=0. char c; float x=1.5, y; 3. Operatori i expresii. Un operator (+ - * / % etc.) este un simbol care definete tipul de operaiei executate asupra unor operanzi (identificatori). Un operand (v=0; f=1 etc.) este o constant, o variabil, un nume de funcie sau o subexpresie a crei valoare este prelucrat direct de ctre program prin intermediul unui operator. n C++ exist 45 de operatori diferii dispui pe 15 niveluri de prioritate. n funcie de tipul operanzilor asupra crora se aplic, operatorii pot fi: aritmetici, relaionali, binari, logici, etc. 3.1 Operatorii aritmetici. Operatorii aritmetici binari sunt: +, -, *, / i % (modul = restul mpririi ntregi). Prioritatea operatorilor aritmetici este:

+, unari ; *, /, %,+, binari ; Regula de asociativitate este de la stnga la dreapta (la prioriti egale operatorii sunt evaluai de la stnga la dreapta). Operatori aditivi operator descriere + adunare scdere tip operanzi aritmetici pointer i ntreg aritmetici pointer i ntreg doi pointeri tip operanzi aritmetic aritmetic ntreg tip rezultat int,unsigned,long,double pointer int,unsigned,long,double pointer int tip rezultat int,unsigned,long,double int,unsigned,long,double int,unsigned,long preceden 4 4

Operatori multiplicativi operator * / % Descriere nmulire mprire restul mpririi ntregi preceden 3 3 3

3.2 Operatorii de atribuire. Operaia de atribuire modific valoarea asociat unei variabile (partea stng) la valoarea unei expresii (partea dreapt). Valoarea transmis din partea dreapt este convertit implicit la tipul prii stngi. Atribuiri de forma: a = a op b se scriu mai compact a op= b n care op= poart numele de operator de atribuire, op putnd fi un operator aritmetic (+, -,*,/,%) sau binar (>>, <<, &, ^, |). O atribuire multipl are forma: v1=v2=...=vn=expresie i este asociativ la dreapta. O operaie de atribuire terminat prin punct-virgul (terminatorul de instruciune) se transform ntr-o instruciune de atribuire. 3.3 Operatorii relaionali. Operatorii relaionali sunt: >, >=, <, <= , care au toi aceeai prioritate (preceden). Cu prioritate mai mic sunt: ==, !=. Operatorii relaionali au prioritate mai mic dect operatorii aritmetici. Putem deci scrie a < b -1 n loc de a < (b -1). Exemple: car >= a && car <= z Operatori relaionali operator < > <= descriere mai mic mai mare mai mic sau egal tip operanzi aritmetic sau pointer aritmetic sau pointer aritmetic sau pointer tip rezultat int int int preceden 6 6 6

>= == !=

mai mare sau egal egal neegal

aritmetic sau pointer aritmetic sau pointer aritmetic sau pointer

int int int

6 7 7

3.4 Operatorii booleeni. Exist urmtorii operatori logici: ! - NEGATIE (operator unar) && - I logic (operatori binari) || - SAU logic Exemple: i<n-1 && (c=getchar()) != \n && c != EOF nu necesit paranteze suplimentare deoarece operatorii logici sunt mai puin prioritari dect cei relaionali. bisect= an % 4 == 0 && an % 100 != 0 || an % 400 == 0; estecifra= c >= 0 && c <= 9 Condiia x == 0 este echivalent cu !x x != 0 && y != 0 && z != 0 este echivalen cu x && y && z Operatori booleeni operator ! && || descriere negaie I logic SAU logic Tip operanzi aritmetic sau pointer aritmetic sau pointer aritmetic sau pointer Tip rezultat int int int preced en 2 11 12 asociativitate DS SD SD

3.5 Operatorul secven. Este reprezentat prin , i se folosete n situaiile n care sintaxa impune prezena unei singure expresii, dar prelucrarea presupune prezena i evaluarea mai multor expresii. Exemplu: a < b ? (t=a, a=b, b=t) : a 3.6 Operatorii de incrementare /decrementare. operator ++ ++ --descriere preincrementare postincrementare predecrementare postdecrementare tip operand aritmetic sau pointer aritmetic sau pointer aritmetic sau pointer aritmetic sau tip rezultat int,long,double, unsigned,pointer la fel la fel la fel preceden 2 2 2 2

pointer

EXEMPLUL 3 Programul de mai jos determina aria unui triunghi in functie de lungimile laturilor sale (formula lui Heron).

Explicai liniile de program adugnd comentarii! EXEMPLUL 4 Utilizarea operatorului de incrementare

Explicai liniile de program adugnd comentarii! Modificai programul de mai sus astfel nct s execute operaia de decrementare. EXEMPLUL 5 Utilizarea operatorilor aritmetici. Funcii

TEME DE CAS: 1. Scriei un program n C++ care calculeaz cte igri fumeaz ntr-o lun un fumtor i ct cost acestea conform cu tipul de igri consumate. Afiai la sfritul programului i mesajul Fumatul duneaz grav economiilor i sntii tale ! (problema propus de studeni). 2. Scriei un program n C++ care poate calcula n funcie de numrul de examene luate cte credite ai obinut i cte mai sunt nevoie pentru trecerea anului. (problema propus de studeni) 3. Folosind operatorii insuiti scriei un program care sa afieze urmtoarele trei linii: 7 / 4 folosind impartirea intreaga este <rezultat> 7 / 4 folosind impartirea reala este <rezultat> 7 modulo 4 este <rezultat>

S-ar putea să vă placă și