Struktogramme mit LaTeX: Unterschied zwischen den Versionen

Aus Augenbit

Zeile 57: Zeile 57:
[[Datei:SubandReturn.png|alternativtext=Sub und Return hintereinander, return hat innerhalb des Kastens links und rechts jeweils eine spitze Klammer|rahmenlos|475x475px]]
[[Datei:SubandReturn.png|alternativtext=Sub und Return hintereinander, return hat innerhalb des Kastens links und rechts jeweils eine spitze Klammer|rahmenlos|475x475px]]


=== Schleifen ===
=== While, Until und Forever - Schleifen ===
  \while{Bedingung}
  \while{Bedingung}
   \assign{Schleifeninhalt}
   \assign{Schleifeninhalt}
Zeile 75: Zeile 75:
  \forallinend
  \forallinend
[[Datei:Forall Strukto.png|alternativtext=For all Schleife|rahmenlos|600x600px]]
[[Datei:Forall Strukto.png|alternativtext=For all Schleife|rahmenlos|600x600px]]
=== If-Schleifen ===
  \ifthenelse[30]{1}{1}{Wahrheitsprüfung}{\sTrue}{\sFalse}
    \assign{Wenn ja...}
    \change
    \assign{Wenn falsch, dann...}
  \ifend
[[Datei:If Strukto.png|alternativtext=If-Schleife Struktogramm|rahmenlos|600x600px]]

Version vom 21. Dezember 2022, 14:39 Uhr

Dieses Struktogramm

Struktogramm mit einfacher Fallunterscheidung

sieht im Quelltext aus wie folgt:

\documentclass{article}
\usepackage{struktex}
\begin{struktogramm}(100,50)
 \while{for ir:= n down to 2}
	\while{for jo:= 2 up to i}
		\ifthenelse[15]{2}{2}{$(A[j-1] \geq A[j]$}{yes}{no}
			\assign{tausche \(A[j-1]\) mit \(A[j]\)}
			\change
		\ifend
	\assign{\mbox{}\hfil print (A)}
	\whileend
 \whileend
\end{struktogramm}

Aufbau

Die Struktur ist recht einfach gehalten.

Umschlossen wird das Programm durch

\begin{struktogramm}(Breite(in mm),Höhe(in mm))[Überschrift]

und

\end{struktogramm}

Die Zahlenangaben in der runden Klammer gibt die Breite und die Höhe der Grafik in Millimetern an. Um sicher zu gehen, dass alles hineinpasst lässt sich hier auch immer mit großzügigen Angaben arbeiten, 150,150 ist für die meisten mehr als ausreichend. Die Überschrift ist optional und muss nicht angegeben werden.

Kasten für Operationsbeschreibungen

Mit assign wird ein einfacher Kasten erzeugt. Der Text wird standardmäßg linksbündig gesetzt, möchte man eine zentrierte Ausrichtung, so kann man mit der Ergänzung \mbox{}\hfil dies erreichen.

 \assign{Inhalt}

Variablendeklarationen

Variablendeklinationen lassen sich mit in einen Kasten einfügen:

 \assign{ 
   \begin{declaration}
     \description{Variablenname}{Variablenbeschreibung}
     \description{Variablenname}{Variablenbeschreibung}
   \end{declaration}
 }

Variablendeklaration

Eine weitere Spezifiziertung ist möglich (Parameter, lokale Variablen und globale Variablen), wer mehr dazu wissen möchte, kann dies in der Dokumentation Dokumentation des Paketes ab Seite 13 nachlesen.

Variablen Deklaration mit Parametern, lokalen Variablen....

Unterprogrammsprung

 \sub{Inhalt}

Unterprogrammkasten (zusätzliche kleine Rechtecke links und rechts)

Aussprung aus dem Programm

 \return{Inhalt}

Hier ein Beispiel:

\begin{struktogramm}(95,20)
  \sub{Liste sortieren}
  \return{Listenkopf zurückgeben}
\end{struktogramm}

Sub und Return hintereinander, return hat innerhalb des Kastens links und rechts jeweils eine spitze Klammer

While, Until und Forever - Schleifen

\while{Bedingung}
  \assign{Schleifeninhalt}
\whileend

While Schleife Struktogramm

\until{Bedingung}
  \assign{Schleifeninhalt}
\untilend

Until Schleife Struktogramm

\forever
  \assign{Schleifeninhalt}
  \exit{Exit}
\foreverend

Forever Schleife mit Exit Struktogramm

\forallin{$\forall l \in L$}
  \assign{gib l) aus}
\forallinend

For all Schleife

If-Schleifen

 \ifthenelse[30]{1}{1}{Wahrheitsprüfung}{\sTrue}{\sFalse}
   \assign{Wenn ja...}
   \change
   \assign{Wenn falsch, dann...}
 \ifend

If-Schleife Struktogramm