Sunteți pe pagina 1din 15

Neacsu Tiberiu Clasa a X-a A

Definitia, declaratia si lungimea unui tablou unidimension... Minimul, maximul si numarul de aparitii intr-un vector Cautarea secventiala toate aparitiile Cautarea secventiala prima aparitie Cautarea secventiala ultima aparitie Cautarea secventiala verificarea aparitiei Permutarea circulara spre stanga si spre dreapta cu o pozitie Permutarea circulara spre stanga si spre dreapta cu k poz... Stergerea si inserarea unei valori dintr-un vector Sortarea vectorilor Interclasarea vectorilor Cautarea binara Vectorul caracteristic

Se numeste vector o variabila capabila sa retina o colectie de valori de acelasi tip. Declaratia unui vector : x:array [1..20] of byte; Se numeste lungimea unui vector o variabila care va retine numarul efectiv de celule pe care programul le prelucreaza la un moment dat (ex: n:byte; pentru variabila x).

ex: n=6 x1=1.75 x2=2.25 x3=1.75 x4=3.75 x5=3.75 x6=1 -------1.000 3.75 2

Secventa

min:=x[1]; nr:=1; For i:=2 to n do if x[i]<min then min:=x[i]; writeln (min:1:3); For i:= 2 to n do if x[i]>max then begin max:=x[i]; nr:=1; end else if x[i]=max then nr:=nr+1; Writeln (max:1:3, ,nr);

Enunt: Sa se afiseze, separate prin spatiu, toate aparitiile valorilor pare.

Secventa: for i:=1 to n do if x[i] mod 2=0 then write (i, );

Enunt: Sa se afiseze prima aparitie a unei valori cu o singura cifra. Atentie! Nu avem siguranta gasirii acesteia.

Secventa: p:=0; For i:=1 to n do if x[i]<=9 then begin p:=i; break; end; If p>0 then writeln (Prima aparitie a unei cifre este pe pozitia ,p) else writeln (Nu exista);

Enunt: Sa se afiseze ultima aparitie a unui numar ce are prima cifra para.

Secventa: u:=0; For i:=n downto 1 do begin aux:=x[i]; while aux>9 do aux:=aux div 10; if aux mod 2=0 then begin u:=i; break; end; end; if u<>0 then writeln (Ultima aparitie a unui numar cu prima cifra para, ,u) else writeln (Nu exista);

Enunt: Sa se precizeze daca in tablou exista numere impare.

Secventa: ok:=false; For i:=1 to n do if x[i] mod 2=1 then begin ok:=true; break; end; if ok=true then writeln (Exista numere impare) else writeln (Nu exista numere impare);

Spre stanga aux:=x[1]; For i:=2 to n do x[i-1]:=x[i]; x[n]:=aux;

Spre dreapta aux:=x[n]; For i:=n-1 downto 1 do x[i+1]:=x[i]; x[1]:=aux;

Spre stanga Varianta 1: - de k ori cu o pozitie k:=k mod n; For i:=1 to k do begin aux:=x[1]; for j:=2 to n do x[j-1]:=x[j]; x[n]:=aux; end; Varianta 2: - cu k pozitii k:=k mod n; For i:=1 to k do x[n+i]:=x[i]; For i:=1 to n do x[i]:=x[k+i];

Spre dreapta Varianta 1: - de k ori cu o pozitie k:=k mod n; For i:=1 to k do begin aux:=x[n]; for j:=n-1 downto 1 do x[j+1]:=x[j]; x[1]:=aux; end;

Varianta 2: - cu k pozitii k:=k mod n; For i:=1 to (n-k) do x[n+1]:=x[i]; For i:=1 to n do x[i]:=x[n-k+i];

Stergerea unei valori dintr-un vector For i:=p to n-1 do a[i]:=a[i+1]; n:=n-1;

Inserarea unei valori dintr-un vector For i:=n downto p do a[i+1]:=a[i]; n:=n+1; a[p]:=v;

Varianta 1 For i:=1 to n-1 do begin r:=I; for j:=i+1 to n do if x[j]<x[r] then r:=j; aux:=x[r]; x[r]:=x[i]; x[i]:=aux; end;

Varianta 2 For i:=1 to n-1 do for j:=i+1 to n do if x[j]<x[i] then begin aux:=x[i]; x[i]:=x[j]; x[j]:=aux; end;

Secventa i:=1; j:=1; While (i<=n) and (j<=m) do if x[i]<y[j] then begin write (x[i], ); i:=i+1;end else begin write (y[j], ); j:=j+1;end; For k:=i to n do write (x[k], ); For k:=j to m do write (y[k], );

Secventa gasit:=false; i:=p; j:=q; While i<=j do begin m:=(i+j) div 2; If v=x[m] then begin gasit:=true; break; end else if v<x[m] then j:=m-1 else i:=m+1; end;

Consideram ca vectorul x1, x2, , xn contine doar cifre (n<=10000) Se foloseste vectorul auxiliar v0, v1, v2, , v9 deoarece {0,1,2, ,9} este intervalul ordinal in care sunt incadrate valorile din vector v[i] = - 0, daca valoarea i nu apare in vectorul x - de cate ori apare valoarea I in vectorul x

Secventa I. Initializare vector caracteristic For i:=0 to 9 do v[i]:=0; II. Actualizare vector caracteristic For i:=1 to n do v[x[i]]:=v[x[i]]+1; III. Utilizarea vectorului caracteristic For i:=0 to 9 do if v[i]>0 then write (I, );