PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Algorithmus Umgebung mit Funktion



macmanolo
29-09-2008, 12:56
Hallo,

ich möchte in meiner Arbeit gerne ein paar Zeilen Pseudocode darstellen.
Momentan verwende ich dazu das algorithm2e Paket -> klappt prima.

Jetzt muss ich aber einen Pseudocode darstellen, der eine rekursive Funktion enthält.

Beispielsweise eine solche Funktion:

function calcFibonacci(int a){
if (a==1||a==2) return 1;
else return calcFibonacci(a-1)+calcFibonacci(a-2);
}

Mit algorithm2e erlaubt anscheinend keine Definiton von Funktionen im Pseudocode. Mit welchem Paket könnte ich das machen?

Danke schon mal

mechanicus
29-09-2008, 13:14
Hallo

listings (http://www.ctan.org/tex-archive/macros/latex/contrib/listings/)

Gruß
Marco

macmanolo
29-09-2008, 13:22
Hi,

hab mir mal die Doku (ftp://ftp.mpi-sb.mpg.de/pub/tex/mirror/ftp.dante.de/pub/tex/macros/latex/contrib/listings/listings.pdf)angeschaut, finde darin aber keine Definition von Funktionen.

mechanicus
29-09-2008, 13:27
Hallo,

habe ich was falsch verstanden? du willst es doch nur darstellen.

\documentclass[12pt,a4paper]{report}
\usepackage[linktocpage,breaklinks=true]{hyperref}
\usepackage{listings}

\lstset{language=C++, numbers=left, numberstyle=\tiny,escapeinside={\#}{\#}}

\begin{document}

\begin{lstlisting}[firstnumber=1]
function calcFibonacci(int a){
if (a==1||a==2) return 1;
else return calcFibonacci(a-1)+calcFibonacci(a-2);
}
\end{lstlisting}

\end{document}

Gruß
Marco

macmanolo
29-09-2008, 13:35
Hi,

danke für das Beispiel. Das funktioniert auch.

Aber ich hätte das Ganze gerne als Pseudocode. Dein Beispiel versucht ja, das immer an die angegebene Sprache anzupassen.

mechanicus
29-09-2008, 13:44
Hallo,

willst du es Sprachunabhänig machen, kannst du das doch tun. Alternativ fällt mir noch das hier ein:

\documentclass[12pt,a4paper]{report}


\begin{document}

\begin{verbatim}
function calcFibonacci(int a){
if (a==1||a==2) return 1;
else return calcFibonacci(a-1)+calcFibonacci(a-2);
}
\end{verbatim}

\end{document}
(latein ende;))
Gruß
Marco

macmanolo
29-09-2008, 14:12
Hi,

an die Verbatim Umgebun hab ich auch schon gedacht, allerdings gibts da keinen Zeilenumbruch.

Ich werde es jetzt mal mit dem algorithmicx paket versuchen