jeudi 1 octobre 2015

Recherche séquentielle en pascal

Principe de la méthode :

 Pour chercher une valeur « élem » dans un tableau t1 nous allons utiliser la  fonction      
 recherche_sequentiel qui renvoi  TRUE si « élem » existe dans le tableau t1 et FALSE sinon.
 La méthode que nous allons adopter consiste à parcourir le tableau a à partir du premier  
 élément et comparer chaque élément du tableau t1 avec la valeur qu’on cherche « élem ».
 Le parcours s’arrête si on trouve « élem » ou on arrive à la fin du tableau.

 Traduction en pascal du programme principale :
program recherche_sequentielle;
uses wincrt;
type
 tab = ARRAY[1..100] of integer;
var
   tail ,x :integer;
   trouve: boolean;
   t1: tab;

FUNCTION recherche_sequentiel (t: tab; n, elem: integer): Boolean;
var
            i: integer;
            trouve: boolean;
begin
            i:=0;
                        repeat
                         i:=i+1;
                    until ( (t[i] =  elem) OR (i = n ) ) ;

             if t[i]= elem  then
               trouve:= true
             else trouve := false;

               recherche_sequentiel := trouve;

end; {fin fontion recherche_sequentiel}


PROCEDURE saisie(var t: tab; n :integer); { saisir les élements du tableau }
var
i: integer;

begin
  for i:=1 to n do
    begin
      writeln('donner un entier');
      readln(t[i]);
    end;

end;

 PROCEDURE saisie_tail(VAR n:integer);
 begin

repeat
   writeln('donner la taille du tableau');
   readln(n);
 until n in [10..20];

 end;

 BEGIN

 saisie_tail(tail);
 saisie(t1,tail);
 writeln('donner lelement a chercher ');
 readln(x);
trouve := recherche_sequentiel (t1,tail,x);
  if( trouve = true) then writeln('lement existe dans le tableau ')
    else
      writeln('l''element nexiste pas dans le tableau');


END.

Aucun commentaire:

Enregistrer un commentaire