INFO LISTE 2 EX ALGO

.

                                   INFO LISTE 2 D’EXERCICES D’ALGORITHME          Début octobre 2011    BTS1 

     Algorithmique n° 2                             

         Conditionnelle     Si   .......    Alors ....

   •    Exercice n° 1

           Ecrire un  algorithme qui détermine le plus grand des trois

           nombres X , Y , Z  et qui affiche ce résultat .

----------------------------------------------------------------------------------------------

Réponse:                         Voici un premier algorithme qui répond avec une variable A auxiliaire.

VARIABLES

X EST_DU_TYPE NOMBRE

Y EST_DU_TYPE NOMBRE

Z EST_DU_TYPE NOMBRE

A EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE X

LIRE Y

LIRE Z

AFFICHER "X = "

AFFICHER X

AFFICHER* " "

AFFICHER "Y = "

AFFICHER Y

AFFICHER* " "

AFFICHER "Z = "

AFFICHER Z

SI ( X>Y ) ALORS

DEBUT_SI

A PREND_LA_VALEUR X

FIN_SI

SINON

DEBUT_DE_SINON

A PREND_LA_VALEUR Y

FIN_SINON

SI (Z>A) ALORS

DEBUT_SI

A PREND_LA_VALEUR Z

FIN_SI

AFFICHER* " "

AFFICHER "Le plus grand des trois nombres est "

AFFICHER A

FIN_ALGORITHME    

-------------------------

Autre algorithme possible sans la variable auxiliaire A

mais avec l’utilisation de ET au niveau de la condition.

VARIABLES

X EST_DU_TYPE NOMBRE

Y EST_DU_TYPE NOMBRE

Z EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE X

LIRE Y

LIRE Z

AFFICHER "X = "

AFFICHER* X

AFFICHER "Y = "

AFFICHER* Y

AFFICHER "Z = "

AFFICHER* Z

SI (X>Y ET X>Z) ALORS

DEBUT_SI

AFFICHER "LE PLUS GRAND EST X ="

AFFICHER* X

FIN_SI

SINON

DEBUT_SINON

SI (Y>X ET Y>Z) ALORS

DEBUT_SI

AFFICHER "LE PLUS GRAND EST Y ="

AFFICHER Y

FIN_SI

SINON

DEBUT_SINON

SI (Z>X ET Z>Y) ALORS

DEBUT_SI

AFFICHER "LE PLUS GRAND EST Z = "

AFFICHER Z

FIN_SI

SINON

DEBUT_SINON

SI (X==Y OU X==Z OU Y==Z) ALORS

DEBUT_SI

AFFICHER "LE PLUS GRAND EST N’IMPORTE LEQUEL"

FIN_SI

FIN_SINON 

FIN_SINON

FIN_SINON

FIN_ALGORITHME

 

-------------------------------------------------------------------------------------------------------------

     •   Exercice n° 2

          Ecrire un algorithme qui saisit deux nombres X et Y , puis qui

           range dans X la plus petite valeur et  dans  Y la plus grande valeur .

-----------------------------------------------------------------------------------------------

       Réponse:

                Algorithme possible avec une variable auxiliaire A. 

                  ( Voir après un autre algorithme sans variable auxiliaire A. )

VARIABLES

X EST_DU_TYPE NOMBRE

Y EST_DU_TYPE NOMBRE

A EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

AFFICHER "Entrer deux nombres"

LIRE X

LIRE Y

SI (X>=Y) ALORS

DEBUT_SI

A PREND_LA_VALEUR X

X PREND_LA_VALEUR Y

Y PREND_LA_VALEUR A

AFFICHER* " "

AFFICHER "X= "

AFFICHER X

AFFICHER* " "

AFFICHER "Y= "

AFFICHER Y

FIN_SI

AFFICHER* " "

AFFICHER "X = "

AFFICHER X

AFFICHER* " "

AFFICHER "Y = "

AFFICHER Y

FIN_ALGORITHME

 

-------------

Autre possibilité plus simple car sans variable auxiliaire A

VARIABLES

X EST_DU_TYPE NOMBRE

Y EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE X

LIRE Y

AFFICHER "X = "

AFFICHER* X

AFFICHER "Y = "

AFFICHER* Y

SI (X>=Y) ALORS

DEBUT_SI

AFFICHER "X = "

AFFICHER* Y

AFFICHER "Y = "

AFFICHER X

FIN_SI

SINON

DEBUT_SINON

AFFICHER "X = "

AFFICHER* X

AFFICHER "Y = "

