Exercices résolus
Question # 1.
Un secrétaire doit traiter une pile importante de dossiers. Pour déterminer l’ordre dans
lequel les dossiers seront traités, il attribue à chaque dossier une valeur réelle entre 0 et
10 désignant son importance. Plus cette valeur est élevée, plus le dossier est prioritaire.
Construire un algorithme permettant au secrétaire d’identifier le dossier le plus
prioritaire.
Étape 1. Conserver le premier dossier du dessus de la pile en retrait.
Étape 2. Tant et aussi longtemps que la pile de dossiers à parcourir n’est pas vide
Étape 2.1 Si le dossier en retrait est plus prioritaire que celui du
dessus de la pile
alors ranger le dossier du dessus de la pile dans votre
classeur
sinon ranger le dossier en retrait dans votre classeur,
conserver le dossier du dessus de la pile en retrait.
Étape 3. Vous pouvez maintenant vous mettre à la tâche et traiter le dossier en
retrait.
Question # 2.
Décrire un algorithme qui vous permet de résoudre le problème suivant :
« Deux amis A et B possèdent chacun un paquet de cartes de joueurs de hockey
l’on retrouve sur chaque carte une valeur entière désignant le caractère
rarissime de cette carte. Plus cette valeur est élevée, plus la carte de hockey est
rare. B fait le fanfaron et affirme avec conviction qu’il détient la carte la plus rare.
A ne s’en laisse pas imposer et désire vérifier cette affirmation. »
Étape 1. { A recherche sa carte la plus rare. }
1.1 A prend dans sa main gauche la première carte de son paquet.
1.2 Tant et aussi longtemps que toutes les cartes de A n’ont pas été
considérées alors
1.2.1 A prend dans sa main droite une carte de son paquet.
1.2.2 Si la carte de la main gauche de A est plus petite que celle de la
main droite alors échanger les 2 cartes.
1.2.3 Mettre en retrait la carte de la main droite de A en constituant un
nouveau paquet.
Étape 2. { B recherche sa carte la plus rare. }
2.1 B prend dans sa main gauche la première carte de son paquet.
2.2 Tant et aussi longtemps que toutes les cartes de B n’ont pas été
considérées alors
2.2.1 B prend dans sa main droite une carte de son paquet.
2.2.2 Si la carte de la main gauche de B est plus petite que celle de la
main droite alors échanger les 2 cartes.
2.2.3 Mettre en retrait la carte de la main droite de B en constituant un
nouveau paquet.
Étape 3. { A et B comparent leur carte la plus rare. }
Si la carte de la main gauche de B est plus rare que celle de A
alors écrire « B a raison. »
sinon écrire « A a tort. »
Question # 3.
Sachant que les pièces de monnaie mises en circulation au Canada
1
sont les suivantes :
2$, 1$, 50¢, 25¢, 10¢, 5¢, 1¢, construire un algorithme (vorace) permettant de rendre la
monnaie exacte à un client tout en lui remettant le nombre minimum de pièces.
La stratégie consiste à choisir à chaque étape la pièce de valeur maximale laquelle est
inférieure ou égale au montant qui reste à rendre au client.
Étape 1. Lire le montant M d’argent à remettre au client.
Étape 2. Tant et aussi longtemps que M est plus grand ou égal à 2$
2.1 Remettre 2$ au client.
2.2 Retrancher 2$ de M.
Étape 3. Si M est plus grand ou égal à 1$
3.1 Remettre 1$ au client.
3.2 Retrancher 1$ de M.
Étape 4. Si M est plus grand ou égal à 0.50$
4.1 Remettre 0.50$ au client.
4.2 Retrancher 0.50$ de M.
Étape 5. Si M est plus grand ou égal à 0.25$
1
Voir http://lois.justice.gc.ca/fr/R-9/261980.html .
5.1 Remettre 0.25$ au client.
5.2 Retrancher 0.25$ de M.
Étape 6. Tant et aussi longtemps que M est plus grand ou égal à 0.10$
6.1 Remettre 0.10$ au client.
6.2 Retrancher 0.10$ de M.
Étape 7. Si M est plus grand ou égal à 0.05$
7.1 Remettre 0.05$ au client.
7.2 Retrancher 0.05$ de M.
Étape 8. Tant et aussi longtemps que M est plus grand ou égal à 0.01$
6.1 Remettre 0.01$ au client.
6.2 Retrancher 0.01$ de M.
Question # 4.
Vous avez en votre possession deux piles (la pile A et la pile B) de bulletins d’étudiants
classées en ordre croissant de matricule. Construire un algorithme permettant de
fusionner ces deux piles c’est-à-dire, de construire une nouvelle pile D ordonnée en ordre
croissant de matricule qui renfermera les bulletins des 2 piles de départ.
1. Tant et aussi longtemps que la pile A n’est pas vide et la pile B n’est pas vide,
1.1 Prendre dans la main gauche le bulletin du dessus de la pile A.
1.2 Prendre dans la main droite le bulletin du dessus de la pile B.
1.3 Placer le bulletin que vous avez dans les mains ayant le plus petit
matricule sur une pile C.
1.4 Placer l’autre bulletin sur sa pile originale (A ou B).
2. Tant et aussi longtemps que la pile A n’est pas vide,
2.1 Prendre dans la main gauche le bulletin du dessus de la pile A.
2.2 Placer ce bulletin sur une pile C.
3. Tant et aussi longtemps que la pile B n’est pas vide,
3.1 Prendre dans la main gauche le bulletin du dessus de la pile B.
3.2 Placer ce bulletin sur une pile C.
4. Tant et aussi longtemps que la pile C n’est pas vide,
4.1 Prendre dans la main gauche le bulletin du dessus de la pile C.
4.2 Placer ce bulletin sur une pile D.
Question # 5.
Décrire un algorithme pour résoudre le problème de ce professeur :
«Un professeur enseigne à un groupe de n élèves; il a corrigé le premier examen.
Les notes (entre 0 et 100) des élèves sont maintenant disponibles. Le professeur
voudrait afficher la note minimale et la moyenne des résultats obtenus.»
1. Lire la valeur de n correspondant à la taille du groupe.
2. Initialiser à 101 la variable MIN désignant la note minimale.
3. Initialiser à 0 la variable SOMME désignant la somme des notes.
4. Répétez n fois
4.1 Lire une note A d’un élève.
4.2 Ajouter la note A à la variable SOMME.
4.3 Si A < MIN alors affecter la valeur de A à MIN.
5. Affichez la note minimale MIN.
6. Affichez la moyenne des résultats SOMME / n.
Question # 6.
[Tiré de Clicmaths Mathématiques au primaire Sylvio Guay, Jean-Claude Hamel, Steeve
Lemay, 3ième cycle du primaire. Éditions Grand Duc, 2003.]
Un étudiant voit apparaître sur sa calculatrice une série du même chiffre par exemple
999999. La dernière opération effectuée était la multiplication par 7. L’étudiant ne se
souvient plus du nombre qui a été multiplié par 7. Pouvez-vous l’aider ?
L’algorithme prend en entrée un chiffre entre 0 et 9 et affiche le résultat : 142857.
Autre exemple : la calculatrice affiche 111111; le résultat affiché est alors 15873.
1. Lire un chiffre c entre 0 et 9.
2. Initialiser une variable TERME à la valeur c.
3. Initialiser une variable RESULTAT à la valeur 0.
4. Effectuer la division suivante : TERME / 7 et conservez la partie entière du
résultat dans la variable Q.
5. Calculer l’expression suivante : RESULTAT * 10 + Q et conservez cette
valeur dans la variable RESULTAT.
6. Si 7 n’est pas un facteur de TERME alors
6.1 Calculer l’expression suivante : TERME * 10 + c et conservez cette
valeur dans TERME.
6.2 Retournez à l’étape 4.
7. Affichez la valeur RESULTAT.
Question # 7.
(i) Construire un algorithme qui prend en entrée les données suivantes :
- la longueur n d’une suite de nombres entiers naturels,
- un nombre entier naturel m,
- les n nombres entiers naturels,
et détermine si le nombre m fait partie de la suite et correspond à la médiane de
cette suite c’est-à-dire, l’écart entre le nombre d’entiers de la suite inférieurs à m
et le nombre d’entiers supérieurs à m est d’au plus 1.
1. Lire la valeur de n correspondant à la longueur de la suite.
2. Lire la valeur de m correspondant à l’éventuelle médiane.
3. Initialiser une variable Inferieur à 0.
4. Initialiser une variable Superieur à 0.
5. Initialiser une variable Trouve à non.
6. Répétez n fois
Lire un entier naturel a de la suite.
Si a est égale à m alors initialisez Trouve à oui.
Si a est plus petit que m alors ajouter 1 à Inferieur.
Si a est plus grand que m alors ajouter 1 à Superieur.
7. Si Trouve est égale à oui et l’expression Superieur Inferieur est
égale à 0, 1 ou -1
alors écrire "Il s’agit de la médiane. "
sinon écrire "Il ne s’agit pas de la médiane. "
(ii) Calculez le nombre d’opérations élémentaires nécessaires pour exécuter cet
algorithme.
5 + 5 n + 6 opérations élémentaires.
Question # 8.
(i) Construire un algorithme qui prend en entrée un entier naturel n, calcule
l’expression suivante :
n2
(i2 2 i + 5)
i = 1
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!