Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
4_domaines_specialises:informatique:ecrire_du_pseudocode [2021/11/09 17:31] – Fusion avec la page "4_domaines_specialises/informatique/ecrire_du_pseudocode2". jejust4_domaines_specialises:informatique:ecrire_du_pseudocode [2022/07/12 15:08] (Version actuelle) – [Comment écrire des algorithmes en pseudocode?] Formulation améliorée dbitouze
Ligne 23: Ligne 23:
 Aucune de ces solutions n'est parfaite et universelle. Aucune de ces solutions n'est parfaite et universelle.
 Pour choisir entre elles, demandez-vous: Pour choisir entre elles, demandez-vous:
-  * quel style de sortie préférez-vous? +  * quel style de sortie vous préférez-vous ; 
-  * dans quelle mesure avez-vous besoin d'étendre ou de modifier l'ensemble des mots-clefs prédéfinis? +  * dans quelle mesure avez-vous besoin d'étendre ou de modifier l'ensemble des mots-clefs prédéfinis ; 
-  * avez-vous besoin que les algorithmes flottent comme des figures ou des tableaux?+  * si vous avezvous besoin que les algorithmes flottent comme des figures ou des tableaux.
 </note> </note>
  
Ligne 35: Ligne 35:
 et diverses structures itératives et conditionnelles. Ces primitives peuvent facilement être redéfinies pour produire et diverses structures itératives et conditionnelles. Ces primitives peuvent facilement être redéfinies pour produire
 une sortie différente. Cependant, il n'y a pas de support pour ajouter de nouvelles primitives. une sortie différente. Cependant, il n'y a pas de support pour ajouter de nouvelles primitives.
-La mise en forme du pseudocode lui-même est effectuée par l'extension [[ctanpkg>algorithms|algorithmic]] ; + 
-l'extension [[ctanpkg>algorithms|algorithms]] utilise, elle, les fonctionnalités de l'extension [[ctanpkg>float]]+La mise en forme du pseudocode à proprement parler est effectuée par l'extension [[ctanpkg>algorithms|algorithmic]]; 
 +l'extension [[ctanpkg>algorithms|algorithms]] utilise, elle, utilise les fonctionnalités de l'extension [[ctanpkg>float]]
 pour numéroter les algorithmes de manière séquentielle, permettre aux algorithmes de pour numéroter les algorithmes de manière séquentielle, permettre aux algorithmes de
 [[3_composition:flottants:pourquoi_faire_flotter_ses_figures_et_tableaux|flotter]] comme des figures ou des tableaux, [[3_composition:flottants:pourquoi_faire_flotter_ses_figures_et_tableaux|flotter]] comme des figures ou des tableaux,
 et produire « Liste des algorithmes » en début de document. et produire « Liste des algorithmes » en début de document.
 +
 +Voici un exemple d'utilisation:
 +
 +<code latex>
 +\documentclass{article}
 +  \usepackage{algorithm,algorithmic}
 +
 +\begin{document}
 +\begin{algorithm}
 +\caption{Un joli algorithme}
 +\begin{algorithmic}
 +\REQUIRE{habiter près des montagnes}
 +\REPEAT
 + \IF{il fait beau}
 +  \STATE faire une randonnée
 + \ELSE[il fait moche]
 +  \STATE résoudre P $\neq$ NP
 + \ENDIF
 +\UNTIL{foulure de cheville}
 +\ENSURE{bobo}
 +\end{algorithmic}
 +\end{algorithm}
 +\end{document}
 +</code>
 +
  
 ===== Avec les extensions de “algorithmicx” ===== ===== Avec les extensions de “algorithmicx” =====
Ligne 71: Ligne 97:
  
 L'extension [[ctanpkg>algorithm2e]] est très ancienne, mais encore largement utilisée et recommandée. L'extension [[ctanpkg>algorithm2e]] est très ancienne, mais encore largement utilisée et recommandée.
 +Elle a l'avantage d'avoir une présentation souple et d'être facilement extensible.
 +Les petites instructions conditionnelles peuvent être présentées sur une ligne, pour une écriture compacte,
 +et l'on peut facilement ajouter un filet sur le côté. La commande ''\SetKw'' permet d'ajouter facilement des mots-clefs.
 +
 Elle charge l'extension [[ctanpkg>float]] pour fournir formatter les algorithmes comme des flottants, Elle charge l'extension [[ctanpkg>float]] pour fournir formatter les algorithmes comme des flottants,
 mais vous pouvez toujours utiliser l'option ''H'' de [[ctanpkg>float]] pour que l'algorithme apparaisse mais vous pouvez toujours utiliser l'option ''H'' de [[ctanpkg>float]] pour que l'algorithme apparaisse
 « là où vous l'avez écrit ». « là où vous l'avez écrit ».
