PARTIE 7

Corrigés des Exercices

 





Exercice 7.1

Variables Nb, i en Entier
Variable Flag en Booleen
Tableau T() en Entier
Debut
Ecrire
“Entrez le nombre de valeurs :“
Lire Nb
Redim T(Nb - 1)
Pour i 0 à Nb - 1
     Ecrire “Entrez le nombre n° “, i + 1
     Lire T(i)
i Suivant
Flag
Vrai
Pour i 1 à Nb - 1
     Si T(i) <> T(i – 1) + 1 Alors
          Flag
Faux
     FinSi
i Suivant
Si Flag Alors
    Ecrire "Les nombres sont consécutifs"
Sinon
    Ecrire
"Les nombres ne sont pas consécutifs"
FinSi
Fin
Cette programmation est sans doute la plus spontanée, mais elle présente le défaut d'examiner la totalité du tableau, même lorsqu'on découvre dès le départ deux éléments non consécutifs. Aussi, dans le cas d'un grand tableau, est-elle dispendieuse en temps de traitement. Une autre manière de procéder serait de sortir de la boucle dès que deux éléments non consécutifs sont détectés. La deuxième partie de l'algorithme deviendrait donc :
i 1
TantQue T(i) = T(i – 1) + 1 et i < Nb - 1
     i
i + 1
FinTantQue
Si
T(i) = T(i – 1) + 1 Alors
    Ecrire "Les nombres sont consécutifs"
Sinon
    Ecrire
"Les nombres ne sont pas consécutifs"
FinSi

énoncé - retour au cours

 






Exercice 7.2

On suppose que N est le nombre d’éléments du tableau. Tri par insertion :

Pour
i 0 à N - 2
     posmaxi = i
    Pour j i + 1 à N - 1
        Si t(j) > t(posmaxi) alors
              posmaxi
j
        Finsi
    
j suivant
     temp
t(posmaxi)
     t(posmaxi)
t(i)
     t(i)
temp
i suivant
Fin

Tri à bulles :

Yapermut Vrai
TantQue Yapermut
     Yapermut
Faux
    Pour i 0 à N - 2
        Si t(i) < t(i + 1) Alors
              temp
t(i)
              t(i)
t(i + 1)
              t(i + 1)
temp
              Yapermut
Vrai
        Finsi
    
i suivant
FinTantQue
Fin

énoncé - retour au cours

 






Exercice 7.3

On suppose que n est le nombre d’éléments du tableau préalablement saisi

Pour
i 0 à (N-1)/2
     Temp
T(i)
     T(i)
T(N-1-i)
     T(N-1-i)
Temp
i suivant
Fin

énoncé - retour au cours

 






Exercice 7.4

Pour un tel traitement, on n'aura pas le choix ; il va falloir passer par un deuxième tableau, temporaire. L'algorithme qui suit suppose que le tableau T, comptant N éléments, a déjà été saisi.

Ecrire
"Rang de la valeur à supprimer ?"
Lire S
Redim Temp(N – 2)
Pour i 0 à N - 1
     Si i < S Alors
          Temp(i)
T(i)
    SinonSi i > S Alors
          Temp(i-1)
T(i)
    Finsi
i suivant
On recopie Temp dans T
Redim T(N – 2)
Pour i 0 à N - 2
     T(i)
Temp(i)
i suivant
Fin

énoncé - retour au cours

 






Exercice 7.5

N est le nombre d'éléments du tableau Dico(), contenant les mots du dictionnaire, tableau préalablement rempli.
Variables Sup, Inf, Comp en Entier
Variables Fini en Booléen
Début
Ecrire "Entrez le mot à vérifier"
Lire Mot
On définit les bornes de la partie du tableau à considérer
Sup N - 1
Inf 0
Fini
Faux
TantQue Non Fini
Comp désigne l'indice de l'élément à comparer. En bonne rigueur, il faudra veiller à ce que Comp soit bien un nombre entier, ce qui pourra s'effectuer de différentes manières selon les langages.
      Comp (Sup + Inf)/2
Si le mot se situe avant le point de comparaison, alors la borne supérieure change, la borne inférieure ne bouge pas.
      Si Mot < Dico(Comp) Alors
           Sup
Comp - 1
            Sinon, c'est l'inverse
           
Sinon
         
Inf
Comp + 1
      FinSi
      Fini
Mot = Dico(Comp) ou Sup < Inf
FinTantQue
Si
Mot = Dico(Comp) Alors
Ecrire "le mot existe"
Sinon
      Ecrire "Il n'existe pas"
Finsi
Fin

énoncé - retour au cours