Existe-t-il un bon moyen d'écrire un pseudocode?

11

Je voudrais esquisser un pseudocode, puis le partager avec d'autres personnes qui n'utiliseront pas emacs.

Existe-t-il une bonne façon de procéder? J'essaie de le faire en mode org, mais ce n'est pas en retrait correctement, etc ...

theQman
la source
Quelqu'un a écrit un mode pseudocode , mais à ce jour, il ne propose que la coloration syntaxique, pas d'indentation.
dsedivec

Réponses:

4

Je ne connais pas de mode pseudo-code, moins le support pour ça en mode org.

Vous pouvez, cependant, écrire du pseudo-code dans des #+BEGIN_EXAMPLEblocs, sûrement sans indentation, ou vous décidez pour un vrai langage comme syntaxe de base et pseudo-code dans cela et obtenez l'indentation et la jolie coloration syntaxique. Ruby pourrait être un bon candidat, ou un bon vieux C / C ++, peut-être Java ...

Voici à quoi cela pourrait ressembler:

#+HEADER: :exports both :results output
#+BEGIN_SRC ruby
class Pseudoclass
  def pseudofunction(items)
    add five to each item
  end
end

pseudoinstance = new Pseudoclass instance
call pseudofunction of pseudoinstance with list 2, 3, 4
#+END_SRC
theldoria
la source
0

Si vous acceptez de partager votre pseudocode au format LaTeX ou PDF, vous pouvez utiliser le package mintedpour mélanger le télétype et l'expression bien indentée avec l'expression mathématique LaTeX. Voici un exemple de l'algorithme bien connu de Prim:

#+begin_export latex
\begin{minted}[escapeinside=||,mathescape=true]{text}
Prim's Algorithm(|$V, s$|)
|$T = \varnothing$|
|$U = \{ s \}$|
while (|$U \neq V$|)
    let |$(u, v)$| be the lowest cost edge in the cut |$(U, V-U)$|
    |$T = T \cup \{(u, v)\}$|
    |$U = U \cup \{v\}$|
\end{minted}
#+end_export

qui est rendu comme entrez la description de l'image ici

Si vous souhaitez uniquement partager cet extrait de pseudocode, il vous suffit de sélectionner ce bloc et d'appeler org-latex-export-as-latexou org-latex-export-to-pdfselon le format que vous souhaitez exporter (vous souhaiterez peut-être modifier légèrement les options du mode organisationnel pour avoir une mise en page satisfaisante). Pour écrire facilement un pseudocode, vous pouvez, bien sûr, changer le mintedséparateur d'expression mathématique, et utiliser yasnippetou un bloc personnalisé en latex pour vous débarrasser de ces tas d'options.

Firmin Martin
la source