Sunteți pe pagina 1din 49

1

Facultatea de Matematica si Informatica


Universitatea Bucuresti
Dobrovat Anca - Madalina
30/10/2014
Programare procedurala
- suport de curs -
An universitar 2014 2015
Semestrul I
Saptamana 5
2
Facultatea de Matematica si Informatica
Universitatea Bucuresti
Curs 5 - Cuprins
1. Aprofundare operatii pe biti
2. Tipuri de date structurate
struct, union, campuri de biti, enum, typedef
3. Tablouri uni si multi- dimensionale
4. Discutii asupra testelor din cursul trecut.
3
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (1/18)
Reprezentarea interna a numerelor intregi (cod complementar)
Bitul de semn: - cel mai semnificativ bit (0 pentru numere pozitive; 1
pentru numere negative)
Exemplificare reprezentare pe 1 octet ( [-128, 127] )
7 6 5 4 3 2 1 0
bit de semn
1. Numere pozitive
Transformare in baza 2 n = 47
Completare bit de semn
Completare rest biti cu 0
0 0 1 0 1 1 1 1
4
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (2/18)
Reprezentarea interna a numerelor intregi (cod complementar)
1. Numere negative
n = - 47
Transformare in baza 2 a valorii absolute
|47|
Calculul complementului fata de 1 a reprezentarii obtinute la pasul
anterior (bitul 1 devine 0, iar bitul 0 devine 1)
se aduna 1 (adunarea se face in baza 2) la valoarea obinuta
+
1
0 0 1 0 1 1 1 1
1 1 0 1 0 0 0 0
1 1 0 1 0 0 0 0
1 1 0 1 0 0 0 1
5
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (3/18)
Operatori la nivel de bit
1. Negatia ~ (operator unar)
- intoarce numarul intreg a carui reprezentare interna se obtine din
reprezentarea interna a numarului initial, prin complementarea fata de 1 a
fiecarui bit (1 0 si 0 1). Expl. ~ (- 47)
- 47
Complementare fata de 1
46
0 0 1 0 1 1 1 0
1 1 0 1 0 0 0 1
6
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (4/18)
Operatori la nivel de bit
2. Conjunctia & (operator binar)
- intoarce numarul ntreg a carui reprezentare interna se obtine prin
conjunctia bitilor care apar in reprezentarea interna a operanzilor.
Conjunctia se face cu toate perechile de biti situati pe aceeasi pozitie.
Expl. 47 & 28 = 12
47
28
12
0 0 0 1 1 1 0 0
0 0 1 0 1 1 1 1
0 0 0 0 1 1 0 0
Bit 1 Bit 2 Bit 1 & Bit 2
0 0 0
0 1 0
1 0 0
1 1 1
7
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (5/18)
Operatori la nivel de bit
3. Disjunctia | (operator binar)
- intoarce numarul ntreg a carui reprezentare interna se obtine prin
disjunctia bitilor care apar in reprezentarea interna a operanzilor.
Disjunctia se face cu toate perechile de biti situati pe aceeasi pozitie.
Expl. 47 | 28 = 63
47
28
63
0 0 0 1 1 1 0 0
0 0 1 0 1 1 1 1
0 0 1 1 1 1 1 1
Bit 1 Bit 2 Bit 1 | Bit 2
0 0 0
0 1 1
1 0 1
1 1 1
8
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (6/18)
Operatori la nivel de bit
4. Xor (sau exclusiv) ^ (operator binar)
- intoarce numarul ntreg a carui reprezentare interna se obtine prin
disjunctia bitilor care apar in reprezentarea interna a operanzilor.
Disjunctia se face cu toate perechile de biti situati pe aceeasi pozitie.
Expl. 47 ^ 28 = 51
47
28
51
0 0 0 1 1 1 0 0
0 0 1 0 1 1 1 1
0 0 1 1 0 0 1 1
Bit 1 Bit 2 Bit 1 ^ Bit 2
0 0 0
0 1 1
1 0 1
1 1 0
9
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (7/18)
Operatori la nivel de bit
5. shl (shift left) << (operator binar)
- intoarce numarul intreg a carui reprezentare interna se obtine din
reprezentarea interna a primului operand prin deplasare la stanga cu un
numar de biti egal cu al doilea operand.
Expl. 10 << 3 = 80 ( 10 * 2
3
= 80)
10
80
0 1 0 1 0 0 0 0
0 0 0 0 1 0 1 0
10
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (8/18)
Operatori la nivel de bit
6. shr (shift right) >> (operator binar)
- intoarce numarul intreg a carui reprezentare interna se obtine din
reprezentarea interna a primului operand prin deplasare la dreapta cu un
numar de biti egal cu al doilea operand.
Expl. 10 >> 3 = 1 (10 / 2
3
= 1)
10
1 0 1 0
0 0 0 0 0 0 0 1
0 0 0 0 1 0 1 0
11
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (9/18)
Operatii la nivel de bit
1. Transformarea unui bit in 1 (X or (1 shl B))
- Cerinta: valorii X sa i se seteze la valoarea 1, bitul B (0 B 7).
- Rezolvare:
o masca logica M in care doar bitul B are valoarea 1. Valoarea
mastii M e data de 1 shl B
operatia OR intre X si M
Expl. X = 37, B = 4 (bitului 4 i se va seta valoarea 1)
37 OR
M
Rezultat
0 0 0 1 0 0 0 0
0 0 1 0 0 1 0 1
0 0 1 1 0 1 0 1
12
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (10/18)
Operatii la nivel de bit
2. Transformarea unui bit in 0 (X and (255 - (1 shl B)))
- Cerinta: valorii X sa i se seteze la valoarea 0, bitul B (0 B 7).
- Rezolvare:
o masca logica M in care doar bitul B are valoarea 0. Valoarea
mastii M e data de 255 (1 shl B) [sau 255 xor (1 shl B)]
operatia AND intre X si M
Expl. X = 37, B = 2 (bitului 2 i se va seta valoarea 1)
37 AND
M
Rezultat
1 1 1 1 1 0 1 1
0 0 1 0 0 1 0 1
0 0 1 0 0 0 0 1
13
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (11/18)
Operatii la nivel de bit
3. Testarea valorii unui bit (X & (1 << B) != 0)
- Cerinta: ce valori au bitii B1 si B2 ai valorii X?
- Rezolvare:
o masca logica M1 pentru bitul B1 si o masca logica M2
pentru bitul B2 cu valoarea 1
operatia AND intre X si M1 respectiv inte X si M2
Expl. X = 37, B1 = 2
37 AND
M1 X & (1 << 2) = 1
R1 1 ! = 0 (adevarat) 1
0 0 0 0 0 1 0 0
0 0 1 0 0 1 0 1
0 0 0 0 0 1 0 0
14
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (12/18)
Operatii la nivel de bit
3. Testarea valorii unui bit (X & (1 << B) != 0)
- Cerinta: ce valori au bitii B1 si B2 ai valorii X?
- Rezolvare:
o masca logica M1 pentru bitul B1 si o masca logica M2
pentru bitul B2 cu valoarea 1
operatia AND intre X si M1 respectiv inte X si M2
Expl. X = 37, B2 = 4
37 AND
M2 X & (1 << 4) = 0
R2 0 ! = 0 (fals) 0
0 0 0 1 0 0 0 0
0 0 1 0 0 1 0 1
0 0 0 0 0 0 0 0
15
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (13/18)
Operatii la nivel de bit
4. Testarea valorii ultimilor biti (X & (1 << B - 1))
- Cerinta: ce valori au ultimii B biti (egal cu restul impartirii la 2
B
) ?
- Rezolvare:
o masca logica M pentru bitii 0, 1, B-1 cu valoarea 1
operatia AND intre X si M1
Expl. X = 37, B = 3 (ultimii 3 biti = restul impartirii la 8)
37 AND
M 1 << B = 8 1 << B 1 = 7
Rez
0 0 0 0 0 1 1 1
0 0 1 0 0 1 0 1
0 0 0 0 0 1 0 1
16
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (14/18)
Aplicatii
1. Testarea paritatii unui numar (X & 1)
X = par cel mai din dreapta bit este 0
X = impar cel mai din dreapta bit este 1
X = 23 &
X = 44 &
0 0 0 1 0 1 1 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 1 0 1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
17
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (15/18)
Aplicatii
2. Se considera un numar natural n. Sa se verifice daca n este sau
nu o putere a lui 2.
X = putere a lui 2 un singur bit nenul
Rezolvare fara numararea bitilor ( X & (X - 1) = 0 X = 2
k
)
X = 32 &
X 1 = 31
X = 20 &
X 1 = 19
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1
0 0 0 1 0 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 0 0 1 1
18
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (16/18)
Aplicatii
3. Se considera un numar natural nenul n. Sa se determine
numarul de cifre de 1 din reprezentarea lui binara.
Solutie 1: parcurgerea secventiala a bitilor
int i, n_1=0; // n_1 contor pentru bitii de valoare 1
for ( i=0; i<32; i++)
if (n & (1 << i)) n_1++;
X = 27
32 x 2 operatii (n & (1<<i) )
0 0 0 1 1 0 1 1
19
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (17/18)
Aplicatii
3. Se considera un numar natural nenul n. Sa se determine
numarul de cifre de 1 din reprezentarea lui binara.
Solutie 2: folosirea n & (n - 1)
Operatia anuleaza cel mai nesemnificativ bit de 1 a lui n.
int n_1=0; // n_1 contor pentru bitii de valoare 1
do {
n &= n-1; Obs: se executa un numar de pasi egali cu numarul
n_1++; de cifre de 1 din reprezentare.
}while (n);
X = 27 &
X 1 = 26
Rez
0 0 0 1 1 0 1 1
0 0 0 1 1 0 1 0
0 0 0 1 1 0 1 0
20
Facultatea de Matematica si Informatica
Universitatea Bucuresti
1. Operatii pe biti (18/18)
Aplicatii
4. Se consider dou numere naturale n i i (0 <= i < 16). S se
marcheze cu 1 bitul i al lui n.
Solutie: Setam valoarea 1 la bitul i, indiferent de valoarea
memorat anterior (0 sau 1)
n | (1 << i)
X = 19 I
i = 3 1<<3 = 8
Rez
0 0 0 1 0 0 1 1
0 0 0 0 1 0 0 0
0 0 0 1 1 0 1 1
21
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (1/18)
Limbajul C crearea tipurilor uzuale in 5 moduri
1. Structura ( struct ) grupeaza mai multe variabile sub acelasi nume;
// tip de data compozit
2. Campul de biti variatiune a structurii acces usor la bitii individuali
3. Uniunea ( union ) face posibil ca aceleasi zone de memorie sa fie
definite ca doua sau mai multe tipuri diferite de variabile
4. Enumerarea ( enum ) lista de constante intregi cu nume
5. Tipuri definite de utilizator ( typedef ) defineste un nou nume pentru
un tip existent
22
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (2/18)
Structuri
Grup de variabile unite sub acelasi nume
Sintaxa
struct <nume> {
< tip 1 > <variabila 1>;
< tip 2 > <variabila 2>;
---------------------------------
< tip n > <variabila n>;
} lista de identificatori de tip struct;
Variabilele care fac parte din structura sunt denumite membri ai
structurii (uzual numiti elemente sau campuri).
23
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (3/18)
Structuri
struct <nume> {
< tip 1 > <variabila 1>;
< tip 2 > <variabila 2>;
---------------------------------
< tip n > <variabila n>;
} lista de identificatori de tip struct;
Obs:
1. Daca numele tipului lipseste, structura se numeste anonima. Daca lista
identificatorilor declarati lipseste, s-a definit doar tipul structura. Cel putin
una dintre aceste specificatii trebuie sa existe.
2. Daca <nume> este prezent se pot declara noi variabile de tip structura
struct <nume> <lista noilor identificatori>;
3. Referirea unui membru al unei variabile de tip structura operatorul de
selectie (.) intr-o expresie care precizeaza identificatorul
variabilei si al campului.
24
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (4/18)
Structuri Exemple
struct adrese {
char nume[30];
char strada[40];
char oras[20], jud[3];
int cod;
};
Numele adrese identifica
aceasta structura de date
particulara.
struct adrese A;
Declara o variabila de
tip adrese si ii aloca memorie
Structura din memorie pentru variabila A
de tip adrese
nume 30 octeti
strada 40 octeti
oras 20 octeti
jud 3
cod 4
25
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (5/18)
Structuri Exemple
struct adrese {
char nume[30];
char strada[40];
char oras[20], jud[3];
int cod;
} A, B, C;
Defineste un tip de structura numit
adrese si declara ca fiind de acest
tip variabilele A, B, C
struct {
char nume[30];
char strada[40];
char oras[20], jud[3];
int cod;
} A;
Declara o variabila numita A
definita de structura care o
precede.
26
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (6/18)
Structuri Exemple
struct adrese {
char nume[30];
char strada[40];
char oras[20], jud[3];
int cod;
} A, B, C;
Accesul la membrii structurii
Se face prin folosirea
operatorului punct.
nume_variabila.nume_camp
A.nume = Ionescu;
B.Cod = 257;
scanf(%d, &C.cod);
Atribuirea la nivel de structura
A.nume = Ionescu; A.strada=1 Mai;
A.oras = Bucuresti; A.jud = B; A.cod = 1;
B = A;
27
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (7/18)
Campuri de biti
Caracteristica intrinseca a limbajului C.
Permite accesul la un singur bit.
Utile:
Memorie limitata stocarea mai multor variabile booleene intr-un
singur octet.
Anumite echipamente transmit prin octeti informatii codificate.
Anumite rutine de criptare trebuie sa aiba acces la bitii dintr-un
octet.
28
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (8/18)
Campuri de biti
struct nume_generic {
tip nume_1 : lungime;
tip nume_2 : lungime;

tip nume_n : lungime;


} lista_variabile;
Poate adauga mai multa structurare (posibil si eficienta).
Este efectiv un tip special de membru al unei structuri care defineste cat
de lung trebuie sa fie campul, in biti.
Forma generala
Tipul campului de biti poate fi doar:
int, unsigned sau signed.
Campul de biti cu lungimea 1
unsigned (un singur bit nu poate
avea semn).
Unele compilatoare doar unsigned.
Lungime nr de biti dintr-un camp
29
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (9/18)
Campuri de biti Exemplu
Utilizate frecvent pentru analizarea intrarii de la un echipament hard.
Exemplu portul de stare al unui adaptor de comunicatie seriala poate
sa returneze un octet de stare organizat astfel (
[1]
):
[1] Herbert Schildt - C++ Manual complet (Partea I Baza
limbajului C++. Limbajul C)
30
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (10/18)
Campuri de biti Exemplu
Exemplu portul de stare al unui adaptor de comunicatie seriala
struct tip_stare {
unsigned delta_cts: 1;
unsigned delta_dsr: 1;
unsigned tr_edge: 1;
unsigned delta_rec: 1;
unsigned cts: 1;
unsigned dsr: 1;
unsigned ring: 1;
unsigned rec_line: 1;
} stare;
31
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (11/18)
Campuri de biti Exemplu
Exemplu rutina pentru a determina cand un program sa primeasca sau
sa transmita date.
stare = preia_stare_port();
if (stare.cts) printf(Ok pt transmis);
if (stare.dsr) printf(Date pregatite);
Atribuirea unei valori unui camp de biti
stare.ring = 0;
Obs: Nu este necesar sa fie
numiti fiecare camp de biti
acces mai usor la bitul dorit,
trecand peste cei neutilizati.
struct tip_stare {
unsigned: 4;
unsigned cts: 1;
unsigned dsr: 1;
} stare;
32
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (12/18)
Campuri de biti
In aceeasi structura pot fi combinate campuri de biti si membri normali.
struct angajat {
struct adrese A;
float plata;
unsigned activ: 1; // activ sau intrerupt
unsigned orar: 1; // plata cu ora
unsigned impozit: 3; // impozit rezultat
};
struct adrese {
char nume[30];
char strada[40];
char oras[20], jud[3];
int cod;
} ;
Obs: Defineste o inregistrare despre salariat care foloseste doar un
octet pentru a pastra 3 informatii: statutul, daca este angajat si impozitul.
Fara campul de biti, aceste informatii ar fi ocupat 3 octeti.
33
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (13/18)
Campuri de biti
Restrictii:
Nu se poate obtine adresa unui camp de biti.
Nu pot fi introduse in matrice.
Nu se stie daca vor fi rulate de la stanga la dreapta sau de la dreapta
La stanga depinde de echipament.
34
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (14/18)
Uniuni
Def: Locatie de memorie impartita in momente diferite intre doua
sau mai multe variabile diferite, in general de tipuri diferite.
union nume_generic {
tip nume_1 : lungime;
tip nume_2 : lungime;

tip nume_n : lungime;


} variabile_uniuni;
Forma generala Exemplu
union tip_u {
int i;
char ch;
};
union tip_u A;
In variabila A i si ch impart aceeasi zona
de memorie.
Cand este declarata o variabila de tip union compilatorul aloca automat
memorie suficienta pentru a pastra cel mai mare membru al acesteia.
35
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (15/18)
Uniuni
Utilizate:
Cand sunt necesari specificatori speciali de conversie (exemplu: utilizare
union pentru a manevra bitii care formeaza o data double, pentru a-I
modifica precizia sau a face anumite rotunjiri.
union tip_u {
int i;
char ch;
};
union tip_u A;
Octet 0 Octet 1 Octet 2 Octet 3
ch
i
36
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (16/18)
Enumerari
Set de constante de tip intreg care specifica toate valorile permise pe
care le poate avea o variabila de acel tip.
enum nume_generic { lista enumerarilor } lista_variabile;
Atat numele generic al enumerarii cat si lista de variabile sunt optionale.
Constanta unui element al enumerarii este fie asociata implicit, fie explicit.
Implicit, primul element are asociata valoarea 0, iar pentru restul este
valoarea_precedenta+1.
enum {a, b, c, d}; a = 0, b = 1, c = 2, d = 3
enum {a, b, c=7, d}; a = 0, b = 1, c = 7, d = 8
enum {a=4, b=-3, c=9, d=-8};
37
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (17/18)
Enumerari
Declararea unei matrice de siruri si folosirea valorii enumerarii pe post
de indice.
enum monede { penny, nickel, dime, quarter, jumatate_dolar, dolar };
enum monede bani;
char nume[][15] = {penny, nickel, dime, quarter, jumatate_dolar,
dolar};
printf(%s, nume[bani]);
Codul lucreaza corect doar daca nu este initializat nici un simbol,
deoarece matricea de siruri trebuie sa aiba indici incepand cu 0.
38
Facultatea de Matematica si Informatica
Universitatea Bucuresti
2. Tipuri de date structurate (18/18)
Specificatorul typedef
Definirea explicita a noi tipuri de date.
Nu se declara o variabila sau o functie de un anumit tip, ci se
asociaza un nume (sinonimul) tipului de date.
Sintaxa
typedef <definiie tip> <identificator>;
Exemple:
typedef unsigned int natural ;
typedef long double tablou [100] ;
tablou a, b, c;
natural m,n,i;
39
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (1/8)
Sintaxa tablouri unidimensionale
tip nume_variabila [dimensiune];
double tab [100] ;
0 1 2 3 97 98 99
tab [3] = 5.7;
int a[5];
0 1 2 3 4
a [1] = 3;
char b1 [34];
0 1 2 3
b1 [1] = &;
In C, primul element are indicele 0.
0.3 -1.2 10 5.7 ... 0.2 -1.5 1
3 -12 10 7 1
A & * + ... c M #
40
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (2/8)
Cantitatea de memorie necesara pentru inregistrarea unui tablou
este direct proportionala cu tipul si marimea sa.
tip nume [dimensiune] sizeof(nume) = sizeof (tip) * dimensiune ;
41
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (3/8)
Tablouri unidimensionale liste de informatii de acelasi tip,
stocate in locatii de memorie contigue in ordinea indicilor.
42
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (4/8)
Aplicatie Citirea si afisarea elementelor unui tablou unidimensional
43
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (5/8)
Sintaxa tablouri bidimensionale
tip nume_variabila [dimensiune1][dimensiune2];
int a[3][5];
0
1
2
0 1 2 3 4
a [1][4] = 41;
3 -12 10 7 1
10 2 0 -7 41
-3 -2 0 0 2
44
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (6/8)
Cantitatea de memorie necesara pentru inregistrarea unui tablou
este direct proportionala cu tipul si marimea sa.
tip nume [dimensiune1][dimensiune2]
sizeof(nume) = sizeof (tip) * dimensiune1 * dimensiune2 ;
45
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (7/8)
Aplicatie Citirea si afisarea elementelor unui tablou biidimensional
46
Facultatea de Matematica si Informatica
Universitatea Bucuresti
3. Tablouri uni- si multi- dimensionale (8/8)
Tablouri bidimensionale stocarea in locatii de memorie
Linia 0: adrese 2686520 2696556
Linia 1: adrese 2686560 2696596
Linia 2: adrese 2686600 2696636
47
Facultatea de Matematica si Informatica
Universitatea Bucuresti
4. Discutii asupra testelor
48
Facultatea de Matematica si Informatica
Universitatea Bucuresti
Concluzii
1. Aprofundare operatii pe biti
2. Tipuri de date structurate
struct, union, campuri de biti, enum, typedef
3. Tablouri uni si multi- dimensionale
4. Discutii asupra testelor din cursul trecut.
49
Facultatea de Matematica si Informatica
Universitatea Bucuresti
Perspective
Cursul 5:
1. Pointeri
2. Functii
3. Clase de memorare
4. Directive de preprocesare