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×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
---------------------------------------------------------------------------------------------------------------