INFO LISTE 3 EX ALGO

   INFO LISTE 3    D'EXERCICES D'ALGORITHME      OCT- NOV  2011

     ALGORITHMIQUE n° 3

                                Boucle simple

 

          •   Exercice 1

 

                    Ecrire un algorithme qui saisit un nombre n, saisit un message et affiche n fois

                    le message à l'écran.

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

 Réponse :

                       Voici un algorithme possible:

 VARIABLES

N EST_DU_TYPE NOMBRE

T EST_DU_TYPE CHAINE

I EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE N

LIRE T

AFFICHER "On veut afficher "

AFFICHER N

AFFICHER " fois le message "

AFFICHER T

AFFICHER* " "

AFFICHER* "Voici ce que cela donne : "

POUR I ALLANT_DE 1 A N

DEBUT_POUR

AFFICHER* T

FIN_POUR

FIN_ALGORITHME

 

 •   Exercice 2 

                Ecrire un algorithme qui calcule la somme des n premiers nombres entiers

                 Même chose pour la somme des carrés des n premiers nombres entiers.

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

Réponse :    On peut utiliser une boucle.

                   On peut aussi utiliser deux formules qui donnent directement le résultat.:

                     1 + ..... + n = n( n + 1 ) / 2

                     12 + .......+ n2 = n ( n + 1 ) ( 2 n + 1 ) / 6

 

 VARIABLES

n EST_DU_TYPE NOMBRE

Sn EST_DU_TYPE NOMBRE

Scn EST_DU_TYPE NOMBRE

m EST_DU_TYPE NOMBRE

K EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE n

m PREND_LA_VALEUR pow(n,2)

AFFICHER " Le nombre de termes est : "

AFFICHER n

POUR K ALLANT_DE 1 A n

DEBUT_POUR

Sn PREND_LA_VALEUR Sn+K

Scn PREND_LA_VALEUR K*K+Scn

FIN_POUR

AFFICHER* " "

AFFICHER " 1 + 2 +... + "

AFFICHER n

AFFICHER " = "

AFFICHER Sn

AFFICHER* " "

AFFICHER " 1² + 2² +... + "

AFFICHER m

AFFICHER " = "

AFFICHER Scn

FIN_ALGORITHME

 

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

              •    Exercice 3

                           Soient deux entiers x et n (n positif ).

                          Calculez  xn par multiplications successives sans utiliser d'élévation à la puissance.

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

Réponse :          En formant avec une boucle,   x×x  , x×x , x×x×x×x , ... ,etc ,

                         on arrive à obtenir un produit qui est égal à  xn   .

VARIABLES

n EST_DU_TYPE NOMBRE

x EST_DU_TYPE NOMBRE

k EST_DU_TYPE NOMBRE

Pn EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE n

LIRE x

AFFICHER "n = "

AFFICHER n

AFFICHER "x = "

AFFICHER x

Pn PREND_LA_VALEUR 1

POUR k ALLANT_DE 1 A n

DEBUT_POUR

Pn PREND_LA_VALEUR Pn*x

FIN_POUR

AFFICHER " x^n = "

AFFICHER Pn