- 
- 
-$\Reponse$  Le package [[ctanpkg>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 
-''\SetKw'' qui permettent de rajouter facilement des mots-clés. 
  
 Voici un algorithme écrit avec [[ctanpkg>algorithm2e]]: Voici un algorithme écrit avec [[ctanpkg>algorithm2e]]:
Ligne 157: Ligne 179:
 "//[[isbn>978-0-072-97054-8|Introduction to Algorithms]]//" de Corman, Leiserson, Rivest et Stein "//[[isbn>978-0-072-97054-8|Introduction to Algorithms]]//" de Corman, Leiserson, Rivest et Stein
 ([[https://edutechlearners.com/download/Introduction_to_algorithms-3rd%20Edition.pdf|le livre est consultable ici]], en anglais). ([[https://edutechlearners.com/download/Introduction_to_algorithms-3rd%20Edition.pdf|le livre est consultable ici]], en anglais).
-Malheureusement, [[ctanpkg>newalg]] ne propose pas d'environnement flottant ni d'options de personnalisation de la sortie.+Son environnement ''algorithm'' utilise le mode mathématique par défaut et l'environnement ''array'' pour les alignements; 
 +vous pouvez utiliser la commande ''\text'' pour sortir du mode mathématique.
  
-$\Reponse$  Le package [[ctanpkg>newalg]] propose un environnement ''algorithm'' qui, +L'extension connaît les instructions: //if-then-else//, //for//, //while//, //repeat//, //switch// 
-par défaut, utilise le mode mathématique et l'environnement ''array'' pour les alignements. +et propose un certain nombre de macros telles que //call//, //error//, //algkey//, //return//, //nil//.
-La commande ''\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//.+
  
-Exemple d'utilisation de [[ctanpkg>newalg]]:+Malheureusement, [[ctanpkg>newalg]] ne propose pas d'environnement flottant ni d'options pour réellement personnaliser la mise en forme.
  
 <code latex> <code latex>
Ligne 181: Ligne 201:
 \end{document} \end{document}
 </code> </code>
- 
- 
  
  
Ligne 195: Ligne 213:
 Elle offre un style courant « de type Pascal », et quelques structures intéressantes supllémentaires Elle offre un style courant « de type Pascal », et quelques structures intéressantes supllémentaires
 pour ce qui ressemblerait à des blocs en Pascal. pour ce qui ressemblerait à des blocs en Pascal.
- 
  
  
Ligne 208: Ligne 225:
 mais un fichier d'exemple, ''program-demo.tex'', est fourni avec l'extension et présente mais un fichier d'exemple, ''program-demo.tex'', est fourni avec l'extension et présente
 de nombreux cas d'usage. de nombreux cas d'usage.
- 
-$\Reponse$  Le package [[ctanpkg>program]] permet de mettre en relief des 
-mots clés, d'utiliser des mathématiques dans des algorithmes, etc. 
  
 <WRAP column 50ex> <WRAP column 50ex>
Ligne 267: Ligne 281:
 L'extension [[ctanpkg>program]] doit être chargée après [[ctanpkg>amsmath]] lors d'une utilisation simultanée. L'extension [[ctanpkg>program]] doit être chargée après [[ctanpkg>amsmath]] lors d'une utilisation simultanée.
 </note> </note>
- 
- 
- 
- 
- 
- 
-$\Reponse$  Les packages [[ctanpkg>algorithm]] et [[ctanpkg>algorithmic]] disponibles 
-dans [[ctanpkg>algorithms]], ont été spécifiquement conçus pour mettre en forme des algorithmes. 
-[[ctanpkg>algorithmic|Algorithmic]] sert à décrire les algorithmes et [[ctanpkg>algorithm]] 
-fournit un environnement flottant semblable à ''figure'' ou ''table'' 
-(voir [[3_composition:flottants:start|les pages à propos des flottants]]). 
-Voici un exemple d'utilisation: 
- 
-<code latex> 
-\documentclass{article} 
-  \usepackage{algorithm,algorithmic} 
- 
-\begin{document} 
-\begin{algorithm} 
-\caption{Un joli algorithme} 
-\begin{algorithmic} 
-\REQUIRE{habiter près des montagnes} 
-\REPEAT 
- \IF{il fait beau} 
-  \STATE faire une randonnée 
- \ELSE[il fait moche] 
-  \STATE résoudre P $\neq$ NP 
- \ENDIF 
-\UNTIL{foulure de cheville} 
-\ENSURE{bobo} 
-\end{algorithmic} 
-\end{algorithm} 
-\end{document} 
-</code> 
  
  
4_domaines_specialises/informatique/ecrire_du_pseudocode.1636479099.txt.gz · Dernière modification : 2021/11/09 17:31 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0