SlideShare une entreprise Scribd logo
Réalisé par: Jihen DAMERJI
Algorithmes de recherche d’un
élément dans un tableau
Mise en situation
Activité
On désire écrire un programme
RECHERCHE qui permet de vérifier
l’existence d’un entier P dans un
tableau T d’éléments positifs de N
entiers avec N dans l’intervalle [5..20]
Recherche séquentielle
1
• Consulter les éléments de la liste
2
• les comparer un à un avec l’élément recherché, du debut jusqu’à
trouver l’élément ou arriver à la fin de la liste
3
• Ceci est réalisé à l’aide d’une structure itérative
Analyse du programme principale
Résultat=
si x=vrai alors
ecrire(p,' existe dans le tableau')
sinon
ecrire(p,' n''existe pas dans le tableau');
Finsi
Xfn existe(n,p,t)
Proc saisie(n,p,t);
Fin recherche
Algorithme de la fonction existe
0) Def fn existe (n,p: entier ; t :tab) : booleen
1) verif  faux
i0
répéter
ii+1
si t[i]=p alors
verif vrai
Finsi
Jusqu’à (verif=vrai) ou (i=n)
2)existeverif
3) Fin exixte
program sequentielle ;
uses wincrt ;
type
tab = array [1..20] of integer ;
var
t : tab ;
n,p : integer ;
x : boolean ;
procedure saisie ( var n,p : integer ;var t :tab);
var
i : integer ;
begin
repeat
writeln('Saisir la taille du tableau :'); readln(n);
until n in [5..20];
for i:= 1 to n do
Begin
repeat
writeln('Saisir l''élement ',i); readln(t[i]);
until t[i] > 0 ;
end;
writeln('saisir un entier :'); readln(p);
end;
function existe (n,p: integer ; t :tab) : boolean ;
Var
i : integer ; verif : boolean ;
begin
verif := false ;
i:=0 ;
repeat
i:=i+1;
if t[i]=p then
verif:=true ;
until (verif=true ) or (i=n) ;
existe:=verif ;
end;
begin
saisie(n,e,t);
x:=existe(n,e,t);
if ( x=true ) then
writeln(e,' existe dans le tableau')
else
writeln(e,' n''existe pas dans le tableau');
end.
Mise en situation
Activité
On désire écrire un programme
RECHERCHE qui permet de vérifier
l’existence d’un entier P dans un
tableau T trié de N entiers.
Recherche dichotomique
1
• Comparer P avec l’élément du milieu du tableau.
2
• Si P< milieu alors chercher P dans la partie gauche. (tri
croissant)
• Si P> milieu alors chercher P dans la partie droite.
3
• Refaire le même travail jusqu’à trouver P ou bien
arriver à la fin du tableau.
Remarque :
Cette technique ne peut être utilisée qu’avec
une série de données déjà triée.
Analyse du programme principal
Résultat=
si x=vrai alors
ecrire(p,' existe dans le tableau')
sinon
ecrire(p,' n''existe pas dans le tableau');
Finsi
Xfn existe(n,p,t)
Proc saisie(n,p,t);
Fin recherche
Algorithme de la fonction existe
0)def fn existe (n,e :entier ; t :tab) : boolean ;
1) x:=faux
bi:=1
bs:=n
repeter
mil(bi+bs) div 2
Si t[mil] = e alors x vrai
Sinon si t[mil] < e alors
bi mil+1
Sinon bs mil-1
finsi
finsi
jusqu’à (x= vrai) ou (bi >= bs)
2)existe x
3) Fin existe
program dichotomique ;
uses wincrt ;
type tab = array [1..20] of integer ;
var t : tab ; n,e,m : integer ; x : boolean ;
procedure saisie ( var n,e : integer ;var t :tab);
var i : integer ;
Begin
repeat
writeln('Saisir la taille du tableau :'); readln(n);
until n in [5..20];
for i:= 1 to n do
begin
Repeat
writeln('Saisir l''élement ',i); readln(t[i]);
until t[i] > 0 ;
end;
writeln('saisir un entier :'); readln(e);
end;
function existe (n,e : integer ; t :tab) : boolean ;
var i,bi,bs : integer ;
x : boolean ;
Begin
x:=false ; bi:=1 ; bs:=n ;
repeat
mil:=(bi+bs) div 2
if t[mil] = e then
x:=true
else if t[mil] < e then
bi:=n+1
else
bs:=n-1 ;
until (x=true) or (bi >= bs) ;
Existe:=x;
end;
Begin
saisie(n,e,t);
x:=existe(n,e,t);
if x=true
Then
writeln(e,' existe dans le tableau')
Else
writeln(e,' n''existe pas dans le tableau');
end.
Les algorithmes de recherche2017i

Contenu connexe

Plus de jihen damerji

Plus de jihen damerji (20)

Our countries between history and the future: the dream has no limit
Our countries between history and the future: the dream has no limitOur countries between history and the future: the dream has no limit
Our countries between history and the future: the dream has no limit
 
Etwinning : création de projet
Etwinning : création de projetEtwinning : création de projet
Etwinning : création de projet
 
Python
PythonPython
Python
 
Compétences Clés du 21ème siècle
Compétences Clés du 21ème siècleCompétences Clés du 21ème siècle
Compétences Clés du 21ème siècle
 
europ hours of code: lbn presentation
europ hours of code: lbn presentationeurop hours of code: lbn presentation
europ hours of code: lbn presentation
 
Création d’un site web2017
Création d’un site web2017Création d’un site web2017
Création d’un site web2017
 
Introduction a la vidéo numérique
Introduction a la vidéo numériqueIntroduction a la vidéo numérique
Introduction a la vidéo numérique
 
Tableuravancé2017
Tableuravancé2017Tableuravancé2017
Tableuravancé2017
 
un système d’exploitation
un système d’exploitationun système d’exploitation
un système d’exploitation
 
Flash: les variables
Flash: les variablesFlash: les variables
Flash: les variables
 
scratch
scratchscratch
scratch
 
Blogger
BloggerBlogger
Blogger
 
Reseau et multimedia2009
Reseau et multimedia2009Reseau et multimedia2009
Reseau et multimedia2009
 
Montessori finale
Montessori finaleMontessori finale
Montessori finale
 
Son numérique
Son numériqueSon numérique
Son numérique
 
Information et communication
Information et communication Information et communication
Information et communication
 
الأسد والفأر
الأسد والفأرالأسد والفأر
الأسد والفأر
 
Tableaux
TableauxTableaux
Tableaux
 
Cloud jihen
Cloud jihenCloud jihen
Cloud jihen
 
الحيوانات الاليفة
الحيوانات الاليفةالحيوانات الاليفة
الحيوانات الاليفة
 

Dernier

support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...
ABDELHADI ENNAIR
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
zidani2
 

Dernier (11)

support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptx
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdf
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
 
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
 

