guida

Guida Pascal - 34. Ricerca di un elemento in un array

34. Ricerca di un elemento in un array

In alcune situazioni è necessario ricercare un certo valore in un array. Tale ricerca consiste in pratica nell'esaminare tutti gli elementi di un array in sequenza, uno di seguito all'altro partendo dall'elemento con l'indice minore fino ad arrivare all'elemento con l'indice maggiore.
Se nella ricerca vengono esaminati tutti gli elementi dell'array, si effettua una ricerca completa, altrimenti una ricerca parziale.
Questo metodo è utile nel caso di array di dimensioni non eccessive, infatti più è alto il numero degli elementi dell'array, più l'algoritmo perde efficienza.
La ricerca del valore, si arresta se viene trovato fra uno degli elementi dell'array o quando la variabile contatore del ciclo for, che analizza tutti gli indici dell'array, raggiunge l'indice maggiore.
Eccovi qui di seguito l'algoritmo all'opera:

program RicercaValoreArray;
uses crt;
var ricerca,z:integer;
trovato:boolean = false;
a:array[1..25] of integer;
begin
  clrscr;
  writeln('Ricerca di un elemento in un array');
  for z := 1 to 25 do
    begin
      writeln('Inserisci il componente ', z, ' dell''array');
      write('componente numero ',z,' = ');
      readln(a[z]);
    end;
  writeln;
  writeln('Inserisci il valore da ricercare nell''array');
  write('ricerca = ');
  readln(ricerca);
  for z :=1 to 25 do
    begin
      if ricerca = a[z] then
        begin
          trovato := true;
          writeln;
          write('Il valore ', ricerca,' e'' stato trovato nel componente con 
		  indice ',z);
        end;
  end;
  if trovato = false then
    begin
      writeln;
      write('Il valore ', ricerca,' non e'' stato trovato nell''array');
    end;
    readln;
 end.