Ceci est une ancienne révision du document !


\question{Comment mettre en page des algorithmes ou des programmes~?}%12.20

\reponse Le package \pack{algorithm2e} permet comme son nom l'indique d'écrire des algorithmes. Il a l'avantage d'avoir une présentation souple et d'être facilement extensible. En effet, les petites instructions conditionnelles peuvent être présentées sur une ligne et l'on peut facilement ajouter un filet sur le côté. Il dispose également de commandes telles que \cmd{SetKw} qui permettent de rajouter facilement des mots-clés. Vous pouvez le trouver sur \ctan{macros/latex/contrib/algorithm2e/} puis essayer l'exemple~\vref{ex=algo2e}.

\begin{docexemple}{Un algorithme écrit avec \pack{algorithm2e}% \label{ex=algo2e}} \documentclass[french]{article} \usepackage{babel} \usepackage[ruled,lined]{algorithm2e} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \begin{document} \begin{algorithm}

\caption{Comment utiliser \LaTeX}
\Entree{un utilisateur quelconque}
\Sortie{un utilisateur connaissant \LaTeX}
initialisation \;
\Tq{pas à la fin de la FAQ}{
  l'utilisateur lit la section courante \;
  \eSi{comprise}{
    aller à la section suivante \;
    la section courante devient cette dernière \;
  }{
    revenir au début de cette section \;
  }
}

\end{algorithm} \end{document} \end{docexemple}

\reponse Les packages \pack{algorithm} et \pack{algorithmic} disponibles sur \ctan{macros/latex/contrib/algorithms/}, ont été spécifiquement conçus pour mettre en forme des algorithmes. \pack{algorithmic} sert \`a décrire les algorithmes et \pack{algorithm} fournit un environnement flottant semblable à \env{figure} ou \env{table} (cf. le paragraphe \vref{paragraphe=flottant}). L'exemple \vref{ex=algorithm} en montre une utilisation possible.

\begin{docexemple}[120pt,430pt,100pt,120pt]{Utilisation d'\pack{algorithm}% \label{ex=algorithm}} \documentclass{article} \usepackage{algorithm,algorithmic} \begin{document} \begin{algorithm} \caption{Un joli algorithme} \begin{algorithmic} \REQUIRE{habiter pr\`es des montagnes} \REPEAT \IF{il fait beau}

\STATE faire une randonn\'ee

\ELSE[il fait moche]

\STATE r\'esoudre P $\neq$ NP

\ENDIF \UNTIL{foulure de cheville} \ENSURE{bobo} \end{algorithmic} \end{algorithm} \end{document} \end{docexemple}

\reponse Il existe aussi le package \pack{alg} disponible sur \ctan{macros/latex/contrib/alg/}.

\reponse Le package \pack{newalg} est également disponible sur \CTAN à l'adresse \ctan{macros/latex/contrib/newalg/}. Il propose un environnement \env{algorithm} qui par défaut utilise le mode mathématique et l'environnement \env{array} pour les alignements. La commande \cmd{text} est également disponible. Le package gère les instructions : if-then-else, for, while, repeat, switch et propose un certain nombre de macros telles que call, error, algkey, return, nil. L'exemple~\vref{ex=newalg} en donne une illustration.

\begin{docexemple}[130pt,600pt,220pt,120pt]{Utilisation de \pack{newalg}% \label{ex=newalg}} \documentclass{article} \usepackage{newalg} \begin{document} \begin{algorithm}{StrictSup}{x, y}

\begin{IF}{x > y}
  \RETURN x
\ELSE
  \ERROR{x leq y}
\end{IF}

\end{algorithm} \end{document} \end{docexemple}

\reponse Le package \pack{program} (disponible sur \ctan{macros/latex/contrib/program/}) permet de mettre en relief des mots clés, d'utiliser des mathématiques dans des algorithmes, etc. Voir l'exemple \vref{ex=program}.

\begin{docexemple}[130pt,460pt,220pt,140pt]{Utilisation de \pack{program}% \label{ex=program}} \documentclass{article} \usepackage{program} \begin{document} \begin{program} \mbox{Exponentiation rapide :}
\BEGIN

\FOR i:=1 \TO 10 \STEP 1 \DO
   |afficher|(|exp|(2,i)); \\ |newline|() \OD

\WHERE \FUNCT |exp|(x,n) \BODY

        \EXP z:=1;
             \WHILE n \ne 0 \DO 
                \WHILE |pair|(n) \DO
                   n:=n/2; x:=x*x \OD;
                n:=n-1; z:=z*x \OD;
             z \ENDEXP \ENDFUNCT

\END\label{fin} \end{program} \end{document} \end{docexemple}

\begin{Atn}

\pack{program} doit être chargé après \pack{amsmath} lors d'une
utilisation conjointe de ces deux packages.

\end{Atn}

\reponse \pack{programs} (\ctan{macros/latex/contrib/progkeys/}) permet lui aussi d'utiliser des mathématiques et de mettre en gras des mots clés.

\endinput

3_domaines_specialises/informatique/mettre_en_page_des_algorithmes_ou_des_programmes.1476603061.txt.gz · Dernière modification: 2016/10/16 09:31 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0