PARTIE 5

Corrigés des Exercices

 





Exercice 5.1

Variable N en Entier
Debut
N 0
Ecrire “Entrez un nombre entre 1 et 3”
TantQue N < 1 ou N > 3
    Lire N
    Si N < 1 ou N > 3 Alors
        Ecrire “Saisie erronée. Recommencez”
    FinSi
FinTantQue
Fin

énoncé - retour au cours

 






Exercice 5.2

Variable N en Entier
Debut
N 0
Ecrire “Entrez un nombre entre 10 et 20”
TantQue N < 10 ou N > 20
    Lire N
    Si N < 10 Alors
        Ecrire “Plus grand !”
     SinonSi N > 20 Alors
          Ecrire “Plus petit !”
    FinSi
FinTantQue
Fin

énoncé - retour au cours

 






Exercice 5.3

Variables N, i en Entier
Debut
Ecrire
“Entrez un nombre : ”
Lire N
Ecrire “Les 10 nombres suivants sont : ”
Pour i N + 1 à N + 10
    Ecrire i
i Suivant
Fin

énoncé - retour au cours

 






Exercice 5.4

Variables N, i en Entier
Debut
Ecrire
“Entrez un nombre : ”
Lire N
Ecrire “La table de multiplication de ce nombre est : ”
Pour i 1 à 10
    Ecrire N,“ x ”,i, “ = ”, n*i
i Suivant
Fin

énoncé - retour au cours

 






Exercice 5.5

Variables N, i, Som en Entier
Debut
Ecrire
“Entrez un nombre : ”
Lire N
Som
0
Pour i 1 à N
     Som
Som + i
i Suivant
Ecrire “La somme est : ”, Som
Fin

énoncé - retour au cours

 






Exercice 5.6

Variables N, i, F en Entier
Debut
Ecrire
“Entrez un nombre : ”
Lire N
F
1
Pour i 2 à N
     F
F * i
i Suivant
Ecrire “La factorielle est : ”, F
Fin

énoncé - retour au cours

 






Exercice 5.7

Variables N, i, PG en Entier
Debut
PG 0
Pour i 1 à 20
    Ecrire “Entrez un nombre : ”
    Lire N
    Si i = 1 ou N > PG Alors
          PG
N
    FinSi
i Suivant
Ecrire “Le nombre le plus grand était : ”, PG
Fin
En ligne 3, on peut mettre n’importe quoi dans PG, il suffit que cette variable soit affectée pour que le premier passage en ligne 7 ne provoque pas d'erreur.

Pour la version améliorée, cela donne :
Variables N, i, PG, IPG en Entier
Debut
PG 0
Pour i 1 à 20
    Ecrire “Entrez un nombre : ”
    Lire N
    Si i = 1 ou N > PG Alors
          PG
N
          IPG
i
    FinSi
i Suivant
Ecrire “Le nombre le plus grand était : ”, PG
Ecrire “Il a été saisi en position numéro ”, IPG
Fin

énoncé - retour au cours

 






Exercice 5.8

Variables N, i, PG, IPG en Entier
Debut
N 1
i
0
PG
0
TantQue N <> 0
    Ecrire “Entrez un nombre : ”
    Lire N
     i
i + 1
    Si i = 1 ou N > PG Alors
          PG
N
          IPG
i
    FinSi
FinTantQue
Ecrire
“Le nombre le plus grand était : ”, PG
Ecrire “Il a été saisi en position numéro ”, IPG
Fin

énoncé - retour au cours

 






Exercice 5.9

Variables FF, somdue, M, IPG, Reste, Nb10F, Nb5F En Entier
Debut
FF 1
somdue
0
TantQue FF <> 0
    Ecrire “Entrez le montant : ”
    Lire FF
     somdue
somdue + FF
FinTantQue
Ecrire
“Vous devez :”, FF, “ francs”
Ecrire ”Montant versé :”
Lire M
Reste
FF – M
Nb10F
0
TantQue Reste >= 10
     Nb10F
Nb10F + 1
     Reste
Reste – 10
FinTantQue
Nb5F 0
Si Reste >= 5
     Nb5F
1
     Reste
Reste – 5
FinSi
Ecrire
“Rendu de la monnaie :”
Ecrire “Pièces de 10 F : ”, Nb10F
Ecrire “Pièces de  5 F : ”, Nb5F
Ecrire “Pièces de  1 F : ”, reste
Fin

énoncé - retour au cours

 


 



Exercice 5.10


Spontanément, on est tenté d'écrire l'algorithme suivant :
Variables N, P, i, Numé, Déno1, Déno2 en Entier
Debut
Ecrire
“Entrez le nombre de chevaux partants : ”
Lire N
Ecrire “Entrez le nombre de chevaux joués : ”
Lire P
Numé
1
Pour i 2 à N
    Numé Numé * i
i Suivant
Déno1
1
Pour i 2 à N-P
    Déno1 Déno1 * i
i Suivant
Déno2
1
Pour i 2 à P
    Déno2 Déno2 * i
i Suivant
Ecrire “Dans l’ordre, une chance sur ”, Numé / Déno1
Ecrire “Dans le désordre, une sur ”, Numé / (Déno1 * Déno2)
Fin

Cette version, formellement juste, comporte tout de même deux faiblesses.
La première, et la plus grave, concerne la manière dont elle calcule le résultat final. Celui-ci est le quotient d'un nombre par un autre ; or, ces nombres auront rapidement tendance à être très grands. En calculant, comme on le fait ici, d'abord le numérateur, puis ensuite le dénominateur, on prend le risque de demander à la machine de stocker des nombres trop grands pour qu'elle soit capable de les coder (cf. le préambule). C'est d'autant plus bête que rien ne nous oblige à procéder ainsi : on n'est pas obligé de passer par la division de deux très grands nombre pour obtenir le résultat voulu.
La deuxième remarque est qu'on a programmé ici trois boucles successives. Or, en y regardant bien, on peut voir qu'après simplification de la formule, ces trois boucles comportent le même nombre de tours ! (si vous ne me croyez pas, écrivez un exemple de calcul et biffez les nombres identiques au numérateur et au dénominateur). Ce triple calcul (ces trois boucles) peut donc être ramené(es) à un(e) seul(e). Et voilà le travail, qui est non seulement bien plus court, mais aussi plus performant :

Variables N, P, i, O, F en Entier
Debut
Ecrire
“Entrez le nombre de chevaux partants : ”
Lire N
Ecrire “Entrez le nombre de chevaux joués : ”
Lire P
O
1
F
1
Pour i N – P + 1 à N
    O O * i
    
F F * (i – P)
i Suivant
Ecrire “Dans l’ordre, une chance sur ”, O
Ecrire “Dans le désordre, une chance sur ”, O / F
Fin

énoncé - retour au cours