Exercice Algorithme : Analyse - Boucles
![](/images/thumb/46/default.png)
Exercice (1) : Analyse (Cas Elections )
Les élections législatives, en Guignolerie Septentrionale, obéissent à la règle suivante :
- lorsque l'un des candidats obtient plus de 50% des suffrages, il est élu dès le premier tour.
- en cas de deuxième tour, peuvent participer uniquement les candidats ayant obtenu au moins 12,5% des voix au premier tour.
Travail à Faire:
Vous devez écrire un algorithme qui permette la saisie des scores de quatre candidats au premier tour. Cet algorithme traitera ensuite le candidat numéro 1 (et uniquementlui) : il dira s'il est élu, battu, s'il se trouve en ballottage favorable (il participe au second tour en étant arrivé en tête à l'issue du premier tour) ou défavorable (il participe au second tour sans avoir été en tête au premier tour).
Solution :
Variables A, B, C, D en Numérique Variables C1, C2, C3, C4 en Booléen Début Ecrire "Entrez les scores des quatre prétendants :" Lire A, B, C, D C1 ? A > 50 C2 ? B > 50 ou C > 50 ou D > 50 C3 ? A >= B et A >= C et A >= D C4 ? A >= 12,5 Si C1 Alors Ecrire “Elu au premier tour" Sinonsi C2 ou Non(C4) Alors Ecrire “Battu, éliminé, sorti !!!” SinonSi C3 Alors Ecrire "Ballotage favorable" Sinon Ecrire "Ballotage défavorable" FinSi FinSi FinSi Fin
Exercice (2) : Determine quand un père aura le double de l’age de son fils
On veut déterminer quand un père aura le double de l’age de son fils.
version féminine
On veut savoir quand une mère aura le double de l’âge de sa fille.
Étape de réflexion (conception):
Hypothèse : un age est par habitude une valeur entière.
On cherche à déterminer dans combien d’année un père aura le double de l’age de son fils
Résultat
Nombre d’année pour que le père ait le double de l’age du fils AN
Données
Age du père AP
Age du fils AF
Traitement
A partir du jeux d’essai suivant
AN AP AF on peut déterminer les calculs suivants
2 58 28 58 + 2 = 2 x (28 + 2)
0 60 30 60 + 0 = 2 x (30 + 0)
-2 62 32 62 + -2 = 2 x (32 + -2)
se qui permet d’obtenir la formule générale suivante
Ä AP + AN = 2 x (AF + AN)
AP + AN = 2 x (AF + AN)
AP + AN = 2 x AF + 2 x AN
AP - 2 x AF = 2 x AN – AN
AP - 2 x AF = AN
L'algorithme associé à son lexique (conception)
variables
AN (entier) Nombre d’année pour que le père ait le double de l’age du fils
AP (entier) Age du père
AF (entier) Age du fils
Début
Lire(AP, AF)
AN ç AP – 2 * AF
Ecrire(AN)
Fin
Exercice (3) : Les Boucles (1)
1/
Ecrire 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
2/
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
3/
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut
1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
Solution :
1/
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
2/
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
3/
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
Exercice (4) : Les Boucles (2)
1/
Ecrire 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
2/
É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.6 ci-dessus) :
X = n ! / (n - p) !
Y = n ! / (p ! * (n – p) !)
Solution :
1/
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
2/
Variables N, P, i, A, B en Numérique Debut Ecrire "Entrez le nombre de chevaux partants : " Lire N Ecrire "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 Ecrire "Dans l’ordre, une chance sur ", A Ecrire "Dans le désordre, une chance sur ", A / B Fin