Documente Academic
Documente Profesional
Documente Cultură
Laborator 1 Programare
Laborator 1 Programare
Tipuri de date în C:
1)Numerice:
1.1) Întregi
int = număr pozitiv sau negativ reprezentat pe 4 octeți = 32 biți. Numerele ce pot fi reprezentate în acest
format se află în intervalul [−𝟐𝟑𝟏 , 𝟐𝟑𝟏 − 𝟏]. Pentru citirea sau afișare acestor numere se utilizează
specificatorul %d. Cel mai des folosit pentru numere întregi.
long long = număr pozitiv sau negativ reprezentat pe 8 octeți = 64 biți. Numerele care pot fi reprezentate
în acest format se află în intervalul [−𝟐𝟔𝟑 , 𝟐𝟔𝟑 − 𝟏]. Pentru citirea sau afișarea acestor numere se
utilizează specificatorul %lld
short int = număr pozitiv sau negativ reprezentat pe 2 octeți = 16 biți. Numerele care pot fi reprezentate
în acest format se află în intervalul [−𝟐𝟏𝟓 , 𝟐𝟏𝟓 − 𝟏]. Pentru citirea sau afișarea acestor numere se
utilizează specificatorul %hi
unsigned int = număr pozitiv reprezentat pe 4 octeți = 32 de biți. Numerele care pot fi reprezentate în
acest format se află în intervalul [𝟎, 𝟐𝟑𝟐 − 𝟏]. Pentru citirea sau afișarea acestor numere se utilizează
specificatorul %u
unsigned long long = număr pozitiv reprezentat pe 8 octeți = 64 de biți. Numerele care pot fi reprezentate
în acest format se află în intervalul [𝟎, 𝟐𝟔𝟒 − 𝟏]. Pentru citirea sau afișarea acestor numere se utilizează
specificatorul %llu
unsigned short int = număr pozitiv reprezentat pe 2 octeți = 16 de biți. Numerele care pot fi reprezentate
în acest format se află în intervalul [𝟎, 𝟐𝟏𝟔 − 𝟏]. Pentru citirea sau afișarea acestor numere se utilizează
specificatorul %hu
1.2)Reale
2)Nenumerice
char = reprezintă un caracter (literă, cifră, caracter special, caracter neafișabil). Spațiul necesar este de 1
octet = 8 biți.
bool = o valoare binară Adevărat sau Fals (true, false). Spațiul necesar 1 octet = 8 biți.
35 / 2 = 17 rest 1
17 / 2 = 8 rest 1
8 / 2 = 4 rest 0
4 / 2 = 2 rest 0
2 / 2 = 1 rest 0
1 / 2 = 0 rest 1
Numărul obținut este 100011 în baza 2. Înaintea unui număr natural se pot pune o infinitate de cifre de 0
și numărul va rămâne neschimbat din punct de vedere al valorii, astfel că dacă se dorește reprezentarea
numărului pe 16 biți corespunzători tipului de date unsigned short int atunci numărul va deveni
0000000000100011.
Pasul 1)
55 / 2 = 27 rest 1
27 / 2 = 13 rest 1
13 / 2 = 6 rest 1
6 / 2 = 3 rest 0
3 / 2 = 1 rest 1
1 / 2 = 0 rest 1
55'* = 0000000000110111(
Pasul 2)
0000000000110111( → 1111111111001000
Pasul 3)
Exemple:
int a, b, c;
float a;
char car;
La declarare se pot atribui și valori pentru variabile prin utilizarea operatorului de asignare/atribuire =
Exemple:
int nr;
nr=0;
double x;
x=10.6;
Operații pe biți
Și cu simbolul &, tabelul de adevăr:
& 1 0
1 1 0
0 0 0
| 1 0
1 1 1
0 1 0
^ 1 0
1 0 1
0 1 0
Negare cu simbolul ~, tabelul de adevăr:
~ 1 0
0 1
Siftarea la stangă, cu simbolul <<, reprezintă o deplasare a biților spre stangă cu un nr de poziții, biții noi
care apar în dreapta numărului sunt 0, iar cei care depășesc formatul de reprezentare sunt eliminați.
Exemplu:
0000000001100101<<3 = 0000001100101000
Siftarea la dreapta, cu simbolul >>, reprezintă o deplasare a biților spre dreapta cu un nr de poziții, ultimii
biți sunt eliminați (cei din dreapta) iar în stangă se completează cu 0 pt numere întregi pozitive.
0000000001100101>>2 = 0000000000011001
Ex8: Utilizând operațiile pe biți învățate până acum să se seteze valoare bitului de pe poziția 3 din numărul
35 cu valoare 1, indiferent de valaore lui curentă.
Ex9: Utilizând operațiile pe biți învățate până acum să se seteze valaorea bitului de pe poziția 4 din
numărul 55 cu valoarea 0, indiferent de valoarea lui curentă.
tip_date numr_var;
scanf(“%specificator”,&nume_var);
Exemplu:
int a;
scanf(“%d”,&a);
Exemplu:
scanf(“%lf%lf”,&var1,&var2);
Afișarea datelor
Se face în mod general astfel:
Exemplu:
printf(“a = %f si b = %f”,a,b);
Adăugarea de comentarii
Se face utilizând // dacă este un comentariu de un rând sau /* text comentariu /* dacă comentariul este
de mai multe rânduri. Scopul comentariilor este acela de a clarifica codul scris, de a oferi mai multe
informații și de a face codul mai ușor de înțeles. Comentariile nu afectează cu nimic execuția programului,
ele sunt ignorate de compilator. Comentariile sunt importante numai pentru om, nu și pentru calculator.
Exemplu:
int a=10,b=7,c;
c=a+b;
Operatori aritmetici
int a=10, b=6, c=-15, d=3, e=2, f=15, g=6, rez;
rez=a+b;
a = a+b;
Echivalente
a +=b;
rez = b – c;
b = b – c;
Echivalente
b -= c;
rez = c * d;
c = c* d;
Echivalente
c *= d;
rez = d / e;
d = d / e;
Echivalente
d /= e;
rez = f%g
f = f%g
Echivalente
f %= g
Operatori de comparație
Au ca rezultat o valoare booleană, iar ca simboluri: ==, !=, >, >=, <, <=.
Exemplu:
int a=7,b=12;