%% %% 11 juin 2010 %% %% algorithmique.sty %% %% S O F T W A R E L I C E N S E %% ================================= %% %% The file pseudocode.sty %% is referred to as `the pseudocode package' %% or simply `the package'. %% %% The pseudocode package is copyright 1999 D.L. Kreher and D.R. Stinson. %% %% The pseudocode package and its drivers may be distributed and/or modified %% under the conditions of the LaTeX Project Public License, either version %% 1.3 of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2003/12/01 or later. %% %% The package has the LPPL maintenance status "maintained". %% %% Francisé par Alain Busser, Lycée Roland-Garros, Le Tampon %% %% end of software license %% %% %% DESCRIPTION: %% algorithmique.sty est un fichier de style LaTeX, comprenant: %% l'environment pseudocode traduit en Français %% %% INSTALLATION: %% À placer là où LaTeX cherche des fichiers. %% %% DOCUMENTATION: %% Voir pseudocode.tex. %% %% COPYING: %% Copying of part or all of this file is allowed under the following %% conditions only: %% (1) You may freely distribute unchanged copies of the file. Please %% include the documentation when you do so. %% (2) You may modify a renamed copy of the file, but only for personal %% use or use within an organization. %% (3) You may copy fragments from the file, for personal use or for %% distribution, as long as credit is given where credit is due. %% %% You are NOT ALLOWED to take money for the distribution or use of %% this file or modified versions or fragments thereof, except for %% a nominal charge for copying etc. %% %% %% CODE: \typeout{** } \typeout{** Document Style `algorithmique' } \typeout{** by D.L. Kreher and D.R. Stinson } \typeout{** Alain Busser } % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{algorithmique} % \if@twocolumn \newlength{\pcode@width} \setlength{\pcode@width}{\columnwidth} \addtolength{\pcode@width}{-40pt} \else \newlength{\pcode@width} \setlength{\pcode@width}{\textwidth} \addtolength{\pcode@width}{-40pt} \fi % \RequirePackage{fancybox} \RequirePackage{ifthen} % \newcommand{\pcode@AF}[1]{\mbox{\textsc{#1}}} % choix de la police \newcounter{pseudocode}[section] \newcounter{pseudonum} \renewcommand{\thepseudonum}{\arabic{pseudonum}} \newcommand{\pcode@tab}[1]{\hspace*{#1ex}} \renewcommand{\thepseudocode}{\thesection.\arabic{pseudocode}} % \newboolean{pcode@plain} \newboolean{pcode@ruled} \newboolean{pcode@disp} \newboolean{pcode@shad} \newboolean{pcode@dbox} \newboolean{pcode@obox} \newboolean{pcode@Obox} \newboolean{pcode@fbox} % \newenvironment{pseudocode}[3][plain] {% \refstepcounter{pseudocode}% \ifthenelse{\equal{#1}{plain}}{\setboolean{pcode@plain}{true}}{\setboolean{pcode@plain}{false}}% \ifthenelse{\equal{#1}{ruled}}{\setboolean{pcode@ruled}{true}}{\setboolean{pcode@ruled}{false}}% \ifthenelse{\equal{#1}{display}}{\setboolean{pcode@disp}{true}}{\setboolean{pcode@disp}{false}}% \ifthenelse{\equal{#1}{shadowbox}}{\setboolean{pcode@shad}{true}}{\setboolean{pcode@shad}{false}}% \ifthenelse{\equal{#1}{doublebox}}{\setboolean{pcode@dbox}{true}}{\setboolean{pcode@dbox}{false}}% \ifthenelse{\equal{#1}{ovalbox}}{\setboolean{pcode@obox}{true}}{\setboolean{pcode@obox}{false}}% \ifthenelse{\equal{#1}{Ovalbox}}{\setboolean{pcode@Obox}{true}}{\setboolean{pcode@Obox}{false}}% \ifthenelse{\equal{#1}{framebox}}{\setboolean{pcode@fbox}{true}}{\setboolean{pcode@fbox}{false}}% \setcounter{pseudonum}{0}% \ifthenelse{\boolean{pcode@disp}}% {% \noindent\begin{math}% }% {% \begin{Sbox}% \begin{minipage}{\pcode@width}% \ifthenelse{\boolean{pcode@ruled}} { \noindent\rule{\pcode@width}{1pt}\hfill\\ {\bfseries Algorithme \thepseudocode:\pcode@tab{1}}\pcode@AF{#2}($#3$)\\ \noindent\rule{\pcode@width}{1pt}\hfill\\[1ex] } { {\bfseries Algorithme \thepseudocode:\pcode@tab{1}}\pcode@AF{#2}($#3$)\\[2ex] } \noindent\begin{math}\begin{array}{@{\pcode@tab{1}}lr@{}}% }{}% }% {% \ifthenelse{\boolean{pcode@disp}}% {% \end{math} }% {% \ifthenelse{\boolean{pcode@ruled}} { \end{array}\end{math}\\[1ex] \noindent\rule{\pcode@width}{1pt}\hfill \end{minipage}\end{Sbox}\bigskip\noindent% } {\end{array}\end{math}\end{minipage}\end{Sbox}\bigskip\noindent}% \ifthenelse{\boolean{pcode@plain}}{\TheSbox}{}% \ifthenelse{\boolean{pcode@ruled}}{\TheSbox}{}% \ifthenelse{\boolean{pcode@shad}}{\shadowbox{\TheSbox}}{}% \ifthenelse{\boolean{pcode@dbox}}{\doublebox{\TheSbox}}{}% \ifthenelse{\boolean{pcode@obox}}{\cornersize*{4ex}\ovalbox{\TheSbox}}{}% \ifthenelse{\boolean{pcode@Obox}}{\cornersize*{4ex}\Ovalbox{\TheSbox}}{}% \ifthenelse{\boolean{pcode@fbox}}{\fbox{\TheSbox}}{}% \bigskip% }% }% % \newcommand{\STMTNUM}[2]{&\refstepcounter{pseudonum}\hspace*{#1}% \mbox{(\thepseudonum)\label{#2}}} \newcommand{\BOOL}[1]{\mbox{\bfseries variables booléennes }\pcode@tab{1}#1} \newcommand{\INT}[1]{\mbox{\bfseries variables entières }\pcode@tab{1}#1} \newcommand{\ENT}[1]{\mbox{\bfseries variables entières }\pcode@tab{1}#1} \newcommand{\FLOAT}[1]{\mbox{\bfseries variables réelles }\pcode@tab{1}#1} \newcommand{\REAL}[1]{\mbox{\bfseries variables réelles }\pcode@tab{1}#1} \newcommand{\REEL}[1]{\mbox{\bfseries variables réelles }\pcode@tab{1}#1} \newcommand{\STRING}[1]{\mbox{\bfseries chaînes de caractères }\pcode@tab{1}#1} \newcommand{\CHAINE}[1]{\mbox{\bfseries chaînes de caractères }\pcode@tab{1}#1} \newcommand{\ARRAY}[1]{\mbox{\bfseries tableaux }\pcode@tab{1}#1} \newcommand{\TABLEAU}[1]{\mbox{\bfseries tableaux }\pcode@tab{1}#1} \newcommand{\LOCAL}[1]{\mbox{\bfseries variables locales }\pcode@tab{1}#1} \newcommand{\GLOBAL}[1]{\mbox{\bfseries variables globales }\pcode@tab{1}#1} \newcommand{\EXTERNAL}[1]{\mbox{\bfseries variables externes }\pcode@tab{1}#1} \newcommand{\EXTERNE}[1]{\mbox{\bfseries variables externes }\pcode@tab{1}#1} \newcommand{\COMMENT}[1]% {% \vspace*{1ex}% \mbox{\bfseries Commentaire: }\pcode@tab{.5} \mbox{#1} } \newcommand{\BEGIN}{\left\{\begin{array}{@{}lr@{}}} \newcommand{\DEBUT}{\left\{\begin{array}{@{}lr@{}}} \newcommand{\END}{\end{array}\right.} \newcommand{\FIN}{\end{array}\right.} \newcommand{\PROCEDURE}[2]% {% \mbox{\bfseries procédure }\pcode@AF{#1}(\ensuremath{#2})\\% \begin{array}{@{\pcode@tab{1}}l@{}}% } \newcommand{\ENDPROCEDURE}{\vspace*{2ex}\end{array}\\ } \newcommand{\FINPROCEDURE}{\vspace*{2ex}\end{array}\\ } \newcommand{\CALL}[2]{\pcode@AF{#1}(#2)} % \newcommand{\APPEL}[2]{\pcode@AF{#1}(#2)} % \newcommand{\MAIN}{\mbox{\bfseries principal }\\\begin{array}{@{\pcode@tab{1}}lr@{}}} \newcommand{\ENDMAIN}{\end{array}} \newcommand{\RETURN}[1]{\ifthenelse{\equal{#1}{} }% {\mbox{\bfseries fini }}% {\mbox{\bfseries retourne }(#1)}} \newcommand{\RETOURNE}[1]{\ifthenelse{\equal{#1}{} }% {\mbox{\bfseries fini }}% {\mbox{\bfseries retourne }(#1)}} \newcommand{\INPUT}[1]{\mbox{\bfseries Entrer }(#1)} \newcommand{\ENTRER}[1]{\mbox{\bfseries Entrer }(#1)} \newcommand{\OUTPUT}[1]{\mbox{\bfseries Afficher }(#1)} \newcommand{\AFF}[1]{\mbox{\bfseries Afficher }(#1)} \newcommand{\EXIT}{\mbox{\bfseries quitte }} \newcommand{\BREAK}{\mbox{\bfseries rompt }} \newcommand{\IF}{\mbox{\bfseries si }} \newcommand{\SI}{\mbox{\bfseries si }} \newcommand{\LET}{\mbox{\bfseries soit }} \newcommand{\SOIT}{\mbox{\bfseries soit }} \newcommand{\THEN}{\\\pcode@tab{1}\mbox{ \bfseries alors }} \newcommand{\ALORS}{\\\pcode@tab{1}\mbox{ \bfseries alors }} \newcommand{\ELSE}{\\\pcode@tab{1}\mbox{ \bfseries sinon }} \newcommand{\SINON}{\\\pcode@tab{1}\mbox{ \bfseries sinon }} \newcommand{\ELSEIF}{\\\pcode@tab{1}\mbox{ \bfseries sinon, si }} \newcommand{\SINONSI}{\\\pcode@tab{1}\mbox{ \bfseries sinon, si }} \newcommand{\FOREACH}{\mbox{\bfseries pour chaque }} \newcommand{\POURTOUT}{\mbox{\bfseries pour tout }} \newcommand{\FORALL}{\mbox{\bfseries pour tout }} \newcommand{\FOR}{\mbox{\bfseries pour }} \newcommand{\POUR}{\mbox{\bfseries pour }} \newcommand{\TO}{\mbox{ \bfseries jusqu'à }} \newcommand{\JUSQUE}{\mbox{ \bfseries jusqu'à }} \newcommand{\DOWNTO}{\mbox{ \bfseries descendant jusqu'à }} \newcommand{\CASE}{\mbox{\bfseries selon }} \newcommand{\SELON}{\mbox{\bfseries selon }} \newcommand{\OF}{\\\pcode@tab{1}\mbox{ \bfseries parmi }\BEGIN} \newcommand{\PARMI}{\\\pcode@tab{1}\mbox{ \bfseries parmi }\BEGIN} \newcommand{\ENDCASE}{\END} \newcommand{\FINSELON}{\END} \newcommand{\AND}{\mbox{ \bfseries et }} \newcommand{\ET}{\mbox{ \bfseries et }} \newcommand{\OR}{\mbox{ \bfseries ou }} \newcommand{\OU}{\mbox{ \bfseries ou }} \newcommand{\NOT}{\mbox{ \bfseries non }} \newcommand{\NON}{\mbox{ \bfseries non }} \newcommand{\SUCCESS}{\mbox{ \bfseries succès }} \newcommand{\SUCCES}{\mbox{ \bfseries succès }} \newcommand{\FAIL}{\mbox{ \bfseries échec }} \newcommand{\ECHEC}{\mbox{ \bfseries échec }} \newcommand{\TRUE}{\mbox{ \bfseries vrai }} \newcommand{\VRAI}{\mbox{ \bfseries vrai }} \newcommand{\FALSE}{\mbox{ \bfseries faux }} \newcommand{\FAUX}{\mbox{ \bfseries faux }} \newcommand{\GOTO}{\mbox{\bfseries aller à }} \newcommand{\DO}{\\\pcode@tab{1}\mbox{ \bfseries faire }} \newcommand{\FAIRE}{\\\pcode@tab{1}\mbox{ \bfseries faire }} \newcommand{\WHILE}{\mbox{\bfseries tant que }} \newcommand{\TANTQUE}{\mbox{\bfseries tant que }} \newcommand{\REPEAT}{\mbox{\bfseries répéter }\\\begin{array}{@{\pcode@tab{1}}lr@{}}} \newcommand{\REPETE}{\mbox{\bfseries répéter }\\\begin{array}{@{\pcode@tab{1}}lr@{}}} \newcommand{\UNTIL}{\end{array}\\\mbox{\bfseries jusqu'à }} \newcommand{\JUSQUA}{\end{array}\\\mbox{\bfseries jusqu'à }} \newcommand{\GETS}{\leftarrow} \newcommand{\PREND}{\leftarrow} \endinput %% END pseudodcode.sty