Ist mein Pseudocode richtig?
Ich versuche mich grade in Pseudocode einzuarbeiten. Leider bin ich mir nie ganz sicher wie ich es schreiben soll...teilweise schreibe ich dann einfach richtigen Code^^
Aufgabe:
Stellen Sie mit Hilfe von Pseudocode das Hochzählen einer Variablen jeweils mit Hilfe einer "for" bzw. Mit Hilfe einer "while" Schleife dar.
Meine Lösung:
For:
int Counter = 0
for i = 0; Laufe bis i = 10; i++
Counter = Counter + 1
ende for
while
Counter = 0
while (Counter größer oder gleich 20)
Counter = Counter + 1
Ende while
Obwohl ich schon lange programmiere, fühlt es sich an als ob das alles irgendwie neu ist ^^'
Noch zwei Frage.:
- Muss ich den Datentyp angeben, beim initialisieren einer Variable?
- Wie initialisieren ich ein Array (Ein- und Zweidimensional)?
- Mir kommt der Kopf der For-schleife falsch vor...kann ich das so schreiben?
Danke für eure Hilfe! :)
4 Antworten
Pseudocode ist oft nicht eindeutig und kann auch schlecht überprüft werden.
Zum realen Testen eignet sich der Iterationsrechner: http://www.gerdlamprecht.de/Roemisch_JAVA.htm
Baut auf JavaScript auf (Math. kann weggelassen werden)
Siehe Bild
(über 100 weitere Beispiele per Kombobox)
ABER schon die erste FOR-Schleife hast Du statt 1 geforderten Variable gleich 2 Variablen hochgezählt: i und Counter (im Bild ist Counter=a) !
Besser:
FOR Counter=0 to 10 STEP 1
...
Next {Counter}
"While" wird allgemeiner mit:
wiederhole ... solange/bis ...
geschrieben.
Wenn man sich den Maschinencode (ASM) ansieht, wird meist ein loop
daraus. Die For-Schleife ist nur geschichtlich aus Basic entstanden.
Viel interessanter ist die Frage, was mit der Lauf-Variablen nach der Abbruchbedingung passiert (also in Abschlussberechnungen).
Bei normalen For & While ist diese Variable um STEP größer als innerhalb der letzten Schleife.
Wenn man aber mit Arrays arbeitet (oder Feldvariablen in der Abbruchbedingung verwendet), hätte man einen zu großen Index (aB[i] ist nach Abbruch undefiniert!)
Genau dafür gibt es unterschiedliche Iterations-Modi beim Iterationrechner:
ohne IM oder IM=0: erst i++ dann Abruchfrage
IM=1 : erst Abbruchbehandlung (aB[i] ), dann i++
und IM=2: erst Abbruchfrage dann i++ nur, wenn kein Abbruch war

Pseudocode sollte programmiersprachenunabhängig verstanden werden können. Deswegen würde ich im Pseudocode nicht i++ schreiben, sondern z. B. i = i + 1
Desweiteren könnte man überlegen, ob man die Befehle eindeutscht. while → Solange wie
Das ist aber keine feste Regel, denn while hat sich schon als Kontrollbefehl in den meisten Programmiersprachen etabliert.
"Laufe bis" finde ich zu plastisch. "Für i von 1 bis 10 mit der Schrittweite 1", so würde ich das glaube ich schreiben.
Am besten ist es, du schaust dir mal einige Pseudocodes an. Beispiel: Türme von Hanoi https://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi
bitteschön!
Du musst dir überlegen, wozu Pseudocode überhaupt gut sein soll. Wenn du schon genau weißt, wie du es programmieren willst, dann brauchst du natürlich keinen Pseudocode.
Pseudocode verwendest du in der Konzeptentwicklung.
Dass man eine einfache for-Schleife auch direkt hin schreiben könnte, ist klar.
PS: Deine zweite Schleife wird nicht einmal durchlaufen. Das ist sicherlich nicht die Beabsichtigung des Erfinders. Startest du mit Counter = 20 hast du sogar eine Endlosschleife.
Counter = 0
while (Counter größer oder gleich 20)
Counter = Counter + 1
Ende while
Huch da hast du natürlich recht. Es muss kleiner oder gleich heißen^^
Das erlernen von Pseudocode ist auch nur für die Schule bzw. Abschlussprüfung^^
Im Alltag weiß ich so gut wie immer was ich machen will.
"Im Alltag weiß ich so gut wie immer was ich machen will."
Jaja ;P
"Huch da hast du natürlich recht. Es muss kleiner oder gleich heißen^^"
Pseudocode hat keinen festgelegten Syntax, er dient eher der Orientierung. Datentypen angeben hilft da meistens, ist aber wie gesagt keine Pflicht.
Der Kopf der for-Schleife sieht doch gut aus, evtl noch Klammern setzen.
Arrays würde ich immer mit myArray[] (eindimensional), bzw myArray[,] (zwei), myArray[,,] (drei) usw. initialisieren.
Für mich ist beim Speudocode zu viel Spielraum :D
Die For schleife...wirkt einfach so Programmier nah^^ Da war ich mir unsicher.
Danke für deine Antwort!
Naja, Pseudocode wird ja allg. nicht verwendet um ganze Programme zu beschreiben, eher um kleine Algorithmen allgemein für alle Sprachen zu verfassen, da jede ihre Eigenheiten hat, wie das manche Arrays beim Wert 0, andere bei 1 beginnen.
Aber du hast recht, außerhalb von Algorithmen hab ich den wirklich Sinn von Pseudocode auch nie verstanden, da ist mir eine "richtige" Sprache doch lieber ;) :D
Hallo , pseudo ist immer nur die Beschreibung des Sinnes im Ergebnis.
For :
Zähle (+1) counter von 0 bis 10
While
Zähle (+1) counter bis es größer oder gleich 20 ist.
Wichtig ist hier das Zählen und die Bedingung . Wie genau der Pseudocode nun einer Realen Programmiersprache nahe kommt ist geschmackssache.
setze variable i mit dem anfangswert 0
addiere +1 zu counter und i bis i gleich 10 ist
wäre z.b. nur logisch wenn das programm auch eine zusatzvariable brauch .
es könnte ja auch sowas geben
LOOP(0,10,+1) -> ADD(counter, +1)
Oh i++ ist mir gar nicht aufgefallen^^' Gewohnheit eben^^
Das finde ich auch schon wesentlich besser!
Vielen dank für deine Antwort! Besonders für "Pseudocode sollte programmiersprachenunabhängig"!