Énoncé
Saisir N avec 1 ≤ N ≤ 100 et remplir un tableau T de N entiers. Saisir un entier Cible. Écrire une fonction Rechercher qui retourne l’indice de sa première occurrence dans T, ou −1 si elle est absente. Afficher le résultat.
Exemples et cas limites
Saisissez ces valeurs dans la console pour vérifier votre résultat :
Saisir N, puis les N entiers t[0] à t[N − 1], un par un. Les données de l’exemple sont un essai : choisissez vos propres valeurs dans le terminal. Saisir ensuite Cible.
Entrée
N = 5 t[0] = 8 t[1] = 3 t[2] = 5 t[3] = 3 t[4] = 1 Cible = 3
Sortie attendue
1
Entrée
N = 3 t[0] = 9 t[1] = 2 t[2] = 9 Cible = 9
Sortie attendue
0
Entrée
N = 2 t[0] = 7 t[1] = -2 Cible = 42
Sortie attendue
-1
Complétez les modules marqués par un commentaire dans le code de départ. Les modules déjà écrits permettent de saisir vos données. Exécutez les cas de test et comparez la sortie attendue, ou ouvrez directement l’onglet Correction.
Code algorithmique
| 1 | algorithme recherche_sequentielle |
| 2 | debut |
| 3 | saisir(n) |
| 4 | remplir(t, n) |
| 5 | saisircible(cible) |
| 6 | indice ← rechercher(t, n, cible) |
| 7 | afficher(indice) |
| 8 | fin |
| 9 | |
| 10 | procedure saisir(@n : entier) |
| 11 | debut |
| 12 | repeter |
| 13 | ecrire("N = ") |
| 14 | lire(n) |
| 15 | jusqua 1 ≤ n ≤ 100 |
| 16 | fin |
| 17 | |
| 18 | procedure remplir(@t : tab, n : entier) |
| 19 | debut |
| 20 | pour i de 0 à n - 1 faire |
| 21 | ecrire("t[" + convch(i) + "] = ") |
| 22 | lire(t[i]) |
| 23 | fin_pour |
| 24 | fin |
| 25 | |
| 26 | procedure saisircible(@cible : entier) |
| 27 | debut |
| 28 | ecrire("Cible = ") |
| 29 | lire(cible) |
| 30 | fin |
| 31 | |
| 32 | fonction rechercher(t : tab, n : entier, cible : entier) : entier |
| 33 | debut |
| 34 | // compléter le traitement demandé dans l’énoncé. |
| 35 | retourner -1 |
| 36 | fin |
| 37 | |
| 38 | procedure afficher(resultat : entier) |
| 39 | debut |
| 40 | ecrire_nl(resultat) |
| 41 | fin |
| 1 | algorithme recherche_sequentielle |
| 2 | debut |
| 3 | saisir(n) |
| 4 | remplir(t, n) |
| 5 | saisircible(cible) |
| 6 | indice ← rechercher(t, n, cible) |
| 7 | afficher(indice) |
| 8 | fin |
| 9 | |
| 10 | procedure saisir(@n : entier) |
| 11 | debut |
| 12 | repeter |
| 13 | ecrire("N = ") |
| 14 | lire(n) |
| 15 | jusqua 1 ≤ n ≤ 100 |
| 16 | fin |
| 17 | |
| 18 | procedure remplir(@t : tab, n : entier) |
| 19 | debut |
| 20 | pour i de 0 à n - 1 faire |
| 21 | ecrire("t[" + convch(i) + "] = ") |
| 22 | lire(t[i]) |
| 23 | fin_pour |
| 24 | fin |
| 25 | |
| 26 | procedure saisircible(@cible : entier) |
| 27 | debut |
| 28 | ecrire("Cible = ") |
| 29 | lire(cible) |
| 30 | fin |
| 31 | |
| 32 | fonction rechercher(t : tab, n : entier, cible : entier) : entier |
| 33 | debut |
| 34 | |
| 35 | indice ← -1 |
| 36 | i ← 0 |
| 37 | tant_que i < n et indice = -1 faire |
| 38 | si t[i] = cible alors |
| 39 | indice ← i |
| 40 | fin si |
| 41 | i ← i + 1 |
| 42 | fin_tant_que |
| 43 | retourner indice |
| 44 | fin |
| 45 | |
| 46 | procedure afficher(resultat : entier) |
| 47 | debut |
| 48 | ecrire_nl(resultat) |
| 49 | fin |
Méthode
- Parcourir le tableau à partir de l’indice 0.
- Arrêter dès qu’une valeur égale à la cible est trouvée.