Cuprins
- CUPRINS
- 1. Avantajele lucrului cu date organizate sub forma de variabile indexate
- 2. Tipul array
- 3. O clasificare dupa dimensiuni
- 4. Declararea variabilelor de tip tablou
- 5. Accesul la componentele unui tablou
- 6. Moduri de declarare a unui tablou – avantaje si dezavantaje
- 7. Citirea unui tablou
- 8. Afisarea unui tablou
- 9. Aplicatii cu vectori
- 10. Aplicatii ale matricelor
- 11.Aplicatia
- 12.Bibliografia
Extras din proiect
TABLOURI ÎN PASCAL
“Se stie ca o idee începe prin a fi un paradox, continua prin a fi o banalitate si sfârseste prin a fi o prejudecata”
Gr. C. Moisil
1. Avantajele lucrului cu date organizate sub forma de variabile indexate sunt vizibile daca se considera un exemplu:
Fie a, b, c salariile a trei persoane. Sa se precizeze câte dintrre acestea sunt cel putin egale cu o valoare data x.
O solutie a acestei probleme este:
Read( x);
K:=0;
Read (a,b,c)
If a ³x then k:=k+1;
If b³x then k:=k+1;
If c³x then k:=k+1;
Write (k)
Se observa existenta a trei structuri if care difera numai prin membrul stâng al comparatiilor ce le determina (a³x, ³x, c³x). Pornind de la aceasta remarca, se face o renotare si anume, sa numim r(1) pe a, r(2) pe b si r(3) pe c. Avantajul este ca toate trei au acelasi nume (r) si un numar de ordine (indice). În felul acesta cele trei structuri au forma generala:
If r[i] ³x then k:=k+1;
obtinându-se, respectiv, pentru i=1, 2, 3. Asadar, solutia este :
read (x);
k :=0;
read (r[i],i=1,…,3);
i:=1;
while i£3
if r[i]³x then k:=k+1;
i:=i+1
endwhile;
write (k).
Remarcam ca daca în loc de i£ 3 luam i£ n, cu un n dat, obtinem solutia pentru n valori, nu numai pentru 3, evident, cu citirea lui n (read(n)) înainte de constructia structurii repetitive.
2. Tipul array
Evidentierea variabilelor indeexate (de tip tablou) se face în limbajul Pascal prin tipul array, a carui declarare se face ca în diagrama urmatoare:
Tipul ordinal reprezinta tipul indicelui iar tipul de baza este tipul elementelor care formeaza tabloul. Tipul de baza poate fi orice tip al limbajului Pascal, predefinit sau definit de utilizator (cu declaratia TYPE), cu exceptia tipului fisier.
Componentele tabloului sunt toate de acelasi tip, ceea ce înseamna ca un tablou este o structura de date omogena.
Exemple :
Array[1..25] of real ; - tablou cu 25 de componente reale ;
Array[-3..10] of integer; - tablou cu 14 componente întregi;
Array[‘a’..’f’] of real; - tablou cu 6 numere întregi.
3. O clasificare dupa dimensiuni
Tabloul poate fi indexat prin unul sau mai multi indici. Dupa numarul acestora, tablourile pot fi clasificate în :
Tablouri unidimensionale, numite deseori vectori - au un singur indice ;
Tablouri bidimensionale, numite si matrice – au doi indici iar elementele sunt aranjate pe linii si coloane;
Tablouri multidimensionale sau n-dimensionale, unde n³3.
În memoria calculatorului componentele unei variabile de tip tablou se retin una dupa alta, într-o zona continua de memorie.
Exemplu:
array[10..20] of real; - vector cu 11 numere reale;
array[1..5, 1..3] of real; - matrice cu 15 elemente reale, pe 5 linii si 3 coloane.
4. Declararea variabilelor de tip tablou
Variabilele de tip tablou se pot declara cu
VAR lista_de_variabile : ARRAY [tip_indice1, …] OF tip_baza ;
În acest caz tipul este anonim.
Definirea unui tip tablou cu nume
TYPE nume_tip_tablou = ARRAY [tip_indice1, …] OF tip_baza ;
VAR lista_de_variabile : nume_tip_tablou;
! Observatie: doua variabile sunt de acelasi tip tablou daca apar în aceeasi lista de variabile de tip tablou sau daca sunt declarate ca fiind de un tip definit anterior de utilizator în TYPE.
Exemplu:
Type vector1=array [1..10] of integer;
vector2= array [1..10] of integer;
Var x: vector1;
u: vector2;
a: array [1..10] of integer;
b: array [1..10] of integer;
y: vector1;
Desi toate cele cinci variabile (a, b, u, x, y) sunt tablouri de câte 10 numere întregi, avem doar x de acelasi tip cu y.
Preview document
Conținut arhivă zip
- Tablouri - Turbo Pascal
- Tablouri - Turbo Pascal.doc
- TABLOURI.PAS