Stage Algorithmique- LFLNI-18 au 20 octobre 2010
1/8
L’objectif de ces quelques pages est simplement de commencer à réfléchir sur ce qu’est un
algorithme, sans aucun formalisme au niveau de la rédaction. On dira que les algorithmes sont
écrits en langage courant. La seule exigence est que les instructions permettent au lecteur de
faire tourner l’algorithme la main" sans difficultés. Une première étape de formalisation
interviendra en écrivant les algorithmes en pseudo code puis une troisième en les traduisant
dans divers langages de programmation.
Des algorithmes en langage courant
Voici 10 algorithmes issus de problèmes que nos élèves pourront rencontrer entre la classe de
troisième et celle de terminale.
1. programme de calcul (1)
2. programme de calcul (2)
- choisir un nombre réel,
- L’élever au carré,
- Retrancher 4,
- Multiplier par 2,
- Afficher le résultat final.
- choisir un nombre réel,
- Prendre son opposé,
- ajouter 4,
- élever au carré,
- retrancher 3,
- Afficher le résultat final.
3. programme de calcul (3)
-
0x
,
- Calculer
2
x
,
- Retrancher
,
- Ajouter 2,
- Afficher la valeur de x et le résultat obtenu dans un tableau,
- Si
10x
, l’algorithme est terminé,
- Sinon, ajouter 1 à x, et recommencer depuis à la deuxième ligne.
4. Milieu d’un segment
- Entrer les coordonnées d’un point A,
- Entrer les coordonnées d’un point B,
- Calculer la demi somme des abscisses de A et B,
- Calculer la demi somme des ordonnées de A et B,
- Afficher les résultats obtenus.
Stage Algorithmique- LFLNI-18 au 20 octobre 2010
2/8
5. PGCD : Algorithme d’Euclide
- Choisir deux entiers naturels a et b tels que
ab
,
- Effectuer la division euclidienne de a par b,
- Si le reste est nul, b est le PGCD,
- Sinon, remplacer a par b et b par le reste,
- Recommencer jusqu’à ce que le reste devienne nul,
- Le PGCD est le dernier reste non nul.
6. PGCD : Algorithme des soustractions
- Choisir deux entiers naturels a et b tels que
ab
,
- Effectuer la soustraction
ab
,
- Si
a b 0
alors
 
a,b a bPGCD 
, l’algorithme est terminé,
- Sinon, remplacer a par le plus grand des deux nombres b et
ab
et b par le plus petit,
- Recommencer à partir de la deuxième ligne.
7. Tri simple
L’objectif est de déterminer le plus grand nombre parmi trois réels deux à deux distincts.
- Choisir trois nombres réels a, b et c deux à deux distincts,
- Si
ab
et si
ac
, s prend la valeur a,
- Si
ab
et si
ac
, s prend la valeur c,
- Si
ba
et
bc
, s prend la valeur b,
- Si
ba
et
cb
, s prend la valeur c,
- Afficher s
Remarque : cet algorithme qui devra être amélioré servira pour de nombreux problèmes
relatifs aux triangles mais nous verrons qu’il est déjà présent par l’intermédiaire des
fonctions max et min dans la plupart des langages de programmation.
Stage Algorithmique- LFLNI-18 au 20 octobre 2010
3/8
8. Dichotomie
On suppose qu’on dispose d’une fonction f continue et strictement croissante sur un
intervalle
 
;ab
et qui s’annule entre a et b. L’objectif est de trouver un encadrement
d’amplitude maximale e (donnée) de la racine.
- Calculer
2
ab
c
.
- Si
 
0f a f c
, remplacer b par c.
- Sinon, remplacer a par c.
- Tant que
b a e
, recommencer au début.
- Afficher les valeurs finales de a et b.
9. Approximation de la courbe d’une fonction par la méthode d’Euler
Lorsqu‘on connaît la dérivée
d’une fonction f sur un intervalle I de et une valeur
particulière de f (condition initiale :
 
00
f x y
,
0
x
et
0
y
sont des réels donnés,
0Ix
), on ne peut pas toujours en déduire explicitement une expression de f.
La méthode d’Euler permet toutefois de construire une approximation de la courbe
représentative de la fonction f cherchée, à l’aide d’approximations affines locales.
Voici un exemple d’algorithme :
- Placer le point
 
