Résumé sur les algorithmes
I. Quelques exemples d’algorithmes
1°) Définition
Un algorithme est énoncé d’une suite d’instructions permettant de donner la réponse à un problème.
Il comprend :
Une phase d’entrée : on entre les données.
Une phase de traitement du problème.
Une phase de sortie des résultats.
Notation :
Entrée :
…., …., ….
Traitement :
….
….
….
Sortie :
….
2°) Une construction géométrique
On se donne deux points A et B du plan.
a) Tracer le cercle de centre A et passant par B
b) Tracer le cercle de centre B passant par A
c) Nommer C et D les points d’intersection de ces cercles
Construire le polygone ADBC
Cet algorithme décrit la construction d’un losange dont une diagonale est [AB].
Les entrées sont les points A et B.
Le traitement de la construction est décrit dans les phases a, b et c.
La sortie est le polygone ADBC.
Entrée :
Placer A et B
Traitement :
Tracer le cercle de centre A et passant par B.
Tracer le cercle de centre B passant par A.
Marquer les points C et D d’intersection de ces cercles
Sortie :
Tracer le polygone ADBC
1
3°) Un algorithme de calcul
Soit A et B deux réels.
a) Calculer A + B et remplacer A par cette valeur
b) Calculer A – B et remplacer B par cette valeur
Afficher les nombres A et B
Cet algorithme décrit un calcul.
Les entrées sont les nombres A et B.
Le traitement est décrit dans les phases a, b et c.
Les sorties sont les nombres A et B.
Variables :
A et B réels
Entrée :
Saisir A et B
Traitement :
A prend la valeur A + B
B prend la valeur A – B
Sortie :
Afficher A et B
II. L’affectation
1°) Définition
Affecter A à B, c’est donner à la variable B la valeur de la variable A. B prend la valeur de A.
Si la variable B avait une valeur, celle-ci est perdue : toute affectation dans la variable B détruit la valeur
précédente de la variable B.
2°) Exemple
Soit l’énoncé suivant :
Soit un nombre X.
a) X prend la valeur X + 1.
b) X prend la valeur X – 2.
Afficher X
2
L’algorithme est donc :
Variables :
X réel
Entrée :
Saisir X
Traitement :
X prend la valeur X + 1
X prend la valeur X – 2
Sortie :
Afficher X
Remarque : Lorsque l’on écrit « X prend la valeur X + 1 », X + 1 représente le nombre égal à la somme de
1 et du contenu de la variable X, ce nombre devient la valeur de la variable X, la valeur précédente étant
effacée.
III. Programmation d’une instruction conditionnelle
Exemple :
Un magasin de photos propose le développement au tarif de 0,16 € l’unité, le tarif devient de 0,12 € l’unité pour
une commande d’au moins 75 photos.
On veut élaborer un algorithme donnant le montant dépensé pour un nombre N de photos à développer.
On va donc introduire une instruction conditionnelle « Si … alors … sinon … » qui permet d’écrire la
condition :
Si le nombre de photos N est strictement inférieur à 75, le montant est N 0,16
Si le nombre de photos N est supérieur ou égal à 75, le montant est N 0,12
Notation pour l’algorithme :
Si {condition C}
Alors {instructions A}
Sinon {instructions B}
FinSi
L’exécution des deux traitements ne dépend que du résultat du test effectué sur la condition C.
Si C est vérifiée, seules les instructions A sont exécutées.
Si C n’est pas vérifiée, seules les instructions B sont exécutées.
3
Algorithme de l’exemple :
Variables :
N entier naturel
P réel
Entrée :
Saisir N
Initialisation :
S prend la valeur 100
Traitement :
Si N < 75,
Alors P prend la valeur N 0,16
Sinon P prend la valeur N 0,12
FinSi
Sortie :
Afficher P
4
IV. Programmation d’un calcul itératif, avec un nombre d’itérations donné
Exemple :
Les parents de Léa versent 100 € sur un livret à sa naissance, puis versent 20 € chaque mois sur ce livret.
On veut élaborer un algorithme donnant la somme sur ce livret au bout d’un certain nombre N de mois.
On va donc réaliser la boucle « Pour I variant de … à … » qui permet de répéter ce calcul : la variable I
contrôle le nombre d’itérations.
Ici la valeur initiale de I est 1 et sa valeur finale est N.
On sort de la boucle d’itérations une fois que le nombre de répétitions souhaité est atteint.
Notation pour l’algorithme :
Pour I variant de I0 à N
Faire {instructions}
FinPour
Une boucle permet de répéter plusieurs fois de suite un même traitement.
La variable I varie de I0 à N avec un pas de 1, cela signifie que si I0 = 1, les instructions s’exécutent pour I = 1
puis pour I = 2… et elles se déroulent en boucle.
Quand I = N, les instructions s’exécutent une dernière fois, puis la boucle est terminée et l’algorithme (le
programme) continue.
Algorithme de l’exemple :
Variables :
N, I entiers naturels
Entrée :
Saisir N
Initialisation :
S prend la valeur 100
Traitement :
Pour I variant de 1 à N Faire
S prend la valeur S + 20
FinPour
Sortie :
Afficher S
5
V. Programmation d’un calcul itératif avec fin de boucle conditionnelle
Exemple :
Une balle lâchée d’une hauteur donnée rebondit chaque fois qu’elle touche le sol au 1/5e de sa hauteur.
On veut écrire un algorithme qui donne le nombre de rebonds de la balle avant que celle-ci soit à un millimètre
du sol.
On appelle X la variable donnant la hauteur en millimètres atteinte par la balle après chaque rebond.
X
On doit ici répéter l’instruction « X prend la valeur », mais on ne connaît pas à l’avance le nombre de
5
répétitions.
On va donc réaliser une boucle conditionnelle. On teste une condition en début de boucle (X > 1 ici) et le
traitement de la boucle n’est réalisé que si la condition est vérifiée.
On introduit un « compteur » R pour compter le nombre de rebonds : on l’initialise à 0 et à chaque fois que la
boucle est parcourue, ce compteur est augmenté d’une unité.
Notation pour l’algorithme :
Tantque {condition C}
Faire {instructions}
FinTantque
Dans la structure « Tantque … », la condition C est testée en début de boucle.
Si la condition n’est pas vérifiée au départ, la boucle n’est jamais exécutée.
Algorithme de l’exemple :
Variables :
X réel
R entier naturel
Entrée :
Saisir X
Initialisation :
R prend la valeur 0
Traitement :
Tantque X > 1 Faire
X
X prend la valeur
5
R prend la valeur R + 1
FinTantque
Sortie :
Afficher R