Ist mein Pseudocode richtig?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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  

Counter per Iterationsrechner - (Programm, programmieren, Code)

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

Woher ich das weiß:Berufserfahrung – Programmierer

etimarkler 
Beitragsersteller
 18.08.2015, 10:28

Oh i++ ist mir gar nicht aufgefallen^^' Gewohnheit eben^^

"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.

Das finde ich auch schon wesentlich besser!

Vielen dank für deine Antwort! Besonders für "Pseudocode sollte programmiersprachenunabhängig"!

1
Suboptimierer  18.08.2015, 10:36
@etimarkler

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. 

1
Suboptimierer  18.08.2015, 10:40
@etimarkler

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

1
etimarkler 
Beitragsersteller
 18.08.2015, 12:05
@Suboptimierer

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.

1
Suboptimierer  18.08.2015, 12:24
@etimarkler

"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^^"

0
etimarkler 
Beitragsersteller
 18.08.2015, 14:37
@Suboptimierer

Okay...mit dem größer und kleiner hat ich schon immer Probleme :D

Das zählt nicht :D

0

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.


etimarkler 
Beitragsersteller
 18.08.2015, 10:04

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!

0
yoko0  18.08.2015, 10:08
@etimarkler

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

1

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)