Exercices corrigés td algorithme et boucles Algorithmique I

Exercices corrigés td algorithme et boucles Algorithmique I

Télécharger PDF

Exercices d'algorithmique pour la classe de Seconde

Énoncés des Exercices

Exercice 5.1

Écrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3 jusqu’à ce que la réponse convienne.

Exercice 5.2

Écrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à 10.

Exercice 5.3

Écrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.

Exercice 5.4

Réécrire l'algorithme précédent, en utilisant cette fois l'instruction Pour.

Exercice 5.5

Écrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) : Table de 7 : 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 … 7 x 10 = 70

Exercice 5.6

Écrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à ce nombre. On souhaite afficher uniquement le résultat, pas la décomposition du calcul. Par exemple, si l’on entre 5, le programme doit calculer : 1 + 2 + 3 + 4 + 5 = 15.

Exercice 5.7

Écrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle. La factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8.

Exercice 5.8

Écrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres :

Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14
etc.
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14

Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait été saisie ce nombre : C’était le nombre numéro 2.

Exercice 5.9

Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas d’avance combien l’utilisateur souhaite saisir de nombres. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.

Exercice 5.10

Lire la suite des prix (en euros entiers et terminée par zéro) des achats d’un client. Calculer la somme qu’il doit, lire la somme qu’il paye, et simuler la remise de la monnaie en affichant les textes "10 Euros", "5 Euros" et "1 Euro" autant de fois qu’il y a de coupures de chaque sorte à rendre.

Exercice 5.11

Écrire un algorithme qui permette de connaître ses chances de gagner au tiercé, quarté, quinté et autres impôts volontaires. On demande à l’utilisateur le nombre de chevaux partants, et le nombre de chevaux joués. Les deux messages affichés devront être :

Dans l’ordre : une chance sur X de gagner
Dans le désordre : une chance sur Y de gagner

