Recherche

Recherche séquentielle

É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

recherche_sequentielle.algo
1algorithme recherche_sequentielle
2debut
3 saisir(n)
4 remplir(t, n)
5 saisircible(cible)
6 indice ← rechercher(t, n, cible)
7 afficher(indice)
8fin
9
10procedure saisir(@n : entier)
11debut
12 repeter
13 ecrire("N = ")
14 lire(n)
15 jusqua 1 ≤ n ≤ 100
16fin
17
18procedure remplir(@t : tab, n : entier)
19debut
20 pour i de 0 à n - 1 faire
21 ecrire("t[" + convch(i) + "] = ")
22 lire(t[i])
23 fin_pour
24fin
25
26procedure saisircible(@cible : entier)
27debut
28 ecrire("Cible = ")
29 lire(cible)
30fin
31
32fonction rechercher(t : tab, n : entier, cible : entier) : entier
33debut
34 // compléter le traitement demandé dans l’énoncé.
35 retourner -1
36fin
37
38procedure afficher(resultat : entier)
39debut
40 ecrire_nl(resultat)
41fin

Méthode

  1. Parcourir le tableau à partir de l’indice 0.
  2. Arrêter dès qu’une valeur égale à la cible est trouvée.
À retenir :

Le tableau n’a pas besoin d’être trié. Les indices commencent à 0 dans ces exercices.