Un logiciel polyvalent d'apprentissage de la programmation
Chapitre 1. Introduction
Chapitre 2. Le logiciel en bref
Chapitre 3. Premiers pas en algorithmique
Chapitre 4. Instructions conditionnelles
Chapitre 5. Boucles
Chapitre 6. Sous-programmes
Chapitre 7. Tableaux à une dimension
7.1. Présentation
7.2. Taille maximale
7.3. Techniques usuelles
7.3.1. Minimum et maximum
7.3.2. Tri
7.3.3. Recherche d'une valeur
7.4. Travaux dirigés
Chapitre 8. Tableaux à deux dimensions
Chapitre 9. Enregistrements
Annexe : comment tester vos programmes ?
Page d'accueil Table des matières Niveau supérieur Page précédente Bas de la page Page suivante Démarrage du logiciel Webographie du module Glossaire du module

7.3.3. Recherche d'une valeur

Pour illustrer cette technique, nous allons rechercher un article (demandé par l'utilisateur) dans une base d'articles (stockée dans un tableau) :

DÉBUT
    \\ on fixe dans le programme la base d'articles
    n = 3
    nom = ["baguette", "journal", "magazine"]
    prixUnitaire = [0.8, 0.95, 2.5]
    \\ recherche d'un article et de son prix unitaire
    ÉCRIRE "article recherché : "
    LIRE nom_cherche
    ...
FIN

Pour cela, nous allons utiliser une boucle afin de trouver la position de l'article cherché dans le tableau.

Version avec Pour Version avec Tantque
...
position = -1  
POUR i=1 JUSQU'À n FAIRE
  SI (nom[i] = nom_cherche) ALORS
    position = i
  FINSI
FINPOUR
\\ affichage du resultat
SI (position = -1) ALORS
  ÉCRIRE prixUnitaire[position]
SINON
  ÉCRIRE "article non repertorie"
FINSI
...
position = -1 
i = 1
TANTQUE (position=-1) ET (i<=n) FAIRE
  SI (nom[i] = nom_cherche) ALORS
    position = i
  SINON
    i = i + 1
  FINSI
FINTANTQUE
\\ affichage du resultat
...

Le point délicat de l'algorithme concerne le cas où l'article n'est pas répertorié. Cela conduit à initialiser, avant la boucle, la variable position à une valeur (-1) ne pouvant être un numéro d'article répertorié (donc pas un entier entre 1 et n).

Page d'accueil Table des matières Niveau supérieur Page précédente Haut de la page Page suivante Démarrage du logiciel Webographie du module Glossaire du module