0 0 0
M;xy
,
- Choisir un pas h,
- Construire le point de coordonnées:
10
x x h
et
 
1 0 0
'y y hf x
,
- Remplacer
0
x
par la valeur de
1
x
et
0
y
par la valeur de
1
y
,
- Recommencer autant de fois que l’on veut de points
10. Simulation d’un jeu de dé
On veut lancer un dé un certain nombre de fois et compter le nombre d’apparition de
chaque face. Faire tourner l’algorithme à la main signifie aussi qu’on lance un vrai dé.
- Choisir le nombre de lancer, soit n ce nombre,
- Lancer le dé n fois et compter le nombre d’apparition de chaque
face,
Stage Algorithmique- LFLNI-18 au 20 octobre 2010
4/8
Du langage courant au pseudo code
Ecrire un algorithme en pseudo code, c’est le présenter sous une forme plus proche des
langages de programmation mais sans les exigences de syntaxe de ces derniers.
Il n’existe donc pas de langage "pseudo code" à proprement parler, mais nous allons essayer à
travers les exemples suivants de respecter les principes suivants :
- toutes les variables seront déclarées, même si elles ne sont que des variables
auxiliaires,
- les algorithmes seront divisés en quatre parties : la déclaration des variables, les
entrées, le traitement puis les sorties. On ajoutera toutefois l’initialisation si l’on utilise
des boucles.
- Pour affecter une valeur à une variable, c’est la flèche
""
qui est utilisée ici (dans
certains manuels on trouve
ba
à la place de
ab
; mais il va de soi que cela
signifie la même chose, à savoir "b prend la valeur a"…).
Remarque : nous n’utiliserons ici que des variables numériques mais il existe bien des
possibilités…
1. programme de calcul (1)
- Variable : a nombre
- Entrée :
saisir a
- Traitement :
 
2
24aa  
- Sortie :
Afficher a
ou
- Variable : a nombre
- Entrée :
saisir a
- Traitement :
2
aa
4aa
2aa
- Sortie :
Afficher a
2. programme de calcul (2)
- Variable : a nombre
- Entrée :
saisir a
- Traitement :
 
2
43aa  
- Sortie :
Afficher a
ou
- Variables : a, b, c, d nombres
- Entrée :
saisir a
- Traitement :
4ab
2
bc
3cd
- Sortie :
Afficher d
Stage Algorithmique- LFLNI-18 au 20 octobre 2010
5/8
3. programme de calcul (3)
- Variables : x, y nombres
- Entrées : pas d’entrée ici
- Traitement :
Pour x allant de 0 à 10 par pas de 1 faire
232x x y  
Ecrire x et y dans la
ième
i
ligne du tableau
Fin Pour
- Sorties : (les sorties sont faites au fur et à mesure que la
boucle s’effectue)
4. Milieu d’un segment
- Variables : xa, ya, xb, yb, xi, yi nombres
- Entrées :
saisir l’abscisse de A : xa
saisir l’ordonnée de A : ya
saisir l’abscisse de B : xb
saisir l’ordonnée de B : yb
- Traitement :
 
/2xa xb xi
 
/2ya yb yi
- Sorties :
Afficher xi, yi
5. PGCD : Algorithme d’Euclide
- Variables : a, b, r nombres
- Entrées :
saisir a, b
- Initialisation
br
- Traitement :
Tant que
0r
faire
 
mod ,a b r
ba
rb
Fin Tant Que
- Sortie :
Afficher a
L’instruction mod retourne le
reste dans la division
euclidienne. Elle existe sous
cette forme où une autre dans
la plupart des langages mais
elle peut être remplacée en
utilisant la partie entière du
quotient a/b puis une
soustraction…
Il existe un très grand
nombre de variantes
pour ce type de
problème…
Attention : on ne
demande pas
nécessairement de
construire le tableau
mais de faire afficher
les résultats sous
forme d’une ligne par
valeur de x
1 / 8 100%