Documente Academic
Documente Profesional
Documente Cultură
Def: Prin dată se înţelege orice entitate asupra căreia calculatorul poate opera.
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ă.
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
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
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
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”;
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;
}