Sunteți pe pagina 1din 9

TIPURI DE DATE

Def: Prin dată se înţelege orice entitate asupra căreia calculatorul poate opera.

Ex: int x; /*x - este o dată asupra căreia se operează*/

Un tip de dată precizează mulţimea valorilor pe care le poate lua o dată, operaţiile care se
pot efectua asupra ei şi lungimea de reprezentare internă.

CLASIFICARE: În limbajul C distingem două categorii de date:


• tipuri predefinite de date (standard sau fundamentale)
- aritmetice (întregi şi reale)
- void
• tipuri derivate
- tipuri structurate
 tablouri (şiruri de caractere)
 înregistrare
- pointer
- definite de utilizator (enumerare)

Pentru început ne vom ocupa de numai de tipurile simple de date (predefinite sau
standard). Acestea sunt prezentate în tabelul de mai jos:
CUVÂNT LUNGIME LUNGIME DE REPREZ. INTERNĂ
REZERVAT ÎN BIŢI
int 16 întreg cu semn [-32768,32767]
short 16
long 32 întreg cu semn [-231,231]
unsigned 16 întreg fără semn [0,65535]
char 8 unsigned char [0,255] şi char [-128,127]
float 32 real cu val absolută în intervalul [3.4*10-38, 3.4*1038]
double 64 real cu val absolută în intervalul [1.7*10-308, 1.7*10308]
long double 80 real cu val absolută în intervalul [3.4*10-4932, 3.4*104932]

unsigned - se referă la date fără semn şi poate fi utilizat în combinaţie cu celelalte tipuri de date
EX: unsigned int - întreg fără semn
unsigned char - caracter fără semn
unsigned float - real fără semn etc.
signed - se poate folosi pentru a pune în evidenţă semnul
EX: signed int - întreg cu semn, este la fel ca şi cum aş scrie numai int
Am văzut pentru aceste tipuri de date simple mulţimea valorilor precum şi lungimea de
reprezentare internă, mai rămâne să studiem operaţiile ce se pot executa cu aceste date.
CONSTANTE

O constantă are un tip şi o valoare. Valoarea acesteia nu poate fi modificată pe tot


parcursul programului.
În C există următoarele tipuri de constante:
• constante întregi
• constante reale
• constante caracter
• constante şir de caractere
• constante simbolice
Vom discuta în cele ce urmează constante intregi si reale.

CONSTANTE ÎNTREGI

O constantă întreagă poate fi un şir de cifre, care eventual este precedat de un semn.

Mod de reprezentare:16 sau 32 biţi prin complement faţă de 2. În cazul în care, dorim ca o
constantă să fie reprezentată pe 32 biţi chiar dacă ea se poate
reprezenta pe 16 biţi, vom termina constanta respectivă cu l sau L, astfel
constanta va fi de tip long.

CLASIFICARE:
• constante întregi zecimale (scrise în baza 10)
• constante întregi octale (scrise în baza 8) - precedate de 0 nesemnificativ
• constante întregi hexazecimale (scrise în baza 16) - precedate de 0x sau 0X

EXEMPLE:
1) 34534L, -98, 23, 10, 1 - constante întregi zecimale
a23, 23t435 - nu sunt constante întregi
2) 0123, 01257 - constante întregi octale
08965 - nu este constantă întreagă octală deoarece 8 şi 9 nu sunt cifre din baza 8
3) 0xa23B, 0XABC, 0xAaB23 - constante întregi hexazecimale
0x09G - nu este constantă întreagă hexazecimală deoarece G nu este literă din hexa

OBS: 1) Cifrele hexazecimale: 0 .. 9 şi a .. f sau A .. F


2) Cifrele octale 0 .. 7

1.4.2 CONSTANTE REALE


O constantă reală este un număr real care se compune din:
 semn +/- (ce poate lipsi)
 parte întreagă ce poate fi vidă (ex: .345 )
 parte fracţionară ce poate fi vidă (ex: 123. )
 un exponent (e sau E) care poate fi şi vid (ex: 454e-2 )
!Atenţie: Nu pot lipsi toate în acelaşi timp. Trebuie să existe ori partea întreagă, ori cea
fracţionară
OBS: Exponentul este format din litera e sau E urmat de un semn (opţional) şi de un şir de cifre
zecimale

Mod de reprezentare:
16 sau 32 biţi
Constantele reale sunt de tip double (dublă precizie).
Dacă se doreşte ca ele să fie:
 de tip float atunci vom termina constanta cu f sau F
 de tip long double atunci terminăm constanta cu l sau L

