Page 1 Outils pour l`algorithmique #)`$ * ) $# ! $` ) " ) %`$ ` "" ) $# L

Outils pour lalgorithmique
#)'$*) $#!$' )")%'$'"") $#
Lobjectif de ce complément est de :
– découvrir ou revoir ce quest un algorithme, sa structure de base et ses instructions fondamentales ;
– mettre en œuvre quelques algorithmes à l'aide d'une machine (la calculatrice ou l’ordinateur) ;
– d’e ectuer de la programmation.
0 # ) $#)'%'0(#)) $#.*#!$' )"
DÉFINITION
Un algorithme est une suite  nie de règles que l’on applique dans un ordre
déterminé, à un nombre  ni de données pour arriver à un certain résultat, en
un nombre  ni d’étapes.
Cette dé nition donne un sens au mot algorithme qui dépasse largement le
cadre des mathématiques et de l’informatique. En e et, on peut constater que de
nombreux algorithmes émaillent notre vie quotidienne. En mathématiques, on
utilise déjà des algorithmes sans en avoir conscience.
EXEMPLES
Des algorithmes dans notre quotidien Des algorithmes déjà connus
a. Nouer ses lacets.
b. Envoyer un mail :
Allumer l’ordinateur.
Ouvrir son client de messagerie électronique.
Rédiger un nouveau message.
Sélectionner les destinataires.
Ajouter (éventuellement) une pièce jointe.
Envoyer.
c. Une recette de cuisine est un algorithme
avec ses données (les ingrédients), ses
instructions (les di érentes étapes de la
confection) et sa sortie (le plat à déguster).
d. Indiquer son chemin à quelqu’un.
a. Déterminer graphiquement
l’image d’un nombre par une fonc-
tion dont la courbe est connue.
b. Tracer un triangle équilatéral
dont la longueur du côté est
donnée.
c. Déterminer si un triangle dont
on connaît la longueur des côtés
est rectangle.
d. Algorithme d’Euclide.
e. Crible d’Eratosthène.
f. Calculer la moyenne d’une série
statistique.
Pour constater quil sagit bien d’un algorithme, on doit véri er que, pour parvenir
au résultat recherché, on a bien une méthode constituée d’un nombre  ni
d’instructions et d’étapes, ne requérant qu’un nombre  ni de données.
REPRÉSENTATION
Pour représenter de façon commune les algorithmes, on utilise deux méthodes :
un organigramme, réservé aux algorithmes les plus simples (voir la  che sur le
logiciel LARP, page 390) ;
le pseudo-code, qui ressemble à un vrai langage de programmation dans lequel
on aurait retiré les problèmes de syntaxe (grammaire) et que l’on peut écrire dans la
langue de son choix. Cette façon de présenter les algorithmes présente l’avantage
d’être très structurée, facilement traduisible dans n’importe quel langage de
programmation.
À ce stade, l’algorithme nest pas destiné à être interprété directement par un
ordinateur.
Représentation d’un algorithme
à l’aide du pseudo-code :
Début
Écrire "Entrer la première
note"
Lire N
Écrire "Entrer la seconde
note"
Lire M
Écrire "La moyenne est :
",(M+N)/2
Fin
Représentation d’un algorithme
à l’aide d’un organigramme :
Début
ÉCRIRE "Entrer la première note"
LIRE N
ÉCRIRE "Entrer la seconde note"
LIRE M
ÉCRIRE "La moyenne est :
",(M+N)/2
FIN
Outils pour lalgorithmique
'$'"") $#)! #+!. #$'") &*
Les algorithmes ne sont pas en lien direct avec linformatique. Leur but est de fournir
une solution (réponse) à un problème posé. Leur particularité est d’être constitués
d’un nombre ni d’instructions simples, appelées instructions élémentaires, qu’il
est parfois cessaire de répéter un certain nombre (parfois très grand) de fois.
Le principe est simple mais la tâche peut s’avérer laborieuse. C’est là quintervient
la cessité d’utiliser lordinateur, capable d’exécuter des instructions très simples
autant de fois que cessaire.
Il reste néanmoins le problème de la communication : une fois l’algorithme
construit, une étape importante est de « lexpliquer » à lordinateur.
Cette communication se fait à l’aide de divers langages de programmation. Tous
ces langages ont leur propre sémantique (vocabulaire) et leur propre syntaxe
(grammaire), mais reposent sur les bases fondamentales de l’algorithmique, les
instructions élémentaires suivantes :
la lecture ou l’écriture ; l’a ectation de variables ;
les tests ; les boucles.
EXEMPLES
L’algorithme présenté sous forme d’organigramme et de pseudo-code au
paragraphe , qui a pour but de calculer la moyenne de deux notes données,
est crit ci-dessous dans divers langages de programmation s’appliquant sur
calculatrices ou sur ordinateurs.
Casio TI
XCAS Langage Python
SCRATCH Langage C
Voir les ches logiciel,
pages 386 à 391.
Voir la che calculatrices,
page 398.
 Outils pour lalgorithmique
