Exercice Algorithme : Analyse - Boucles

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ériqueVariables C1, C2, C3, C4 en BooléenDébutEcrire "Entrez les scores des quatre prétendants :"Lire A, B, C, DC1 ? A > 50C2 ? B > 50 ou C > 50 ou D > 50C3 ? A >= B et A >= C et A >= DC4 ? A >= 12,5Si 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"FinSiFinSiFinSiFin

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 EntierDebutEcrire "Entrez un nombre : "Lire NEcrire "La table de multiplication de ce nombre est : "Pour i ? 1 à 10 Ecrire N, " x ", i, " = ", n*ii SuivantFin

2/ 

Variables N, i, Som en EntierDebutEcrire "Entrez un nombre : "Lire NSom ? 0Pour i ? 1 à N Som ? Som + ii SuivantEcrire "La somme est : ", SomFin

3/ 

Variables N, i, F en EntierDebutEcrire "Entrez un nombre : "Lire NF ? 1Pour i ? 2 à N F ? F * ii SuivantEcrire "La factorielle est : ", FFin

 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 EntierDebutPG ? 0Pour i ? 1 à 20 Ecrire "Entrez un nombre : " Lire N Si i = 1 ou N > PG Alors PG ? N IPG ? i FinSii SuivantEcrire "Le nombre le plus grand était : ", PGEcrire "Il a été saisi en position numéro ", IPGFin

2/

Variables N, P, i, A, B en NumériqueDebutEcrire "Entrez le nombre de chevaux partants : "Lire NEcrire "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