Vous êtes sur la page 1sur 5

Master Sciences du langage 1/15

TD 2 – exos corrigés
Structures conditionnelles
1) Bonjour Monsieur/Madame...................................................................................................................1
2) Tarif entrée au parc................................................................................................................................2
3) Mots par ordre alphabétique ?...............................................................................................................3
4) Mention en fonction de la moyenne de l’élève......................................................................................4
5) Quel tarif pour telle personne ?..............................................................................................................5
6) Accès à l’attraction selon l’âge et la taille.............................................................................................5
7) Mise en route / arrêt du chauffage.........................................................................................................8
8) Mini calculatrice..................................................................................................................................10
9) Quelle heure sera-t-il dans une minute ?..............................................................................................11
10) Droit au logement social....................................................................................................................12

Je vous donne des solutions. Ce ne sont pas toutes les solutions. Vous avez peut-être résolu un exercice
de manière différente.

1) Bonjour Monsieur/Madame
Écrire un algo qui affiche "Bonjour Monsieur" ou "Bonjour Madame" selon le sexe de
l'utilisateur.
Correction
On doit demander à l'utilisateur si c'est un homme ou une femme.
Variable genre: chaîne
Début
Écrire "Vous êtes un homme ou une femme ? (h/f)"
Lire genre
Si genre == "h" Alors
Écrire "Bonjour Monsieur"
Sinon
Écrire "Bonjour Madame"
Fin Si
Fin
Remarque : si on saisit "H", affichera "Bonjour Madame"

Autre solution où on demande de saisir 1 ou 2


Variable genre: entier
Début
Écrire "Vous êtes un homme (1) ou une femme (2) ?"
Lire genre
Si genre == 1 Alors
Écrire "Bonjour Monsieur"
Sinon
Écrire "Bonjour Madame"
Fin Si
Fin
Remarque : affichera "Bonjour Madame" dans tous les cas où on ne saisit pas 1.
Master Sciences du langage 2/15

Autre solution qui permet de traiter le cas où l'utilisateur ne donne aucune réponse attendue.
Variable genre: chaîne
Début
Écrire "Vous êtes un homme ou une femme ? (h/f)"
Lire genre
Si genre == "h" Alors
Écrire "Bonjour Monsieur"
Sinon Si genre=="f" Alors
Écrire "Bonjour Madame"
Sinon
Écrire "Je n'ai pas compris votre réponse."
Fin Si
Fin

2) Tarif entrée au parc


L'entrée dans un parc coûte 9€. Mais c'est tarif réduit (5€/personne) pour les groupes à
partir de 8 personnes. Écrire un algo indiquant un prix total à payer en fonction du
nombre de personnes qui se présentent ensemble au guichet.
Correction
On doit demander le nombre de personnes à l'utilisateur. On a donc besoin au minimum de 1 variable de type
entier pour enregistrer ce nb.

Une solution où on calcule et affiche le total directement dans les blocs d'instructions du SI.
Variables nbPers,total : entier
Début
Écrire "Combien de personnes ?"
Lire nbPers
Si nbPers<8 Alors
total ← 9 * nbPers
Écrire "Le total est de " , total , "euros"
Sinon
total ← 5 * nbPers
Écrire "Le total est de " , total , "euros"
Fin Si
Fin
Remarque : les 2 blocs d'instructions du SI sont quasi identiques, donc dans un cas comme dans l'autre les
mêmes instructions sont exécutées, la seule différence est le prix par personne 5 et 9. On peut donc mettre les
instructions hors su SI et laissé dans le SI seulement le choix de 5 ou 9.

Même solution mais sans utiliser de variable total. On affiche directement le résultat
Variables nbPers: entier
Début
Écrire "Combien de personnes ?"
Lire nbPers
Si nbPers<8 Alors
Écrire "Le total est de " , 9 * nbPers , "euros"
Sinon
Écrire "Le total est de " , 5 * nbPers , "euros"
Fin Si
Fin
Master Sciences du langage 3/15

Une solution où on détermine le prix par personne dans le SI, et on calcule le total après le SI.
Variables nbPers, prix, total: entier
Début
Écrire "Combien de personnes ?"
Lire nbPers
Si nbPers<8 Alors
prix ← 9
Sinon
prix ← 5
Fin Si
total ← prix * nb_pers
Écrire "Le total est de" , total , "euros"
Fin

Même solution mais sans utiliser de variable total.


Variable nbPers, prix : entier
Début
Écrire "Combien de personnes ?"
Lire nbPers
Si nbPers<8 Alors
prix ← 9
Sinon
prix ← 5
Fin Si
Écrire "Le total est de" , prix * nb_pers , "euros"
Fin

3) Mots par ordre alphabétique ?


