Sunteți pe pagina 1din 3

typedef <Tip componente> <Nume tip tablou> [<Numár componente>] În C++, un tip de date tablou

unidimensional se defineşte printr-o construcție de forma

<Tip> <Nume_tablou> [<Nr_componente>]; unde<Tip componente> este tipul componentelor


tabloului, care poate fi aproape orice tip de date, iar <Număr componente> indică numărul de
componente ale tabloului. Indicii componentelor tabloului pot lua doar valori consecutive întregi,
începând cu zero: 0, 1, 2, ..., <Număr componente> -1.

Exemple: 1) itypedef int Vector [5]; Vector V;

2) typedef char Simbol [10]; Simbol S;

3) typedef float Acceleratie [45]; Acceleratie A;

Fiecare componentă a unei variabile de tip tablou unidimensional poate fi specificată explicit, prin
numele variabilei urmat de indicele respectiv încadrat de paranteze pătrate. Indicii trebuie să fie expresii
întregi.

Exemple:

1) V[1], V[4];

2) S[0],S[5], S[9] ;

3) A[0],A[44] ,A[23]

;Asupra componentelor datelor de tip tablou unidimensional se pot efectua toate operatiile admise de
tipul acestora. Programul ce urmează afişează pe ecran suma componentelor variabilei v de tip tablou
unidimensional. Valorile componentelor V[0], V[1],..., V[4] se citesc de la tastatură.Pentru a extinde aria
de aplicare a unui program, se recomandă ca numărul de componente ale datelor de tip tablou să fie
specificate prin constante. Acest fapt oferă o flexibilitate mai mare programelor C++, ele putând fi
aplicate pentru prelucrarea tablourilor, numărul de componente al cărora este necunoscut la momentul
scrierii programului. De exemplu, programul P78 poate fi modificat pentru a însuma n numere în tregi,
n≤ 100. Numărul concret de valori n ce vor fi stocate în tabloul unidimen sional V se citeşte de la
tastatură.În informatică, tablourile unidimensionale sunt utilizate foarte des pentru a sorta datele într-o
anumită ordine, de exemplu, în cea crescătoare. Pentru o astfel de sortare se foloseşte următoarea
metodă: 1) fiecare componentă a tabloului, începând cu prima, este comparată consecuti cu fiecare
dintre componentele ce urmează după ea; 2) dacă în urma comparării componentelor se constată că cea
curentă este mai mare decât cea cu care este comparată, ele sunt schimbate cu locul; 3) procesul de
parcurgere a tabloului continuă până când vor fi comparat ultima şi penultima dintre componente. In
limbajul cotidian al informaticienilor, o astfel de sortare se numeşte sorta re prin metoda bulelor,
întrucât componentele tabloului îşi schimbă pozițiile ca bulele dintr-un lichid: cele mai uşoare se ridică la
suprafață, iar cele mai grele se duc la fund.

Pentru exemplificare, în programul ce urmează, metoda bulelor este folosită pentru sortarea în
ordine crescătoare a componentelor tabloului A. Componen tele acestui tablou sunt citite de la
tastatură, iar sortarea propriu-zisă se face în tabloul B.Un tip de date tablou bidimensional se defineşte
cu ajutorul construcției gra maticale

typedef <Tip componente> <Nume tip tablou>[<Număr linii>[<Numár coloane>];Componentele unei


variabile de tip tablou bidimensional se specifică explicit prin numele variabilei urmat de indicii
respectivi încadrați de paranteze pătrate.notația M[1,1] specifică componenta din linia 1, coloana 1 (fig.
1.2"); notația M[1,2] specifică componenta din linia 1, coloana 2; notația Mi.j] specifică componenta din
linia 1, coloana ).

Programul ce urmează afişează pe ecran suma componentelor variabilei M de tip Matrice. Valorile
componentelor M[0, 0], M[0, 11, M[2, 3] se citese de la tastatură.În momentul declarării, elementele
tabloului pot fi inițializate, de exemplu:

int T[4]=(2,5,9,-4);

int M[3][2]=((9,7), (-12,8), (0,-4));

Accentuăm faptul că în limbajul C++ indicii componentelor tabloului pot lua doar valori consecutive
întregi, începând cu zero: 0, 1, 2, ..., <Număr componente>-1 Uneori, acest lucru poate crea anumite
incomodități. Astfel, în cazul exemplului referitor la consumul zilnic de energie electrică pe durata unei
luni (vezi paragraful precedent), tabelul respectiv poate fi reprezentat pe calculator cu ajutorul
următorului tip de date tablou unidimensional: typedef float Consum [31]; Consum C;

Indicele tabloului C poate lua doar valorile 0, 1, 2, ... 30, iar componentele tabloului se specifică prin
C[0], C[1], ..., [30]. Evident, ultimei zile a lunii.a 31-a, nu-i va corespunde nicio componentă a tabloului,
iar tentativa de a utiliza specificarea C[31] ar putea declanșa, în anumite situații, o eroare de execuție.
Indiscutabil, am putea să numerotăm zilele lunii începând nu cu „1", ci cu „0“, însă acest lucru poate face
programele C++ mai puțin intuitive. Pentru a evita astfel de situații, se recomandă majorarea numărului
de componente ale unui tablou cu o unitate față de cel cerut de datele structurate ce trebuie
reprezentate pe calculator. De exemplu, în cazul consumului zilnic de energie electrică pe durata unei
luni, putem utiliza următorul tip de date:

typedef float Consum [32];

Consum C;

în care primei zile a lunii îi va corespunde componenta C[1], zilei a doua-com ponenta C[2], zilei a treia -
componenta C[3] ş.a.m.d., iar componenta C[0] va rămâne neutilizată.

Intr-un mod similar, pentru reprezentarea pe calculator a consumului zilnic de energie electrică pe
parcursul unui an, poate fi folosit următorul tip de date:

typedef float Consum [13] [32]; Consum C în care zilelor lunii Ianuarie le vor corespunde componentele
C[1, 11..., C[1, 31]; zilelor lunii Februarie - componentele C[2, 11, ..., C[2, 311, zilelor lunii Decembrie
componentele C[12, 1),... C[12, 311. Evident, unele componente ale tabloului C, în special cele din rândul
şi coloa na 0, vor rămâne neutilizate. Însă întrucât lizibilitatea şi corectitudinea progra melor sunt cu
mult mai importante decât neutilizarea anumitor componente, majoritatea informaticienilor consideră
că acest fapt nu înrăutăţeşte calitatea programelor C++.

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