0$"%$('# #()'*) $#(0!0"#) '(
( #()'*) $#(0!0"#) '(
Avant de pouvoir écrire un algorithme, il faut réussir à composer la résolution du problème
posé en instructions élémentaires.
On peut ranger des instructions très diverses en quatre grandes familles :
entrée/sortie : elles permettent d’entrer une donnée ou d’a cher un résultat ;
les a ectations de variables : elles modi ent la valeur d’un nombre, la forme d’un objet ;
les instructions conditionnelles : elles permettent de tester et de proposer des choix ;
les boucles : elles permettent de répéter des instructions.
) + )0(
Activité #!-()'$ (!$' )"(
Lire les deux entiers a et b
Calculer le reste r de la division
euclidienne de a par b
TANT QUE r est di érent de 0
Remplacer a par b
Remplacer b par r
Remplacer r par le reste de la
division euclidienne de a par b
A cher la valeur de b
Lire le nombre n
Écrire tous les entiers entre 2 et n
Pour chacun de ces entiers, en
commençant par 2 :
Si il nest pas rayé
Alors rayer tous ses multiples
sauf lui-même
Écrire la liste des entiers non
rayés 
Lire le nombre de données N
Lire toutes les données
Calculer la somme des données
Diviser cette somme par N
A cher le résultat.
1 Tester chacun des algorithmes ci-dessus, puis expliquer leur but.
2 Reproduire les algorithmes 1, 2 et 3, puis souligner à laide de couleurs di érentes, les quatre grandes familles d’ins-
tructions :
a. entrée/sortie : en rouge ; b. a ectation de variables : en bleu ;
c. instruction conditionnelle : en vert ; d. boucle : en noir.
3 En s’inspirant des compositions en instructions élémentaires réalisées en 2 et en utilisant les familles
d’instructions vues au paragraphe , écrire un algorithme pour chacun des problèmes mathématiques suivant :
a. On connaît la courbe représentative d’une fonction f. On cherche à déterminer limage d’un réel x par f.
b. On dispose d’une gle graduée et d’un compas. On cherche à construire un triangle équilatéral dont le côté mesure c.
c. On cherche à déterminer si un triangle dont les côtés mesurent respectivement a, b et c est rectangle.
Activité (*)'!!)!'#$* !!
Une grenouille distraite chasse une sauterelle. La grenouille et la sauterelle se déplacent en ligne droite
en faisant des bonds simultanés mesurant respectivement 40 cm et 24 cm. Cette grenouille est capable
d’attraper avec sa langue tout insecte situé à moins de 10 cm devant elle, mais elle
est fort distraite et si elle dépasse la sauterelle, elle oublie son objectif. Ce jour-là, la
grenouille aperçoit la sauterelle à une certaine distance d comprise entre 2 m et 5 m. La
course s’engage. On souhaite écrire un algorithme qui, lorsqu’on lui donne la distance
initiale d répond à la question « la sauterelle réussira-t-elle à échapper à la grenouille ? »
Pour chacun des items ci-après, écrire la (ou les) instruction(s) élémentaire(s) correspondante(s).
1 Il faut demander au début l’avance de la sauterelle sur la grenouille.
Outils pour lalgorithmique 
2 Ensuite, on va placer dans des variables la position de la grenouille et celle de la sauterelle.
3 On crée également une variable qui contient la valeur 1 tant que la chasse continue et
la valeur 0 lorsque celle-ci doit s’arrêter.
4 Tant que la chasse continue, on fait avancer les animaux d’un saut, puis on regarde :
a. si la grenouille est à plus de 10 cm derrière la sauterelle, alors les 2 animaux refont un saut ;
b. sinon la chasse est  nie.
5 a. Si la grenouille est à moins de 10 cm derrière la sauterelle, alors elle mange la sauterelle.
b. Si la grenouille a dépassé la sauterelle, alors la sauterelle sest échappée.
6 Penser à donner la réponse à la question posée.
)'*#+' !
0 # ) $#(
Une variable est désignée par son nom (que le créateur de l’algorithme choisit) et
contient un objet (nombre, texte, tableau…) souvent appelé valeur de la variable.
A ecter une valeur à une variable consiste à « ranger » cette valeur (ou cet
objet) dans la variable considérée. Toute nouvelle a ectation remplace (et détruit)
la précédente.
Pour suivre l’évolution du contenu des variables d’un algorithme, on dresse
généralement un « tableau de suivi » dans lequel on indique le contenu de chaque
variable à chacune des étapes de l’algorithme :
abc À létape 4 , on a :
10// a = b + 2
2 2
2 + 2
4
a = 4
202/
302
- 7
442- 7
54- 2 - 7
64- 2 0
%$ #)!*!)' 
Casio
La séquence de touches :
P
permet d’a ecter la valeur 2 à la variable P :
TI
La séquence de touches :
P
permet d’a ecter la valeur 2 à la variable P :
Sur les deux calculatrices, on constate que la valeur 2 a bien été « retenue » puisque le calcul de P3# donne bien 6.
Cependant les calculatrices Casio et Texas Instrument ne permettent pas d’a ecter un texte à une variable. L’activité 2
du paragraphe , page 12, nest donc pas possible avec ces calculatrices.
Variable :
a, b, c : réel ;
Début
1 a = 0 ;
2 b = 2 ;
3 c = - 7 ;
4 a = b + 2 ;
5 b = b - 4 ;
6 c = b + 2 ;
Fin
Coup de pouce
4 b. Ne pas oublier
d’actualiser la variable
permettant de savoir
si la chasse est  nie,
sinon la boucle du 4
n’aura pas de  n.
Notation
On constate généralement
trois (ou quatre) façons de
noter l’a ectation d’une
valeur (par exemple 3) à une
variable (par exemple v) :
v : = 3
ou v3! ou v3
=
(dans les calculatrices,
on voit souvent : v3").
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !