1
Algorithmes (1)
Quelques concepts de base
Objectifs :
- Prendre conscience de démarches algorithmiques, description de certaines procédures algorithmiques (la
« pensée algorithmique »)
- Faire comprendre la logique de la rédaction d’un algorithme simple
- Traduire des programmes de calcul simples en algorithmes
I. Définition
1°) Qu’est-ce qu’un algorithme ?
Un algorithme est une « recette » qui permet d’écrire un résultat.
Un algorithme est un enchaînement d’étapes ou d’instructions à utiliser dans un certain ordre et dont la
réalisation va permettre la résolution d’un problème donné.
2°) Exemple : calcul de l’hypoténuse d’un triangle rectangle connaissant les longueurs des deux côtés de
l’angle droit
On va utiliser le théorème de Pythagore.
On va rédiger un programme de calcul (qui n’est pas à proprement parler un algorithme).
On décortique toutes les étapes.
On calcule le carré d’un côté de l’angle droit.
On calcule le carré de l’autre côté de l’angle droit.
On calcule la somme des deux (on additionne les deux).
On prend la racine carrée du résultat.
On obtient la longueur de l’hypoténuse.
N.B. : Les mots « côtés » et « hypoténuse » sont pris au sens de « longueur de côtés » et « longueur de
l’hypoténuse ».
3°) Remarque
Un algorithme doit être lisible par tous et après, il est codé en langage informatique (cf. cours Algorithmes
(2)) afin qu’une machine (calculatrice ou ordinateur) puisse l’exécuter.
Aujourd’hui, les algorithmes prennent place dans tous les domaines de l’activité mathématique comme nous le
verrons cette année. 2
II. Qu’est-ce qui constitue un algorithme ?
1°) Structure générale d’un algorithme
- Un algorithme a un début et une fin.
Il est constitué d’un nombre fini d’étapes.
Il faut signaler le début et la fin.
- Les différentes étapes vont agir et on va appeler ces étapes des instructions.
On effectue un calcul.
On entre une donnée.
On lit le contenu d’une variable.
2°) Définition dune variable numérique dans un algorithme
Un algorithme fait intervenir un certain nombre de variables.
Il peut y avoir autant de variables que l’on veut mais dans un algorithme, il y a toujours au moins une variable.
Pendant l’exécution d’un algorithme, on a besoin de stocker des données.
Pour cela, on a besoin de variables.
On attribue un nom à chaque variable.
Une variable est une boîte repérée par un nom (une lettre), qui va contenir une information.
3°) Remarques
Le contenu d’une variable en informatique peut être modifiée pendant l’exécution de l’algorithme.
Dans l’écriture d’un algorithme, il est utile de préciser dès le début le nom des variables que l’on va utiliser en
indiquant leur genre. C’est l’étape que l’on appelle déclaration des variables.
La notion de variable (informatique) est différente de celle de la notion de variable en mathématique (pour les
fonctions). La différence est que dans un algorithme, une variable peut évoluer au fur et à mesure du
déroulement de l’algorithme.
III. Comment se présente un algorithme
Déclaration des variables
a, nombre réel
b, nombre entier
Début
….
Instructions
….
Fin
3
IV. Les différents types d’instructions dans un algorithme
- Saisir : instruction qui permet à l’utilisateur de donner une valeur
- Affecter : instruction qui permet à l’algorithme d’attribuer une valeur à une variable
- Afficher : instruction qui affiche lesultat
V. Exemple qui permet de comprendre les paragraphes précédents
Un vendeur fait une facture à un client qui a acheté le même article en plusieurs exemplaires.
P : quantité d’articles achetés
Q : prix unitaire
Déclaration des variables :
P, réel positif
Q, réel positif
R, réel positif
Début
Instructions :
Saisir P
Saisir Q
Affecter à R la valeur P Q
Afficher R
Fin
On rédigera plutôt l’algorithme en langage naturel selon le modèle suivant :
Variables :
P, Q, R, réels positifs
Entrées :
Saisir P
Saisir Q
Traitement :
Affecter à R la valeur P Q
Sortie :
Afficher R
4
On notera dans cet exemple les grandes étapes :
- déclaration des variables précisant leurs types (cette étape sera parfois omise par la suite)
- entrée(s)
- traitement
- sortie(s).
Généralement, ces étapes seront toujours respectées. Elles permettent de structurer l’algorithme et de faciliter sa
compréhension.
D’autres règles seront étudiées dans la suite du cours.
Un commentaire (emprunté à la revue Chantiers 154-155) :
Nous avons respecté le code dedaction imposé par le programme.
On peut cependant émettre une petite critique concernant cette rédaction.
En effet, les instructions d’entrée (Saisir ou Lire) ou de sortie (Afficher) semblent faire référence à une
machine et à un utilisateur.
Il n’y a pas de raison dans la plupart des cas que nous étudierons d’introduire dans l’écriture des algorithmes
du vocabulaire lié à l’utilisation d’une machine (instructions dites d’entrées / sorties), qui peuvent entretenir
dans l’esprit des élèves une confusion entre algorithme « idéal » et programme concret.
Une proposition de meilleure rédaction (qui ne sera cependant pas retenue pour nous) :
Variables :
P, Q, R, réels positifs
Entrées :
P, Q
Traitement :
Affecter à R la valeur P Q
Sortie :
R
Cependant, n’oublions pas qu’un algorithme est en général destiné à être programmé, ce que nous ferons dans
le chapitre suivant sur des exemples très simples.
II ne faudra alors pas confondre l’« algorithme » (rédigé en langage naturel) et le « programme » (rédigé en
dans un certain langage de programmation).
L’intérêt de notredaction en langage naturel est de pouvoir s’adapter à tout type de langage de
programmation.
5
VI. Comment présenter un algorithme
1°) Organigramme
Donne une bonne image mentale de l’algorithme quand celui-ci n’est pas trop compliqué.
Il y a quelques conventions à respecter.
Voir exercices et chapitre suivant.
2°) Rédaction en langage naturel
Comme mentionné ci-dessus, la rédaction respecte certaines règles.
Tout d’abord, la structure générale est marquée par les rubriques : Entrée, Traitement, Sortie.
Ensuite, on notera que :
- les instructions constituant l’entrée (ou les entrées) sont rédigées avec le verbe « Saisir » ou « Lire » ;
- les instructions constituant la sortie (ou les sorties) sont rédigées avec le verbe « Afficher ».
Nous avons mentionné ci-dessus les critiques que l’on peut émettre sur ce mode de rédaction.
Nous nous y confirmerons cependant dans les chapitres suivants.
VII. Historique
1°) La pensée algorithmique
Depuis l’origine, les mathématiciens ont cherché à décrire des méthodes applicables dans tous les cas.
De telles démarches algorithmiques sont enseignées depuis l’école primaire pour résoudre un certain nombre de
problèmes.
2°) Origine du mot « algorithme »
Le mot « algorithme » vient du nom du nom d’un mathématicien arabe Al-Khawarizmi.
Al-Khawarizmi, né vers 783, originaire de Khiva dans la région du Khwarezm qui lui a donné son nom, mort
vers 850 à Bagdad, est un mathématicien, géographe, astrologue et astronome musulman perse dont les écrits,
digés en langue arabe, ont permis l’introduction de l’algèbre en Europe.
On pourra chercher d’autres renseignements sur Wikipedia.
3°) L’algorithme d’Euclide
Cet algorithme célèbre a été étudié au collège pour déterminer le PGCD de deux entiers naturels.
Cet algorithme, qui n’est pas très simple, sera revu plus tard lors de l’étude des boucles « Tantque ».
4°) Expansion de l’algorithmique
Avec les développements de l’informatique, les algorithmes sont partout présents aujourd’hui.
6
VIII. Utilisation de listes et de nombres aléatoires
1°) Utilisation de listes
Dans un algorithme, on doit parfois saisir plusieurs nombres.
L’utilisation de listes peut alors être commode, parfois même indispensable.
Les nombres d’une liste L contenant n valeurs sont notés L(1), L(2), … L(n) ou parfois L[1], L[2], … L[n].
On appelle dimension d’une liste le nombre d’éléments que l’on peut mettre dans cette liste.
On peut définir une liste comme un tableau horizontal (il faut cependant noter que sur une calculatrice une liste
est représentée en tableau, verticalement).
2°) Utilisation de nombres aléatoires
Un algorithme, lorsqu’il s’agit de simuler une expérience aléatoire, fait intervenir des nombres aléatoires,
notamment des nombres aléatoires dans [0 ; 1[ (touche Random).
En fait, il s’agit de nombres pseudo-aléatoires, les calculatrices ou les logiciels étant munis de programmes
permettant de reconstituer une illusion de hasard (« fonction de hasard »).
Nous verrons plus tard comment il est possible générer des entiers aléatoires à partir de nombres au hasard dans
[0 ; 1[.
7
Exercice guidé
(vocabulaire-compréhension)
On considère l’algorithme suivant, rédigé en langage naturel.
Variables : x, a, b, c réels
Entrée :
Saisir x
Traitement :
a prend la valeur
2
x
b prend la valeur 5x
c prend la valeur a b + 2
Sortie :
Afficher c
Recopier et compléter les phrases suivantes :
x, a, b, c sont les … de l’algorithme.
« Saisir x », « a prend la valeur
2
x
», « b prend la valeur 5x », « c prend la valeur ab + 2 », « Afficher c »
sont les … de l’algorithme.
Lorsque l’on rentre le nombre 3 en entrée, on a successivement :
a prend la valeur … .
b prend la valeur … .
c prend la valeur … .
Conclusion : Lorsque l’utilisateur entre la valeur x = 3, l’algorithme affiche en sortie le nombre … .
8
Corrigé
Cet exercice a pour objectif de comprendre le fonctionnement d’un algorithme simple « à la main ».
Variables : x, a, b, c réels
Entrée :
Saisir x
Traitement :
a prend la valeur
2
x
b prend la valeur 5x
c prend la valeur a b + 2
Sortie :
Afficher c
x, a, b, c sont les variables de l’algorithme.
« Saisir x », « a prend la valeur
2
x
», « b prend la valeur 5x », « c prend la valeur ab + 2 », « Afficher c »
sont les instructions de l’algorithme.
Lorsque l’on rentre le nombre 3 en entrée, on a successivement :
a prend la valeur 9.
b prend la valeur 15.
c prend la valeur 9 – 15 + 2 = – 4.
Conclusion : Lorsque l’utilisateur entre la valeur x = 3, l’algorithme affiche en sortie le nombre – 4.
9
Synthèse :
savoirs et savoirs-faire du chapitre
- Connaître la définition d’un algorithme : suite finie ordonnée dinstructions
Un algorithme fait intervenir des variables, en nombre fini.
Un algorithme a un début et une fin.
- Retenir la notion de variable informatique (savoir que le mot « variable » pour les algorithmes na pas le
même sens que pour les fonctions ou pour les équations, quoique le terme de variable ne soit pas le terme
correct dans ce cas ; le terme correct pour les équations est celui d’inconnue).
On peut voir une variable informatique comme une boîte ou un récipient qui sert à stocker des valeurs et dont le
contenu évolue au cours du déroulement de l’algorithme.
Lorsqu’une variable change de valeur, la valeur précédente est effacée.
La valeur d’une variable qui s’affiche en sortie correspond toujours à la dernière valeur dans le traitement.
Certaines variables apparaissent seulement à l’intérieur de l’algorithme.
Elles n’apparaissent ni en entrée, ni en sortie.
On dit que ce sont des variables locales ou internes.
Cette année, nous travaillerons surtout avec des variables numériques.
- Retenir l’architecture générale dun algorithme : entrée(s), traitement, sortie.
- Connaître les instructions élémentaires : lire (ou saisir), affecter la valeur, afficher.
On rédige les instructions dans un langage codifié permettant de programmer facilement sur tout type de
machine.
- Savoir comment rédiger en langage naturel une instruction d’affectation : « x prend la valeur … » ou
« affecter à x la valeur … »
On peut affecter à une variable un nombre ou une expression définie à partir d’autres variables.
- Savoir lire et comprendre un algorithme de calcul simple : savoir repérer les variables ; savoir repérer les
instructions ; savoir interpréter le résultat obtenu en sortie.
- Savoir faire tourner « à la main » un algorithme simple rédigé en langage naturel ; en particulier, savoir
utiliser un tableau de suivi des variables de l’algorithme. Nous verrons que cela sera très utile dans des
structures algorithmiques plus complexes.
- Savoir rédiger en langage naturel un algorithme simple correspondant à un programme de calcul.
- Parfois, on « déclare » les variables au début de l’algorithme c’est-à-dire que l’on indique leur type.
Déclaration des variables :
- dans un algorithme écrit : en général, on le fait toujours au début.
- dans un programme, on ne le fait pas toujours ; cela dépend du langage de programmation.
10
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!