Les algorithmes de recherche2017i

  • 1. Réalisé par: Jihen DAMERJI Algorithmes de recherche d’un élément dans un tableau
  • 3.
  • 4. Activité On désire écrire un programme RECHERCHE qui permet de vérifier l’existence d’un entier P dans un tableau T d’éléments positifs de N entiers avec N dans l’intervalle [5..20]
  • 5.
  • 7. 1 • Consulter les éléments de la liste 2 • les comparer un à un avec l’élément recherché, du debut jusqu’à trouver l’élément ou arriver à la fin de la liste 3 • Ceci est réalisé à l’aide d’une structure itérative
  • 8.
  • 9.
  • 10. Analyse du programme principale Résultat= si x=vrai alors ecrire(p,' existe dans le tableau') sinon ecrire(p,' n''existe pas dans le tableau'); Finsi Xfn existe(n,p,t) Proc saisie(n,p,t); Fin recherche
  • 11. Algorithme de la fonction existe 0) Def fn existe (n,p: entier ; t :tab) : booleen 1) verif  faux i0 répéter ii+1 si t[i]=p alors verif vrai Finsi Jusqu’à (verif=vrai) ou (i=n) 2)existeverif 3) Fin exixte
  • 12.
  • 13.
  • 14. program sequentielle ; uses wincrt ; type tab = array [1..20] of integer ; var t : tab ; n,p : integer ; x : boolean ;
  • 15. procedure saisie ( var n,p : integer ;var t :tab); var i : integer ; begin repeat writeln('Saisir la taille du tableau :'); readln(n); until n in [5..20]; for i:= 1 to n do Begin repeat writeln('Saisir l''élement ',i); readln(t[i]); until t[i] > 0 ; end; writeln('saisir un entier :'); readln(p); end;
  • 16. function existe (n,p: integer ; t :tab) : boolean ; Var i : integer ; verif : boolean ; begin verif := false ; i:=0 ; repeat i:=i+1; if t[i]=p then verif:=true ; until (verif=true ) or (i=n) ; existe:=verif ; end;
  • 17. begin saisie(n,e,t); x:=existe(n,e,t); if ( x=true ) then writeln(e,' existe dans le tableau') else writeln(e,' n''existe pas dans le tableau'); end.
  • 19.
  • 20. Activité On désire écrire un programme RECHERCHE qui permet de vérifier l’existence d’un entier P dans un tableau T trié de N entiers.
  • 21.
  • 23. 1 • Comparer P avec l’élément du milieu du tableau. 2 • Si P< milieu alors chercher P dans la partie gauche. (tri croissant) • Si P> milieu alors chercher P dans la partie droite. 3 • Refaire le même travail jusqu’à trouver P ou bien arriver à la fin du tableau.
  • 24. Remarque : Cette technique ne peut être utilisée qu’avec une série de données déjà triée.
  • 25.
  • 26.
  • 27. Analyse du programme principal Résultat= si x=vrai alors ecrire(p,' existe dans le tableau') sinon ecrire(p,' n''existe pas dans le tableau'); Finsi Xfn existe(n,p,t) Proc saisie(n,p,t); Fin recherche
  • 28. Algorithme de la fonction existe 0)def fn existe (n,e :entier ; t :tab) : boolean ; 1) x:=faux bi:=1 bs:=n repeter mil(bi+bs) div 2 Si t[mil] = e alors x vrai Sinon si t[mil] < e alors bi mil+1 Sinon bs mil-1 finsi finsi jusqu’à (x= vrai) ou (bi >= bs) 2)existe x 3) Fin existe
  • 29.
  • 30.
  • 31. program dichotomique ; uses wincrt ; type tab = array [1..20] of integer ; var t : tab ; n,e,m : integer ; x : boolean ; procedure saisie ( var n,e : integer ;var t :tab); var i : integer ; Begin repeat writeln('Saisir la taille du tableau :'); readln(n); until n in [5..20]; for i:= 1 to n do begin Repeat writeln('Saisir l''élement ',i); readln(t[i]); until t[i] > 0 ; end; writeln('saisir un entier :'); readln(e); end;
  • 32. function existe (n,e : integer ; t :tab) : boolean ; var i,bi,bs : integer ; x : boolean ; Begin x:=false ; bi:=1 ; bs:=n ; repeat mil:=(bi+bs) div 2 if t[mil] = e then x:=true else if t[mil] < e then bi:=n+1 else bs:=n-1 ; until (x=true) or (bi >= bs) ; Existe:=x; end;
  • 33. Begin saisie(n,e,t); x:=existe(n,e,t); if x=true Then writeln(e,' existe dans le tableau') Else writeln(e,' n''existe pas dans le tableau'); end.

Notes de l'éditeur

  1. 10mn
  2. Activité : On désire écrire un programme d’une fonction booléenne RECHERCHE qui permet de vérifier l’existence d’un entier P dans un tableau T de N entiers. Pour chercher l’élément P dans le tableau La recherche séquentielle  La recherche dichotomique
  3. On désire écrire un programme d’une fonction booléenne RECHERCHE qui permet de vérifier l’existence d’un entier P dans un tableau T de N entiers.
  4. 10mn
  5. On désire écrire un programme d’une fonction booléenne RECHERCHE qui permet de vérifier l’existence d’un entier P dans un tableau T de N entiers.