Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Un paquet LaTeX pour l’algorithmique

Cet article est une réponse à l’appel à contributions n° 1
Il existe des paquets LaTeX pour écrire en « pseudocode » mais ils sont en anglais. En voici un traduit en français, avec quelques exemples

Article mis en ligne le 2 août 2010
dernière modification le 25 avril 2021

par Alain Busser

Pour rajouter à LaTeX des extensions, on installe un « paquet », alias « feuille de style », possédant l’extension « sty ». Celui-ci s’appelle « algorithmique.sty » et il est à placer dans un dossier où se trouvent déjà beaucoup de fichiers ayant cette extension.

Le fichier zip téléchargeable en bas de page contient les fichiers suivants :

  • le paquet algorithmique.sty qui est l’extension LaTeX proprement dite. Il est distribué selon les termes de la LaTeX Public Project License dont le texte est lisible ici.
  • un fichier d’exemple utilisant ce paquet, au format LaTeX bien sûr, et contenant le mode d’emploi du paquet.
  • la version compilée du fichier précédent, au format pdf, comprenant la liste des instructions du paquet algorithmique, et dont quelques extraits et compléments figurent ci-dessous.

utilisation

Pour utiliser le paquet « algorithmique », il faut dire à LaTeX qu’on utilise le paquet « algorithmique » (si, si !), ce qui s’écrit dans le préambule

\usepackage{algorithmique}

Ensuite, pour écrire un algorithme (dans le document, entre « begin(document) » et « end(document »), par exemple dans le sujet de contrôle...), on place un

\begin{pseudocode}

avant d’écrire l’algorithme, puis, dès qu’on a fini, et qu’on veut à nouveau taper du texte « normal »,

\end{pseudocode}

Cependant, au début, il faut entrer une option (entre crochet) et le nom de l’algorithme ainsi que ses variables. L’option est égale à une des valeurs suivantes :

  • shadowbox
  • doublebox
  • ovalbox
  • Ovalbox
  • framebox
  • plain
  • ruled

et si on ne veut pas que l’algorithme soit numéroté et nommé, on met « display » comme option.

affectation

L’affectation est représentée par le mot-clé « PREND » précédé d’un « backslash » (puisque c’est un mot-clé et que c’est ainsi que les mots-clés sont notés en LaTeX). Exemple, avec un programme de calcul :

\begin{pseudocode}[ovalbox]{mystère}{a,b,c}
a \PREND a+b\\
c \PREND a+\sqrt{b}\\
b \PREND a-b
\end{pseudocode}\\

L’effet produit est le suivant :

Bien entendu, on peut initialiser les variables par des choses comme

a \PREND 2

Il est également possible d’insérer des commentaires (comme « quelles sont les valeurs finales de a, b et c ? » ou « que calcule cet algorithme ? ») par

\COMMENT{Ceci n'est pas un commentaire (Magritte)}

On peut aussi préciser le type des variables avec des choses comme

\ENT n,p\\

Les types sont codés par

type codage
booléen BOOL
entier ENT
réel REEL
texte CHAINE

fonctions et tests

Du point de vue de l’algorithmique, une fonction est une procédure admettant une (ou plusieurs) valeur en entrée (l’antécédent) et retournant une valeur (l’image).

Par exemple, la fonction « valeur absolue » peut s’écrire algorithmiquement par

\begin{pseudocode}[ovalbox]{valeur absolue}{x}
\REEL y\\
\SI x \geqslant 0 \\
y \PREND x
\SINON\\
y \PREND -x\\
\RETOURNE{y}
\end{pseudocode}\\

La compilation donne ceci :

Cet exemple montre aussi comment on écrit des tests (avec les formules écrites en LaTeX).

boucles

Boucles à nombre prédéfini d’exécutions

Le calcul de la moyenne de 100 nombres pseudo-aléatoires (tous compris entre 0 et 1 peut s’écrire (en admettant qu’on a déjà une instruction « alea() » qui donne les nombres aléatoires) :

\begin{pseudocode}[shadowbox]{Moyenne}{ }
\COMMENT{Calcul de la moyenne de 100 nombres aléatoires}\\
\ENT i\\
\REEL r,s\\
s \PREND 0\\
\POUR i \PREND 1 \JUSQUE 100 \FAIRE \\
\DEBUT
r \PREND alea()\\
s \PREND s+r\\
\FIN \\
s \PREND \dfrac{s}{100}\\
\RETURN{s}
\end{pseudocode}

La compilation produit ceci (on remarque le cadre ombré obtenu avec « shadowbox ») :

On peut imbriquer des boucles à l’intérieur d’autres boucles, au risque toutefois de quitter le programme de Seconde...


Boucles à condition de sortie

Voici le neuvième exercice du Rallye Mathématique 2010 de la Réunion (à comparer avec l’original, lui aussi tapé en LaTeX, en terme de mise en page) :

\begin{pseudocode}[shadowbox]{Exercice 9}{ }
\COMMENT{Algorithme, que fais-tu?}\\
\ENTRER A\\
\ENTRER B\\
\TANTQUE A \neq B \\
\DEBUT
\SI A>B \\
A \PREND A-B
\SINON \\
B \PREND B-A\\
\FIN \\
\AFF{A}
\end{pseudocode}\\

Une fois compilé, on obtient ceci (à comparer donc avec l’original) :

Pour voir d’autres instructions (hors programme), consulter le pdf ci-joint.