X et Y nous sont donnés par la formule suivante, si n est le nombre de chevaux partants et p le nombre de chevaux joués (on rappelle que le signe ! signifie "factorielle", comme dans l'exercice 5.7 ci-dessus) :

X = n ! / (n - p) !
Y = n ! / (p ! * (n – p) !)

Cet algorithme peut être écrit d’une manière simple, mais relativement peu performante. Ses performances peuvent être singulièrement augmentées par une petite astuce. Vous commencerez par écrire la manière la plus simple, puis vous identifierez le problème, et écrirez une deuxième version permettant de le résoudre.

Corrigés des Exercices

Corrigé de l'Exercice 5.1

Variable N en Entier
Début
N ← 0
Écrire "Entrez un nombre entre 1 et 3"
TantQue N < 1 ou N > 3
Lire N
Si N < 1 ou N > 3 Alors
Écrire "Saisie erronée. Recommencez”
Fin Si
Fin TantQue
Fin

Corrigé de l'Exercice 5.2

Variable N en Entier
Début
N ← 0
Écrire "Entrez un nombre entre 10 et 20"
TantQue N < 10 ou N > 20
Lire N
Si N < 10 Alors
Écrire "Plus grand !"
SinonSi N > 20 Alors
Écrire "Plus petit !"
Fin Si
Fin TantQue
Fin

Corrigé de l'Exercice 5.3

On peut imaginer deux variantes, strictement équivalentes :

Variables N, i en Entier
Début
Écrire "Entrez un nombre : "
Lire N
Stop ← N + 10
Écrire "Les 10 nombres suivants sont : "
TantQue N < Stop
N ← N + 1
Écrire N
Fin TantQue
Fin

Ou bien :

Variables N, i en Entier
Début
Écrire "Entrez un nombre : "
Lire N
i ← 0
Écrire "Les 10 nombres suivants sont : "
TantQue i < 10
i ← i + 1
Écrire N + i
Fin TantQue
Fin

Corrigé de l'Exercice 5.4

Là encore, deux variantes, correspondant trait pour trait à celles du corrigé précédent :

Variables N, i en Entier
Début
Écrire "Entrez un nombre : "
Lire N
Écrire "Les 10 nombres suivants sont : "
Pour i ← N + 1 à N + 10
Écrire i
i Suivant
Fin

Ou bien :

Variables N, i en Entier
Début
Écrire "Entrez un nombre : "
Lire N
Écrire "Les 10 nombres suivants sont : "
Pour i ← 1 à 10
Écrire N + i
i Suivant
Fin

Corrigé de l'Exercice 5.5

Variables N, i en Entier
Début
Écrire "Entrez un nombre : "
Lire N
Écrire "La table de multiplication de ce nombre est : "
Pour i ← 1 à 10
Écrire N, " x ", i, " = ", N * i
i Suivant
Fin

Corrigé de l'Exercice 5.6

Variables N, i, Somme en Entier
Début
Écrire "Entrez un nombre : "
Lire N
Somme ← 0
Pour i ← 1 à N
Somme ← Somme + i
i Suivant
Écrire "La somme est : ", Somme
Fin

Corrigé de l'Exercice 5.7

Variables N, i, F en Entier
Début
Écrire "Entrez un nombre : "
Lire N
F ← 1
Pour i ← 2 à N
F ← F * i
i Suivant
Écrire "La factorielle est : ", F
Fin

Corrigé de l'Exercice 5.8

Variables N, i, PG en Entier
Début
PG ← 0
Pour i ← 1 à 20
Écrire "Entrez un nombre : "
Lire N
Si i = 1 ou N > PG Alors
PG ← N
Fin Si
i Suivant
Écrire "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
Début
PG ← 0
Pour i ← 1 à 20
Écrire "Entrez un nombre : "
Lire N
Si i = 1 ou N > PG Alors
PG ← N
IPG ← i
Fin Si
i Suivant
Écrire "Le nombre le plus grand était : ", PG
Écrire "Il a été saisi en position numéro ", IPG
Fin

Corrigé de l'Exercice 5.9

Variables N, i, PG, IPG en Entier
Début
N ← 1
i ← 0
PG ← 0
TantQue N <> 0
Écrire "Entrez un nombre : "
Lire N
i ← i + 1
Si i = 1 ou N > PG Alors
PG ← N
IPG ← i
Fin Si
Fin TantQue
Écrire "Le nombre le plus grand était : ", PG
Écrire "Il a été saisi en position numéro ", IPG
Fin

Corrigé de l'Exercice 5.10

Variables E, somdue, M, Reste, Nb10E, Nb5E en Entier
Début
E ← 1
somdue ← 0
TantQue E <> 0
Écrire "Entrez le montant : "
Lire E
somdue ← somdue + E
Fin TantQue
Écrire "Vous devez :", somdue, " euros"
Écrire "Montant versé :"
Lire M
Reste ← M - somdue
Nb10E ← 0
TantQue Reste >= 10
Nb10E ← Nb10E + 1
Reste ← Reste – 10
Fin TantQue
Nb5E ← 0
Si Reste >= 5 Alors
Nb5E ← 1
Reste ← Reste – 5
Fin Si
Écrire "Rendu de la monnaie :"
Écrire "Billets de 10 E : ", Nb10E
Écrire "Billets de 5 E : ", Nb5E
Écrire "Pièces de 1 E : ", Reste
Fin

Corrigé de l'Exercice 5.11

Spontanément, on est tenté d'écrire l'algorithme suivant :

Variables N, P, i, Numé, Déno1, Déno2 en Entier
Début
Écrire "Entrez le nombre de chevaux partants : "
Lire N
Écrire "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
Écrire "Dans l’ordre, une chance sur ", Numé / Déno1
Écrire "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. 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 nombres 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, A, B en Numérique
Début
Écrire "Entrez le nombre de chevaux partants : "
Lire N
Écrire "Entrez le nombre de chevaux joués : "
Lire P
A ← 1
B ← 1
Pour i ← 1 à P
A ← A * (i + N - P)
B ← B * i
i Suivant
Écrire "Dans l’ordre, une chance sur ", A
Écrire "Dans le désordre, une chance sur ", A / B
Fin

Foire Aux Questions (FAQ) sur l'Algorithmique

Qu'est-ce qu'un algorithme ?

Un algorithme est une suite finie et non ambiguë d'instructions ou d'opérations permettant de résoudre un problème ou d'obtenir un résultat spécifique. En informatique, c'est la base de tout programme, décrivant les étapes logiques qu'une machine doit suivre pour exécuter une tâche.

Pourquoi apprendre l'algorithmique en Seconde ?

L'apprentissage de l'algorithmique en classe de Seconde est crucial pour développer la pensée logique, la rigueur et la capacité à décomposer des problèmes complexes en étapes gérables. Cela permet de comprendre le fonctionnement des programmes informatiques et de construire une base solide pour les études supérieures en sciences du numérique ou toute autre discipline nécessitant une approche structurée.

Quels sont les principaux types de boucles en algorithmique ?

En algorithmique, les boucles sont des structures de contrôle qui permettent de répéter un bloc d'instructions plusieurs fois. Les principaux types sont :
- La boucle "Tant que" (TantQue...Fin TantQue) : elle exécute les instructions tant qu'une condition spécifiée reste vraie. La condition est évaluée avant chaque itération.
- La boucle "Répéter jusqu'à" (ou "Faire...Tant que") : elle exécute les instructions au moins une fois, puis continue de répéter tant qu'une condition n'est pas remplie (ou est vraie, selon la convention). La condition est évaluée après chaque itération.
- La boucle "Pour" (Pour...Fin Pour ou Pour...Suivant) : elle est utilisée pour répéter des instructions un nombre de fois prédéfini, souvent en parcourant une séquence de valeurs ou un intervalle numérique.

Partagez vos remarques, questions ou propositions d'amélioration ici...

Enregistrer un commentaire (0)
Plus récente Plus ancienne

Publicité 1

Publicité 2