You are on page 1of 9

Tipuri de date structurate

Chetrosan Victoria, gr.D-021


TIPURI DE DATE STRUCTURATE
 DEF:
 Tipurile de date structurate, spre deosebire de cele simple, sunt combinatii de alte tipuri definite prin
descrierea tipurilor componentelor si prin indicarea unor metode de structurare.
 A. TIPUL TABLOU (ARRAY)
 A1.Tablouri unidimensionale (vectori)
 DEF:
 n sir de elemente de acelasi tip se numeste vector sau tablou unidimensional.
 SINTAXA:
 1. Type vector=array[1..20] of integer
 reprezinta un sir de elemente numere intregi numerotate de la 1 la 20.
 2. Prin VAR x:vector;
 x[3] –componenta de ordin 3
 x[i] -componenta de ordin i
OPERATII cu vectori
 a). citirea
 - prima data se face citirea nr de componente, iar apoi citirea componenta cu componenta:
 write(‘dati nr de componente:’);readln(n);
 for i := 1 to n do begin
 write(‘x[‘, i ,’]=’);
 readln(x[ i ] );
 end;
 b)scrierea
 - se poate face scriind:
 - fiecare element pe un rand
 for i := 1 to n do writeln(x[i]);
 - toate elementele pe acelsi rand despartite prin virgule sau spatii:
 for i := 1 to n do write(x[i],’ ’);
 writeln;
OPERATII cu vectori
 exemplu:
 - citirea unui vector si afisarea acestuia in ordine inversa.
 Program scriere_vector ;
 Var x:array[1..25] of real;
 i,n:integer;
 Begin
 Write(‘n=’);readln(n);
 For i:=1 to n do begin
 Write(‘x[‘,i,’]=’);
 Readln (x[i]);
 end;
 For i :=n downto 1do
 write(x[i]:3:2,’ ‘);
 End.
c) inversarea unui vector in alt vector:

- vom inversa vectorul x si y , y de acelasi tip cu x, avand in y1 pe Xm, in y2 pe Xm-1 in Ym pe x1.


OBS:
Intotdeauna suma celor doi indici de pozitie (din x si y ) este acceasi si este egala cu m+1, deci pentru centralizare in
componenta y, vom pune valorea lui x[m+1-i].

d) inversarea unui vector in el insusi:


- se face pana la mijlocul sau indiferent daca m este impar sau par:
for i:=1 to (n div 2) do begin
aux:=x[i];
x[i]:=x[m+1-i];
x[m+1-i]:=aux;
end;
unde ‘’aux ‘’ este variabila de acelasi tip cu x[i].

e) determinarea minimului unui vector:


min:=x[1];
for i:=2 to n do
if x[i]<min then min:=x[i];
unde ‘’min’’ este de acelasi tipcu x[i];
f) determinarea simultana a minimului si maximului dintr-un vector:

min:=x[1];

max:= x[1];

for i:=2 to n do begin

if x[i]<min then min:=x[i];

if x[i]>max then max:=x[i];

end;

g) insumarea componentelor unui vector:

- se calculeaza ca orice suma;

- se pleaca de la suma nula;

- apoi la fiecare pas i suma creste cu elementul curent(x[i]):

s:=0;

for i:=1 to n do s:=s+x[i];


exemplu:

Sa se calculeze suma patratelor componentelor unui vector:

program suma;

var x:array[1..25] of integer;

s:longint;

n,i:integer;

begin

write(‘n=’);readln(n);

for i:=1 to n do begin

write(‘x[‘,i,’]=’);readln(x[i]);

end;

s:=0;

for i:=1 to n do

s:=s+x[i]*x[i];

writeln(‘suma=’,s);

end
h) afisarea elementelor pare dintr-un vector de numere intregi:

for i:=1 to n do

if not(odd(x[i])) then writeln(x[i]);

i) afisarea elementelor impare de pe pozitii pare:

for i:=1 to n do

if (not odd i) and odd(x[i]) then writeln(x[i]);

j) numararea elementelor negative si a celor pozitive dintr-un vector;

- de fiecare data cand gasim un element negativ incrementeaza nn (nn:=nn+1);altfel se incrementeaza np (np:=np+1);

nn:=0;

np:=0;

for i:=1 to n do if x[i] <0 then nn:=nn+1

else np:=np+1;

else i:=i+1:
l) inserarea unui element intr-un vector:

- inseram pe pozitia p intr-un vector un element m;

- pentru aceasta deplasam elementul de pe pozitia p pe n, unde n reprezinta nr de elemente ale vectorului, cu o pozitie mai incolo,
deplasarea se va face de la ultima pozitie inspre pozitia p. In final punem elementul pe pozitia m, nr de elemente ale vectorului va
creste cu o unitate (n devine n+1);

for i:=n+1 downto p+1 do x[i]:=x[i-1];

x[p]:=m;

n:=n+1;
q1) METODE DE SORTARE ale vectorului:

- se citesc n nr intregi si se cere ca acestea sa fie scrise in ordine descrescatoare. De exemplu pt n=4 se citesc nr 3,1,6,2. Ordonate vor fi
1,2,3,6.

Operatia prin care se aranjeaza cele n nr in ordine crescatoare se numeste sortare

Sortare prin calculul minimului:

Se calculeaza minimul dintre valorile retinute incepand cu prima pozitie. Minimul este trecut in
prima pozitie prin interschimbarea continuturilor dintre componente si componenta care-l
memoreaza. Se calculeaza minimul dintre valorile retinute incepand cu a doua pozitie. …

min=1 min=2

You might also like