Exercices Algorithmique - Free

Contrôle Algorithmique (10 points) ... Ecrire l'algorithme qui affiche la
conjugaison d'un verbe du premier groupe saisi par ... 1 - Algo : Conjugaison (
corrigé) ... Avant de se lancer à corps perdu dans cet exercice, on pourra réfléchir
un peu et ...

Part of the document



Contrôle Algorithmique (10 points)




Vous commenterez vos programmes






1 - Algo : Conjugaison (5 points)


Ecrire l'algorithme qui affiche la conjugaison d'un verbe du premier groupe
saisi par l'utilisateur à la personne choisie.



Verbe du 1er groupe
Je parle
Tu parles
Il, elle, on parle
Nous parlons
Vous parlez
Ils, elles parlent

Exemple :

. Au lancement, un message invite l'utilisateur à saisir le verbe qu'il
souhaite conjuguer.

. Deux messages s'affichent ensuite, lui permettant de choisir d'une
part le pronom de conjugaison (1ère personne, 2ème personne, ou 3ème
personne), d'autre part le nombre (singulier ou pluriel) souhaités.

. Si l'utilisateur saisit "parler" puis choisit "2ème personne" et
"singulier" le message "Tu parles" s'affiche.



1 - Algo : Conjugaison (corrigé)


Variables
// personne = personne de conjugaison
// racine = racine du verbe à conjuguer
// verbe = verbe à conjuguer
// nombre = s pour singulier, p pour pluriel
// finverbe = terminaison du verbe
verbe, personne, racine , finverbe : chaîne
nombre : Entier
Début
Ecrire " Saisissez le verbe à conjuguer: "
Lire verbe
Ecrire " Choisissez 1 pour la 1ère personne, 2 pour la 2ème
personne, 3 pour la 3ème personne : "
Lire personne
Ecrire " Choisissez s pour singulier, p pour pluriel : "
Lire nombre

// Récupérer la racine du verbe : on découpe le verbe en partant de la
fin, lui enlevant
// les 2 derniers caractères (pour nous "er" ), en utilisant la
fonction longueur
racine ( SousChaîne(verbe, Longueur(verbe) -2 , 2)

Si personne = 1 Alors
Si nombre = "s" Alors
personne ( "je"
finverbe( "e"

Sinon

personne ( "nous"
finverbe( "ons"

FinSi


FinSi


Si personne = 2 Alors
Si nombre = "s" Alors
personne ( "tu"
finverbe( "es"

Sinon

personne ( "vous"
finverbe( "ez"

FinSi


FinSi


Si personne = 3 Alors
Si nombre = "s" Alors
personne ( "il, elle, on"
finverbe( "e"

Sinon

personne ( " ils, elles "
finverbe( "ent"

FinSi


FinSi


Ecrire personne, " " , racine, finverbe
Fin


2 - Algo : compagnie d'assurance automobile (5 points)


Une compagnie d'assurance automobile propose à ses clients quatre familles
de tarifs identifiables par une couleur, du moins au plus onéreux : tarifs
bleu, vert, orange et rouge.
Le tarif dépend de la situation du conducteur :
. un conducteur de moins de 25 ans et titulaire du permis depuis moins de
deux ans, se voit attribuer le tarif rouge, si toutefois il n'a jamais
été responsable d'accident. Sinon, la compagnie refuse de l'assurer.
. un conducteur de moins de 25 ans et titulaire du permis depuis plus de
deux ans, ou de plus de 25 ans mais titulaire du permis depuis moins de
deux ans a le droit au tarif orange s'il n'a jamais provoqué d'accident,
au tarif rouge pour un accident, sinon il est refusé.
. un conducteur de plus de 25 ans titulaire du permis depuis plus de deux
ans bénéficie du tarif vert s'il n'est à l'origine d'aucun accident et du
tarif orange pour un accident, du tarif rouge pour deux accidents, et
refusé au-delà.
. De plus, pour encourager la fidélité des clients acceptés, la compagnie
propose un contrat de la couleur immédiatement la plus avantageuse s'il
est entré dans la maison depuis plus d'un an.
Ecrire l'algorithme permettant de saisir les données nécessaires (sans
contrôle de saisie) et de traiter ce problème. Avant de se lancer à corps
perdu dans cet exercice, on pourra réfléchir un peu et s'apercevoir qu'ils
est plus simple qu'il en a l'air (cela s'appelle faire une analyse !)


2 - Algo : compagnie d'assurance automobile (5 points)Corrigé

Là encore, on illustre l'utilité d'une bonne analyse. Je propose deux
corrigés différents. Le premier suit l'énoncé pas à pas. C'est juste, mais
c'est vraiment lourd. La deuxième version s'appuie sur une vraie
compréhension d'une situation pas si embrouillée qu'elle n'en a l'air.
Donc, premier corrigé, on suit le texte de l'énoncé pas à pas :

Variables
age, perm, acc, assur : Entier
situ : Caractère
Début
Ecrire "Entrez l'âge : "
Lire age
Ecrire "Entrez le nombre d'années de permis : "
Lire perm
Ecrire "Entrez le nombre d'accidents : "
Lire acc
Ecrire "Entrez le nombre d'années d'assurance : "
Lire assur


Si age < 25 et perm < 2 Alors
Si acc = 0 Alors
situ < "Rouge"
Sinon Alors
situ < "Refusé"
FinSi


Sinonsi (age < 25 et perm >= 2) ou (age >= 25 et perm < 2) Alors
Si acc = 0 Alors
situ < "Orange"
SinonSi acc = 1 Alors
situ < "Rouge"
Sinon
situ < "Refusé"
FinSi


Sinon
Si acc = 0 Alors
situ < "Vert"
SinonSi acc = 1 Alors
situ < "Orange"
SinonSi acc = 2 Alors
situ < "Rouge"
Sinon
situ < "Refusé"
FinSi
FinSi


Si assur > 1 Alors
Si situ = "Rouge" Alors
situ = "Orange"
SinonSi situ = "Orange" Alors
situ = "Orange"
SinonSi situ = "Vert" Alors
situ = "Bleu"
FinSi
FinSi


Ecrire "Votre situation : ", situ
Fin

Vous trouvez cela compliqué ? Oh, certes oui, ça l'est ! Et d'autant plus
qu'en lisant entre les lignes, on pouvait s'apercevoir que ce galimatias de
tarifs recouvre en fait une logique très simple : un système à points. Et
il suffit de comptabiliser les points pour que tout s'éclaire...

Variable : P : entier

........

P < 0
Si age < 25 Alors
P < P + 1
FinSi
Si perm < 2 Alors
P < P + 1
FinSi
P < P + acc
Si P < 3 et assur > 1 Alors
P < P - 1
FinSi


Si P = -1 Alors
situ