FIN_ALGORITHME

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

           •      Exercice 4

                 Ecrire un algorithme qui compte le nombre de caractères d'une phrase

                 tapée à l'écran et qui se termine par un point .

 ( On utilisera   le nom de la chaine suivi d'un point suivi de LENGTH  qui veut dire longueur.)

Réponse :     

          L’algorithme compte aussi les blancs c-à-d les espaces

VARIABLES

T EST_DU_TYPE CHAINE

M EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

AFFICHER* " Donnez la phrase ."

LIRE T

AFFICHER "La phrase est :"

AFFICHER T

M PREND_LA_VALEUR T.length

AFFICHER* " "

AFFICHER "Elle contient "

AFFICHER M

AFFICHER " caractères "

FIN_ALGORITHME 

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

             •     Exercice 5

                       Soit la suite de nombres définiesur IN par la relation de récurrence:

                                           un+2 = un+1 + un

                          les deux premiers termes étant donnés.

                        Ecrire un algorithme qui saisit les deux premiers termes,

                         l'indice du terme que l'on veut calculer et qui calcule et affiche ce terme .

Réponse :

                    L'algorithme suivant répond.

VARIABLES

U0 EST_DU_TYPE NOMBRE

U1 EST_DU_TYPE NOMBRE

n EST_DU_TYPE NOMBRE

k EST_DU_TYPE NOMBRE

X EST_DU_TYPE NOMBRE

Y EST_DU_TYPE NOMBRE

Z EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE U0

LIRE U1

LIRE n

AFFICHER "U0 = "

AFFICHER* U0

AFFICHER "U1 = "

AFFICHER* U1

AFFICHER "On veut le terme d'indice "

AFFICHER* n

AFFICHER "C'est-à-dire on veut U"

AFFICHER* n

k PREND_LA_VALEUR 0

X PREND_LA_VALEUR U0

Y PREND_LA_VALEUR U1

TANT_QUE (k!=(n-4)) FAIRE

DEBUT_TANT_QUE

X PREND_LA_VALEUR X+Y

Y PREND_LA_VALEUR X+Y

Z PREND_LA_VALEUR X+Y

k PREND_LA_VALEUR k+1

FIN_TANT_QUE

AFFICHER "U"

AFFICHER n

AFFICHER "= "

AFFICHER Z

FIN_ALGORITHME

 

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

               •   Exercice 6 :    Affichage d'étoiles ou de points.

   a)Ecrire un algorithme qui affiche à l'écran une ligne d'étoiles de longueur L.

   b) Modifier l'algorithme ci dessus pour faire afficher un rectangle de points

        de longueur L et de largeur h.

   c) Faire afficher un triangle de points comme ci dessous :

         On saisira le nombre N. Par exemple, pour N=4 :               

                                                  *

                                                 * *

                                                 * * *

                                                 * * * *

Réponse :

a. Ecrivons un algorithme qui affiche à l'écran une ligne d'étoiles de longueur L. 

VARIABLES

L EST_DU_TYPE NOMBRE

k EST_DU_TYPE NOMBRE

N EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE L

N PREND_LA_VALEUR L+1

AFFICHER "On veut une ligne d'étoiles de longueur "

AFFICHER L

AFFICHER " "

AFFICHER " Il y aura : "

AFFICHER N

AFFICHER " étoiles"

k PREND_LA_VALEUR 0

TANT_QUE (k!=N) FAIRE

DEBUT_TANT_QUE

AFFICHER " "

AFFICHER " * "

k PREND_LA_VALEUR k+1

FIN_TANT_QUE

FIN_ALGORITHME

 

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

b. Affichons  un rectangle de points

        de longueur L et de largeur h.

                                                                 Algorithme possible

VARIABLES

L EST_DU_TYPE NOMBRE

h EST_DU_TYPE NOMBRE

m EST_DU_TYPE NOMBRE

k EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE L

LIRE h

AFFICHER "La longueur est L = "

AFFICHER L

AFFICHER " "

AFFICHER "La largeur est h = "

AFFICHER h

m PREND_LA_VALEUR 0

k PREND_LA_VALEUR 0

TANT_QUE (m<L+1) FAIRE

DEBUT_TANT_QUE

TRACER_POINT (m,h)

TRACER_POINT (m,0)

m PREND_LA_VALEUR m+1

FIN_TANT_QUE

TANT_QUE (k<h+1) FAIRE

DEBUT_TANT_QUE

TRACER_POINT (0,k)

TRACER_POINT (L,k)

k PREND_LA_VALEUR k+1

FIN_TANT_QUE

   FIN_ALGORITHME     

     

c. Donnons un algrithme qui donne un triangle de points.

       

VARIABLES

N EST_DU_TYPE NOMBRE

k EST_DU_TYPE NOMBRE

x EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE N

AFFICHER "N = "

AFFICHER N

POUR k ALLANT_DE 0 A N-1

DEBUT_POUR

POUR x ALLANT_DE 1 A N-k

DEBUT_POUR

TRACER_POINT (x,k)

FIN_POUR

FIN_POUR

FIN_ALGORITHME

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