AFFICHER Y

FIN_SINON

FIN_ALGORITHME

--------------------------------------------------------------- 

     •    Exercice n° 3

            Ecrire un algorithme qui saisit trois nombres et qui les classe dans l’ordre croissant .

            ( On saisira les trois nombres X ,  Y et Z  et  l’exécution du programme donnera à  X , Y et Z 

            dans cet ordre les mêmes valeurs mais ordonnées ) .

-------------------------------------------------------------------------------------------------------

Réponse:              Algorithme possible. Il est intéressant de faire un arbre

 pour préparer l’écriture logique de l’algorithme

 Il est possible de remplacer A , B , C par X , Y ,Z. 

VARIABLES

A EST_DU_TYPE NOMBRE

B EST_DU_TYPE NOMBRE

C EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE A

LIRE B

LIRE C

AFFICHER "A = "

AFFICHER* A

AFFICHER "B = "

AFFICHER* B

AFFICHER "C = "

AFFICHER* C

SI (A<B) ALORS

DEBUT_SI

SI (B<C) ALORS

DEBUT_SI

AFFICHER "A B C"

FIN_SI

SINON

DEBUT_SINON

SI (A<C) ALORS

DEBUT_SI

AFFICHER "A C B"

FIN_SI

SINON

DEBUT_SINON

AFFICHER "C A B"

FIN_SINON

FIN_SINON

FIN_SI

SINON

DEBUT_SINON

SI (A<C) ALORS

DEBUT_SI

AFFICHER "B A C"

FIN_SI

SINON

DEBUT_SINON

SI (B<C) ALORS

DEBUT_SI

AFFICHER "B C A "

FIN_SI

SINON

DEBUT_SINON

AFFICHER "C B A"

FIN_SINON

FIN_SINON

FIN_SINON

FIN_ALGORITHME

----------------------------------------------------------------------------------------------------------

      •  Exercice n° 4

          Ecrire un algorithme qui vérifie si trois nombres lus à l’écran peuvent

         être les mesures des côtés d’un triangle .

------------------------------------------------------------

 Réponse:    Trois nombres positifs sont les mesures des cotés d’un triangle quand

                    la somme de deux d’entre eux est toujours supérieure au troisième.

                    ( Cela fait trois inégalités à respecter )

       Voici un algorithme qui répond.

VARIABLES

a EST_DU_TYPE NOMBRE

b EST_DU_TYPE NOMBRE

c EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE a

LIRE b

LIRE c

AFFICHER "La longueur de [BC] est a = "

AFFICHER* a

AFFICHER "La longueur de [AC] est b = "

AFFICHER* b

AFFICHER "La longueur de [AB] est c = "

AFFICHER* c

SI (a+b>c ET a+c>b ET c+b>a) ALORS

DEBUT_SI

AFFICHER "a , b , c sont bien les longueurs des trois cotés du triangle ABC"

FIN_SI

SINON

DEBUT_SINON

AFFICHER "Non. a , b, c ne sont pas les longueurs des cotés du triangle ABC."

FIN_SINON

FIN_ALGORITHME

 

------------------------------------------------------------------------------------- 

 

     •    Exercice n° 5

           Un robot conduit une voiture . Il peut effectuer trois actions : "s’arrêter " , " ralentir " , " passer" 

          en fonction de la couleur du feu tricolore qui sera saisie à l’écran .

          Ecrire l’algorithme qui saisit la couleur du feu et affiche l’ action à effectuer .

           On pourra faire vérifier que la voie est libre avant de passer quand le feu est vert .

-------------------------------------------------------------------------------------------------------------- 

 

Réponse:

           Voici un algorithme qui répond au problème. On utilise une variable chaine car

          rouge , orange , vert n’est pas un nombre. 

 VARIABLES

Couleur EST_DU_TYPE CHAINE

DEBUT_ALGORITHME

AFFICHER "Dites si le feu est rouge ou orange ou vert "

LIRE Couleur

AFFICHER* " "

AFFICHER "Le feu est "

AFFICHER* Couleur

SI (Couleur=="rouge") ALORS

DEBUT_SI

AFFICHER " S’arrêter"

FIN_SI

SINON

DEBUT_SINON

SI (Couleur=="orange") ALORS

DEBUT_SI

AFFICHER " Ralentir"

FIN_SI

SINON

DEBUT_SINON

SI (Couleur=="vert") ALORS

DEBUT_SI

AFFICHER " Passer"

FIN_SI

FIN_SINON

FIN_SINON

---------------------------------------------------------------