Parcours Accueil Tour guidé Initiation 1 h Initiation 24 h Révisions Exercices

L’instruction SEARCH ou SEARCH ALL peut alors utiliser IDX pour parcourir ce tableau.

Info : Ce module vous permet d’accéder rapidement aux contenus essentiels de la formation COBOL.
Retour au plan général

🔍 8-4 – Recherches dans les tableaux avec  SEARCH  et  SEARCH ALL 

En  COBOL , lorsqu’un tableau est défini avec  INDEXED BY , vous pouvez effectuer des recherches dans ses éléments grâce aux instructions :

📋 Préparation : tableau indexé

 01 TABLE-CODES.
    05 CODE PIC X(5) OCCURS 10 TIMES INDEXED BY IDX.
  

L’instruction  SEARCH  ou  SEARCH ALL  peut alors utiliser  IDX  pour parcourir ce tableau.

🔎 1.  SEARCH  – Recherche linéaire

Teste chaque élément un par un, jusqu’à trouver une condition vraie.


 SET IDX TO 1.
 SEARCH TABLE-CODES
    AT END DISPLAY "Code introuvable"
    WHEN CODE(IDX) = "A1234"
        DISPLAY "Code trouvé à l’index : " IDX.
  

Cette instruction commence à  IDX = 1 et s’arrête dès que la condition  WHEN  est vraie.

🔁 2.  SEARCH ALL  – Recherche binaire (tableau trié)

Pour utiliser  SEARCH ALL , le tableau doit être trié dans l’ordre croissant selon la clé recherchée.


 MOVE "B5678" TO VALEUR-RECHERCHEE.
 SEARCH ALL TABLE-CODES
    WHEN CODE(IDX) = VALEUR-RECHERCHEE
        DISPLAY "Trouvé à l’index : " IDX.
  

Le compilateur utilise une recherche dichotomique, bien plus rapide qu’une boucle linéaire. Si le tableau n’est pas trié, le résultat est imprévisible.

📌 Résumé des différences
Instruction Tableau trié requis Performance Utilisation
 SEARCH  Non Lente (linéaire) Cas généraux, tous types de tableau
 SEARCH ALL  Oui Rapide (binaire) Tableaux triés, grandes données
💡 Bonnes pratiques
📌 Conclusion

Grâce à  SEARCH  et  SEARCH ALL , vous pouvez :

Dans les prochaines sections, vous apprendrez à manipuler des chaînes de caractères avec  STRING ,  UNSTRING  et  INSPECT .

↑ Haut