Pseudocode lesen?


21.04.2021, 21:34

Und wenn ich ein Struktogramm anhand des Pseudocodes erstellen will, wäre das ein Anfang? :

Ich bekomme die Schleife nicht auf die Reihe, also in die Dreiecke kann ja | nein und dann...

3 Antworten

was bedeutet zahlen [0]

Das erste Element aus der Liste an Zahlen

int[] ist ja ein Array an Ganzzahlen. Und [..] gibt an, welche Stelle vom Array. 0 ist die erste.

zahlen[0] ist also das erste Element (/ die erste Zahl) aus dem Array zahlen.

was ist i++

Das ist die Kurzschreibweise für „i = i + 1;“. Oder auf Deutsch: Erhöhe den Wert von i um eins.

temporäre Liste ist wahrscheinlich der Hilfsarray?

Ja

finaleposition ist dann das Ergebnisarray

Nein. finalePostition ist ein "int", also eine einfache Zahl. Kein Array. Das Ergebnisarray ist zahlen. Die Zahlen aus dem Array zahlen werden anhand des Hilfsarrays sortiert, und dann in der richtigen Reihenfolge wieder in das Array zahlen eingefügt.

Was bedeutet finaleposition++

Erhöhe den Wert von finaleposition um eins.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

cappuccinoblack 
Fragesteller
 21.04.2021, 21:09

Vielen Dank für die Antwort. Kann ich weiter fragen?:

Warum muss man beim Hilfsarray (Z.6) noch +1 machen? Man braucht doch nur so viele Stellen wie hoch meine höchste Zahl ist, oder? Und wo steht dann im Code , dass alle stellen im Hilfsarray mit 0 initialisiert werden? Ich seh das alles nicht :(

0
MrAmazing2  21.04.2021, 21:18
@cappuccinoblack
Warum muss man beim Hilfsarray (Z.6) noch +1 machen? Man braucht doch nur so viele Stellen wie hoch meine höchste Zahl ist, oder?

Das ist korrekt. Aber du scheinst zu vergessen, dass Arrays mit der Stelle 0 beginnen.

Angenommen die höchste Zahl ist 3. Und ich mache - wie du es meinst - ein Array der Länge 3. Dann gibt es die Stellen 0, 1 und 2. Sind 3 Stellen. Die Stelle 3 gibt es dan aber nicht, wie du siehst.

Daher macht man Länge + 1. Dann gibt es die Stelle nämlich auch noch.

Und wo steht dann im Code , dass alle stellen im Hilfsarray mit 0 initialisiert werden?

Nirgends. Java initialisiert standardmäßig alle Stellen eines Zahlen-Arrays mit einer 0. Das musst du nicht mehr machen.

int[] array = new int[6];

wird mir ein Array erstellen, das so aussieht:

Index: |0|1|2|3|4|5|
Wert:  |0|0|0|0|0|0|

Wie du siehst ist an jeder Stelle standardmäßig eine 0.

1
was bedeutet zahlen [0]

zahlen ist ein Array von integer-Werten. Zahlen[0] ist das erste Element im Array.

was ist i++

Erhöht Variable i um eins

temporäre Liste ist wahrscheinlich der Hilfsarray?

Sieht so aus, ja.

finaleposition ist dann das Ergebnisarray?

Nein, das ist der Index. Er gibt die Position eines Elements im Array an.

Was bedeutet finaleposition++

Erhöht Variable finaleposition um eins.

Woher ich das weiß:Studium / Ausbildung – Datenverarbeitungs-Kfm, Hobby- und Profi-Programmierer

cappuccinoblack 
Fragesteller
 21.04.2021, 21:03

Vielen Dank, kann ich noch etwas weiter fragen?:

Ist die dritte Zeile eine Schleife? Also erst ist i 1, dann ist es immer kleiner als die maximale Zahl und wird erhöht um 1 bis es so groß ist wie das Maximum?

Was ist eigentlich for und die anderen Sachen in rot?
Um ehrlich zu sein kann ich den Algorithmus des Countingsort nicht richtig wiedererkennen. Also schon einige Elemente, aber allein durch den Code würde ich nicht verstehen was genau mit den Zahlen gemacht wird.

Tut mir leid wenn ich jetzt solche zeitaufwendigen Sachen frage, aber wenn die erste Frage beantwortet wird, wär das schon ziemlich hilfreich, danke nochmal.

0
DonkeyShot  21.04.2021, 21:06
@cappuccinoblack

Ja, eine Schleife. Sie läuft, so lange die Bedinung erfüllt ist, also solange i kleiner ist als zahlen.länge. Wobei letzteres die Anzahl der Elemente im Array bedeutet.

Mir war bisher nicht bekannt, dass es für pseudo Code eine bestimmte Syntax gibt. Man könnte auch schreiben "Zähle von 1 bis 100". Das ist für mich auch Pseudo-Code. Aber anscheinend sollen die Wörter in rot Schlüsselwörter darstellen, also Befehle der "Sprache". Schwarz sind Bezeichner wie Variablennamen. Blau sind Literale, also fixe Werte im Code.

1
cappuccinoblack 
Fragesteller
 21.04.2021, 21:12
@DonkeyShot

verstehe. Evtl muss ich gleich noch weitere Fragen stellen, aber erstmal Dankeschön!

0
cappuccinoblack 
Fragesteller
 21.04.2021, 21:38
@DonkeyShot

Wenn ich diese beschriebene Schleife im Struktogramm darstellen möchte, wäre dann i<Zahlen.länge im oberen Dreieck oder so (wie in der Ergänzung bei der Frage) am Anfang der Schleife nach dem solange?

0

also ich verstehe nur irgendwer muß von anfang bis ende immer nur zahlen.........

ja, ne, wirklich, ich habe üüberhaupt keine ahnung um was es hier ghet

lg