EXEMPLE: 343.23, -98.3, .89, -.45, 23., -5., 12E-3, -.56e+34. .99E10

Contraexemple: 565, e45 (lipseşte partea întreagă sau fracţionară), E+67, .

Constantele nu pot fi modificate în timpul execuţiei programului

DEFINIREA CONSTANTELOR (utilizator)

const <identificator> = valoare ;

Exemplu: Constante declarate prin const:


#include <iostream.h> #include <iostream.h>
void main() void main(void)
{ {
const valoare = 9; const valoare = 9;
cout<< valoare;//afişează 9 valoare = valoare + 1; //ERROR
} }

Declaraţii de constante întregi: const a = 123, b = 0765, c = 0xAB12;


Declaraţii de constante reale: const real = 1.23e-7, t = .67E6;
Declaraţii de constante caracter:const c = 'A', cc = '\n';
Declaraţii de constante şir de caractere: const şir1 = "abcdefg", şir2 = "a\tb";
Expresii
O expresie este alcatuita din doi sau mai multi operanzi legati intre ei prin operatori.
Operanzii reprezinta valorile care intra in calcul si care pot fii variabile sau constante.
Operatorii desemneaza operatiile care se executa spre a obtine rezultatul.
Pot fi aritmetici, relationali, logici

OPERATORI C++

OPERATORI ARITMETICI.
+ (adunare) ; - (scadere) ; * (inmultire) ; / (impartire) ; % (restul impartirii intregi)
OPERATORI RELATIONALI.
< (mai mic) ; <= (mai mic sau egal) ; > (mai mare) ; >= (mai mare sau egal)
OPERATORI DE EGALITATE.
== (egalitate) ; != (inegalitate)
OPERATORI DE INCREMENTARE SI DECREMENTARE.
++ (incrementare) ; -- (decrementare)
Operatorii pot fi : prefixati (in fata operandului) situatie in care variabila este incrementata sau
decrementata inainte ca valoarea retinuta de ea sa intre in calcul
postfixati (dupa operand) situatie in care variabila este incrementata sau
decrementata dupa ce valoarea retinuta de ea intra in calcul
Exemplu:
Daca a si b sunt variabile de tip int care retin valorile 1 si 3 atunci:
a++*b++ produce valoarea 3, dupa evaluare cele 2 variabile retin 2 si 4
++a*++b produce valoarea 8, dupa evaluare cele 2 variabile retin 2 si 4
OPERATORI DE ATRIBUIRE
Apare foarte frecvent si reprezinta memorarea unei valori intr-o variabila
Este reprezentata prin semnul =
a=3 (atribuie variabilei a valoarea 3)
Se mai utilizeaza operatori de atribuire combinati:
+= ; -= ; *= ; /= ; %= ; &= ; <<= ; >>=
Exemplu: a=a+b este echivalent cu a+=b ; a=a*b este echivalent cu a*=b
OPERATORUL CONDITIONAL.
Forma generala e1 ? e2 : e3
Se evalueaza e1, daca este adevarata se executa e2, daca este falsa se executa e3
Structura unui program
Un program scris in C++ este alcatuit din una sau mai multe functii. Fiecare functie are mai multe
instructiuni in C++ care codifica algoritmul programului. Instructiunile unei functii reprezinta corpul
functiei si sunt cuprinse intre { }. Dupa fiecare instructiune din corpul functiei se pune semnul ;
Functiile de acelasi domeniu sunt grupate in fisiere header numite si directive.
La inceputul fiecarui program se specifica fisierele care contin functiile ce se utilizeaza in program
astfel: # include <numefisier.h>
Dupa specificarea directivelor trebuie scrisa functia radacina care se numeste main( ) sau void
main( ). Dupa numele directivelor sau a functiilor nu se pune semnul ;
Citirea, scrierea.
- pentru realizarea citirii se utilizeaza : cin>>nume variabila
cin>>a>>b>>c - citeste variabilele a, b, c
- pentru realizarea scrierii se utilizeaza: cout<<nume variabila
cout<<a<<b<<c - scrie variabilele a, b, c
Instructiunile limbajului C++
O instructiune este o serie de comenzi date de catre programator calculatorului pentru a fi executate.
Instructiunea de atribuire
Forma generala:
variabila=valoare;
Unde :
variabila este numele variabilei utilizate
valoare este valoarea luata de acea variabila
Exemplu:
a=5;
Variabilei a i s-a atribuit valoarea 5 .
Instructiunea de incrementare/decremantare
A incrementa inseamna a adauga o valoare unei variabile, adica a mari valoarea initiala.
A decrementa inseamna total invers, a o micsora.
O forma simplista este :
i=i+1;
iar una mai “sofisticata” este:
i++ ;
sau ++i;
Efectul operatorilor unari este acelasi, insa momentul difera. ++i intai incrementeaza variabila si dupa
face operatiile cu valoarea incrementate pe cand i++ face operatiile cu valoarea neincrementata si
abia apoi o incrementeaza.
Pentru a decrementa folosim — .
i–-;
sau – - i;
Instructiunea compusa
Forma generala:
{
instructiune 1;
instructiune 2;
…..
instructiune n;
}
Utilizam aceasta instructiune cand avem de efectuat mai multe “operatii” , cauze ale unei anumite
instructiuni (de obicei de decizie sau while-do etc. ) .
Instructiunea If
Aceasta instructiune este o instructiune de decizie.
Forma generala:
if (conditie) insctructiune ;
Putem citi acest lucru astfel: daca este indeplinita conditia atunci executa instructiune.
Instructiunea if cuprinde si o ramura else, optionala.
Forma generala:
if (conditite) instructiune 1 ;
else instructiune 2;
Daca ( , ) conditia este adevarata atunci executa instructiune 1, altfel executa instructiune 2.
Exemplu
if (5>3) cout<<”adevarat ! “;
else cout<<”fals”;
Daca 5 > 3 atunci scriem “adevarat !” , altfel scriem “fals” .
Exemplu:
a=7;
b=4;
c=2;
if (a>b+c) cout<<”a este mai mare decat b+c”;
else cout<<”a nu este mai mare decat b+c”;
Am atribuit valori variabilelor a,b si c. Daca a>b+c atunci afisam “a este mai mare decat b+c”, altfel
afisam “a nu este mai mare decat b+c”;

