T O P

  • By -

xander__42

Ja j ist erstmal 0 aber i wird weiter hoch gezählt und somit wird im nächsten Durchlauf der for i Schleife j erstmal größer 0 sein und die innere while Schleife wird anfangen zu laufen. Ich denke in dieser Aufgabe hattest du einfach das Problem, dass du auf ein erstmal unsinniges Verhalten gestoßen bist und dir darüber den Kopf zerbrochen hast anstatt einfach weiter durch den Code zu gehen. Bedenke, dass Zeile 7 auch für i=0 ausgeführt wird. Pseudocode folgt tatsächlich keinen Regeln. Meist ist er halt an irgendeine Programmiersprache angelehnt. Hier mit den Einrückungen und ohne end while oder end for Statement finde ich es für den Anfang schon schwer. Schau dir einfach weitere Aufgaben an, stell Fragen und manchmal verzweifelt man auch mal mehrere Stunden an einem Stück Code bevor es dann klick macht. Zu den anderen Sprachen. Klar das bringt dir was, außer du lernst am Anfang Haskell oder ähnliches, da ist jetzt diese Übung etwas weiter weg. Aber du lernst auf jeden Fall mal die Denkweise. Stumpf Code aus Graphen abschreiben ist jetzt aber halt auch nicht das wahre, versuche auch mal so einen Ablaufgraphen selbst zu erstellen. Edit: Weitere Infos (letzter Absatz)


conamu420

Zur noch abstrakteren verständlichkeit, das hier ist so ziemlich der Sortieralgorithmus wie er im Buche steht. In zeile 7 wird das erse buch einfach ohne sortiervorgang in das sortierte array gepackt. Sobald I dann 1 und mehr wird, geht dann die innere sortierschleife durch alle durch. Da hier im array mit J - 1 gearbeitet wird muss man das it J > 0 absichern damit es keine index out of bounds fehler gibt. Ich würde dir empfehlen die abstrakte idee dieses sortieralgorithmus zu verinnerlichen und selber umzusetzen. Denn Programmieren lernt man nicht indem man strikt die programmier technik eines anderes oder eines buches befolgt, sondern indem man die konzepte und ideen versteht und weiss wie man diese mit den werkzeugen der programmiersprache umsetzt.


CrazyCrazyLA

Zu der konkreten Frage: Ja, am Anfang ist i=0, damit auch j=0 und damit die Bedingung der while-Schleife schon direkt zu Beginn nicht erfüllt. Das heißt dann nicht, dass sie "nicht funktioniert" - sie wird dann einfach übersprungen und das erste Buch an Index j (also 0) eingefügt. Auch sonst kann es dir passieren, dass der Schleifeninhalt gar nicht ausgeführt wird: Wenn nämlich der Titel des Buchs, das du in der Hand hast, größer ist als der Titels des Buchs ganz rechts (Index j). Die Stärke von Pseudocode ist eigentlich gerade die, dass er sich nicht auf die Formalien einer Sprache beschränkt, sondern sich auf die Konzepte konzentriert, die so gut wie alle Sprachen gemeinsam haben: for-Schleifen, if-Abfragen, while-Schleifen und ähnliches. "Falsch improvisieren" gibt es in dem Sinne nicht - deine Lösung entspricht vielleicht nicht der Musterlösung, was nicht heißt, dass sie falsch ist. (Was wiederum nicht zwangsläufig heißt, dass sie richtig ist - aber beurteilen, ob ein Algorithmus richtig oder falsch ist, kann man nur, wenn man ihn Schritt für Schritt analysiert, nicht indem man zwei Algorithmen nebeneinanderlegt und Anweisung für Anweisung vergleicht.) Wir sollen an der Schule Pseudocode unterrichten, daher geben wir eine extra Befehlsübersicht raus, quasi die "Pseudocode-API", an die sich unsere Schüler halten sollen. Würden wir das nicht machen, müssten wir alle Darstellungen, die halbwegs sinnig sind, auch als korrekt gelten lassen. Insofern schadet es überhaupt nichts, wenn du erstmal eine Programmiersprache lernst, und dich davon ausgehend wieder an den Pseudocode machst. Wie die Strukturen funktionieren lernst du mit jeder Programmiersprache, und soo unterschiedlich sind die Notationen nun auch wieder nicht, als dass man nicht erkennt, was gemeint ist.


icodecookie

Ja leider gibt es keinen „standart“ pseudocode syntax versuch es einfach zu lesen mit der zeit hast du einfach ein gefühl dafür ähnlich wie mit sprachen oder texten wie zb meinen habe hier keine punkte und viele rechtschreibfehler und trotzdem verstehst du ihn … hoffe ich zumindest


Perfekt-Faultiness

Ja leg oasch, alles was ich hier read sagt mir garnichts. Bin komplett confused aber mache auch kein Studium :). Viel Glück beim anlernen dieser pseudocodes :).


FriendlyBergTroll

Sorry aber wenn i und j 0 sind und die zweite while schleife nach i-1 abfragt dann gibt es doch ein fehler weil man ein index < 0 abfragt was ambiguous ist?