Joi, 25.04.2024, 02:16 Bine aţi venit Vizitator |
Bine ai venit |
Acasă | Tablou Unidemnsional | Înregistrare | Autentificare | RSS |
|
Pentru a defini structura de date tablou considerăm o mulţime M de valori oarecare. Aplicaţia f: {1, 2, ..., n} → M ataşează fiecărui indice i ∈ {1, 2, ..., n} un element mi ∈ M. Ea defineşte un tablou unidimensional Tn, numit vector sau şir, având elementele m 1 = f(1), m 2 = f(2), ..., mn= f( n). În memoria internă, elementele acestui tablou vor ocupa în ordine locaţii succesive de memorie. Presupunând că primul element al tabloului este memorat la adresa a 1 şi că un element ocupă l locaţii, adresa relativă ai (faţă de începutul tabloului) a locaţiei ocupate de elementul i va fi: ai = a 1 + l⋅ ( i – 1), i ∈ {1, 2, ..., n}. este o expresie de tip ordinal care conţine informaţii cu privire la poziţia elementului în cadrul structurii. Elementele tabloului trebuie să fie de acelaşi tip, adică tabloul are o structură omo-genă. Un tablou unidimensional este o structură de date care cuprinde un număr de elemente mai mic sau egal cu un număr precizat prin tipul indicelui. În diferitele medii de programare, definirea unui tip tablou înseamnă precizarea mulţimii din care acesta poate lua valori ( tipul de bază), precum şi operaţiile care se pot efectua asupra unei variabile de tip tablou, la nivel global. 6.1. Atribuirea Prin această operaţie, o variabilă de tip tablou primeşte valoarea unei alte variabile de acelaşi tip tablou. Posibilitatea efectuării atribuirilor la nivelul unui întreg tablou reprezintă o facilitate importantă oferită de anumite limbaje de programare (de exemplu, Pascal). Această atribuire se poate realiza numai dacă tipul celor două tablouri este identic. 1226. Tablouri unidimensionale (şiruri)
6.2. Selectarea unei componente O componentă a tabloului se precizează prin specificarea variabilei de tip tablou, urmată între paranteze drepte de o expresie indiceală. De exemplu: a[i+1].
6.3. Declararea unui tablou în Pascal Forma generală a unei declaraţii de tablou unidimensional este următoarea:
type nume_tip=array[ tip_indice] of tip_de_bază; var nume_tablou: nume_tip;
În forma generală de mai sus, nume_tip este un identificator ales de utilizator, tip_de_bază şi tip_indice sunt tipuri predefinite sau tipuri utilizator. tip_indice este, în mod obligatoriu, un tip ordinal şi, în cazul în care este de tip subdomeniu, poate fi precizat cu ajutorul unor expresii, caz în care în ea pot interveni doar constante şi constante simbolice. tip_de_bază poate fi orice tip elementar sau structurat, cunoscut în momentul declaraţiei.
Exemplu const n=10; type Litere='a'..'z'; indice=1..10*n; tablou=array[indice] of Integer; sir=array[1..n] of Litere; var a:tablou; b:sir;
Există posibilitatea de a declara un tablou descriind structura în secţiunea var, introducând astfel un tip anonim: var a:array[1..10] of Integer;
Menţionăm că două tipuri anonime se consideră diferite, chiar dacă, de fapt, de-scriu aceeaşi structură de date: var a:array[1..10] of Integer; b:array[1..10] of Integer; În acest caz a şi b vor avea tipuri diferite, în concluzie, instrucţiunea de atribuire a:=b; nu este permisă. În schimb, datorită faptului că cele două tablouri au acelaşi tip de bază, instrucţiunea a[1]:=b[3] este corectă.
|
|
Copyright MyCorp © 2024 |