Instructiunea alternativă generalizată switch ...case


Aceasta instructiune este corespondenta instructiunii case din Pascal.
Forma generala:
switch (variabila)
{
case valoare 1: instructiune 1;breack;
case valoare 2: instructiune 2; breack;
. . .
case valoare n: instructiune n; breack;
default: instructiune default;
}
Pentru înţelegerea principiului de executie al acestei instructiuni, voi da un exemplu:
a=3;
switch (a)
{
case 1: cout<<”a este egal cu 1″;
case 2: cout<<”a este egal cu 2″;
case 3: cout<<”a este egal cu 3″;
default: cout<<”a este mai mare decat 3″;
}
Daca a==1 atunci afisam mesajul corespunzator, daca a==2 atunci afisam mesajul corespunazator,
la fel si pentru a==3. Daca a nu indeplineste niciuna din conditiile din “case-uri”, atunci instructiunea
default afiseaza “a este mai mare decat 3″. Ramura default este obligatorie pentru instructiunea
switch.
Switch este deosebit de utila atunci cand trebuie sa verificam proprietati ale unei variabile pe mai
multe cazuri.
Instructiunea while
In engleza, while inseamna in timp ce. Numele cred ca deja va sugereaza despre ce este vorba.
Forma generala
while (conditie)
{
instructiune 1;
instructiune 2;
instructiune 3;
…..
instructiune n;
}

Iarasi un exemplu va face mai clara situatia.

a=3;
b=2;
while (a>b)
{s=a+b;
a=b;
b=4;
}

Cat timp a>b suma va lua valoarea a+b, a ia valoarea b, iar b devine 4.
Aceasta este o instrctiune, la fel ca cea care urmeaza a fi prezentata:
Instructiunea do…while
Forma generala
do

{
instructiune 1;
instructiune 2;
instructiune 3;
….
instructiune n;
}while (conditie);
Executa instructiunile atata timp cat conditiile din while sunt adevarate. Diferente dintre while si do
while este urmatoarea: Daca in cazul primeia daca conditia este falsa nu se executa niciodata
instructiunile in cazul celei de-a doua se va executa o data tot sirul de instructiuni dupa care se va
opri executia.

Instructiunea for
Aceasta este o instructiune repetitiva de asemena, dar cu un numar finit de pasi. Este cea mai
folosita instructiune repetitiva. Poate fi simulata cu ajutorul instructilor while sau while-do, dar
majoritatea programatorilor prefera sa o foloseasca in forma sa “pura”.

Forma generala
for (variabila=valoare;cat timp conditie;instructiune)
{
instructiune 1;
instructiune 2;
….
inctructiune n;
}

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