|
Posizione: l'ultima... posizione di un elemento function Posizione(V: Vettore; N: Integer; K: Elemento): Integer;
var
i, Risp: Integer;
begin
Risp:=0;
for i:=1 to N do
if(V[i] = K) then
Risp:=i;
Posizione:=Risp;
end;
EsempioV={1, 30, 40, 2, 4, 5, 2} e K=2 --> Posizione=7...
Ricerca sequenziale: posizione di un elemento (la prima...) Function Posizione(V: Vettore; N: Integer; K: Elemento): Integer;
Var
i, Risp: Integer;
Begin
i:=1;
Risp:=0;
While(i <= N) And (Risp = 0) do
begin
if(V[i] = K) then
Risp:=i;
i:=i+1;
end;
Posizione:=Risp;
End;
La ricerca sequenziale effettua una scansione del vettore finché non trova l'elemento, se presente, o il vettore finisce. EsempioV={1, 30, 40, 2, 4, 5, 2} e K=2 -> Posizione=4
Si può semplificare il blocco while () do Function Posizione(V: Vettore; N: Integer; K: Elemento): Integer;
Var
i: Integer;
Begin
i:=1;
While(i <= N) And (V[i] <> K) do
i:=i+1;
If(i > N) then
Posizione:=0
Else
Posizione:=i;
End;
Se il vettore è ordinato e l'elemento non compare la ricerca sequenziale può essere interrotta se l'elemento esaminato è maggiore di quello cercato Function Posizione(V: Vettore; N: Integer; K: Elemento): Integer;
Var
i: Integer;
Begin
i:=1;
While(i <= N) And (V[i] < K) do
i:=i+1;
If(i > N) Or (V[i] > K) then
Posizione:=0
Else
Posizione:=i;
End;
EsempioV={1, 2, 2, 4, 5, 40, 50} e K=20 --> Posizione=0 e i=6...
|
|