Écrire un algo qui demande 3 mots et indique s’il ont été donnés dans l’ordre
alphabétique ou pas.
Les caractères sont codés numériquement, selon l’ordre lexicographique (du dictionnaire). Ainsi le code de "a"
est un nombre plus petit que celui de "b", qui est plus petit que celui de "c", etc. Il est donc possible d’écrire
"a"<"b". Cela signifie que "a" est avant "b" dans l’ordre lexicographique.
(Le code de chaque caractère dépend du type d’encodage utilisé : ASCII, UTF-8, ISO-8859, etc.)
Solution avec Si imbriqués
Variable mot1, mot2, mot3 : chaînes
Début
Écrire "Donnez le 1er mot :"
Lire mot1
Écrire "Donnez le 2e mot :"
Lire mot2
Écrire "Donnez le 3e mot :"
Lire mot3
Si mot1 < mot2 Alors
Si mot2 < mot3 Alors
Écrire "Les 3 mots sont dans l’ordre alphabétique"
Sinon
Écrire "Les 3 mots ne sont pas dans l’ordre alphabét."
Fin Si
Sinon
Écrire "Les 3 mots ne sont pas dans l’ordre alphabétique"
Fin Si
Fin
Master Sciences du langage 4/15

Solution avec ET Je ne remets que la partie SI. Le reste de l’algo est comme précédemment.
Si mot1 < mot2 ET mot2 < mot3 Alors
Écrire "Les 3 mots sont dans l’ordre alphabétique"
Sinon
Écrire "Les 3 mots ne sont pas dans l’ordre alphabétique"
Fin Si

Solution avec OU
Si mot1 > mot2 OU mot2 > mot3 Alors
Écrire "Les 3 mots ne sont pas dans l’ordre alphabétique"
Sinon
Écrire "Les 3 mots sont dans l’ordre alphabétique"
Fin Si

4) Mention en fonction de la moyenne de l’élève


Écrire un algo qui demande la moyenne d’un élève et affiche la mention correspondante
(échec <10, 10≤passable<12, 12≤assez bien<14, 14≤bien<16, 16≤très bien<18,
18≤félicitations)
Avec des Sinon Si, en suivant l’ordre croissant des notes (fonctionne aussi avec l’ordre décroissant)
Variable moy:entier
Début
Écrire "Donnez la moyenne de l’élève :"
Lire moy
Si moy < 10 Alors
Écrire "échec"
Sinon Si moy < 12 Alors
Écrire "Passable"
Sinon Si moy < 14 Alors
Écrire "Assez Bien"
Sinon Si moy < 16 Alors
Écrire "Bien"
Sinon Si moy < 18 Alors
Écrire "Très Bien"
Sinon
Écrire "Félicitations !"
Fin Si
Fin

Avec des Sinon Si et des ET (permet de ne pas suivre l’ordre croissant ou décroissant des notes.
Je ne remets que la partie SI car le reste de l’algo ne change pas.
Si moy < 10 Alors
Écrire "échec"
Sinon Si moy >= 16 ET moy < 18 Alors
Écrire "Très Bien"
Sinon Si moy >= 12 ET moy < 14 Alors
Écrire "Assez Bien"
Sinon Si moy ≥ 10 ET moy < 12 Alors
Écrire "Passable"
Sinon Si moy ≥ 18 Alors
Écrire "Félicitations !"
Sinon
Écrire "Bien"
Fin Si
Master Sciences du langage 5/15

5) Quel tarif pour telle personne ?


Écrivez un algo qui donne le tarif d’une place pour une personne selon les critères
suivants : enfants de moins de 5 ans gratuits ; de 5 ans à moins de 12 ans 10€ ; 12 à 25
ans et étudiants 15€ ; adultes 20€
On a besoin de demander l’âge de la personne et si elle a le statut étudiant. L’âge sera un entier. Pour étudiant
on peut utiliser un booléen : Vrai pour étudiant, Faux pour non étudiant.
Variables age, prix : entier
etu : booléen
Début
Écrire "Quel âge ?"
Lire age
Écrire "Étudiant ? (Vrai/Faux)"
Lire etu
Si age < 5 Alors
prix ← 0
Sinon Si age < 12 Alors
prix ← 5
Sinon Si age < 18 OU (age ≤ 25 ET etu) Alors
prix ← 15
Sinon
prix ← 20
Fin Si
Écrire "Le tarif pour cette personne est :",prix,"euros"
Fin
On peut attendre de voir si on a besoin de connaître le statut étudiant pour demander l’info à l’utilisateur :
Variables age, prix : entier
etu : booléen
Début
Écrire "Quel âge ?"
Lire age
Si age < 5 Alors
prix ← 0
Sinon Si age < 12 Alors
prix ← 5
Sinon
Écrire "Étudiant ? (Vrai/Faux)"
Lire etu
Si age < 18 OU (age ≤ 25 ET etu) Alors
prix ← 15
Sinon
prix ← 20
Fin Si
Fin Si
Écrire "Le tarif pour cette personne est :",prix,"euros"
Fin

Vous aimerez peut-être aussi