ChiefMav Geschrieben Montag um 19:15 Geschrieben Montag um 19:15 Hallo zusammen, ich hätte eine Frage zur Standardisierung von Pseudocode und würde gerne eure Meinungen dazu hören. Mir ist bewusst, dass Pseudocode nicht kompilierbar sein soll. Aber kann jeder den Stil nach eigenen Vorstellungen anpassen oder gibt es gewisse Konventionen / Standards an die man sich halten soll? Ein konkretes Beispiel: Der Zuweisungsoperator „:=“. Könnte man stattdessen auch einfach „=“ verwenden? Oder wäre es sogar denkbar sich an die Syntax von C# anzulehnen – solange es eben klar ist, dass man das Prinzip verstanden hat? Wie seht ihr das? Gibt es etablierte Standards, an die man sich besser halten sollte? Würde mich über eure Einschätzungen freuen Merci Zitieren
Brapchu Geschrieben Montag um 19:19 Geschrieben Montag um 19:19 Mach was du willst solange es für dich lesbar und halbwegs konsistent ist. https://en.wikipedia.org/wiki/Pseudocode Der Zuweisungsoperator ":=" ist btw Pascal Style. "=" wäre C oder Python Style. Zitieren
Whiz-zarD Geschrieben Gestern um 06:28 Geschrieben Gestern um 06:28 vor 10 Stunden schrieb Brapchu: Der Zuweisungsoperator ":=" ist btw Pascal Style. "=" wäre C oder Python Style. Wobei man sagen muss, dass Pascal (und auch einige andere Sprachen) es richtig machen. Das :=-Symbol ist das mathematische Symbol für eine Definition. Pascal benutzt dann das =-Symbol als Vergleichsoperator, was auch das korrekte Symbol für Vergleiche in der Mathematik wäre. Da man in C nun das =-Symbol für eine Zuweisung (bzw. einer Definition) verwendet, musste man dann ein neues Symbol für Vergleiche erfinden. Nämlich ==. Das ist aber nicht das einzige Problem mit dem =-Symbol in C. Es hat auch für viele Bugs gesorgt, da ein vergessenes Gleichheitszeichen, wie if(i = 1) { ... } valider Code ist und dazu führte, dass man freiwillig Code-Richtlinien einführte, um sowas zu verhindern. Man schrieb dann die Konstante auf die linke Seite, da man einer Konstante nichts zuweisen kann. Also if(1 == i) { ... } Und Back to Topic: Ja, du kannst auch = anstatt := schreiben und dir da selber ein bisschen was ausdenken, solange es klar und verständlich bleibt, was du da vorhast und nicht zu exotisch wird. Ich persönlich würde aber entweder bei Pascal- oder C-Syntax bleiben. Wenn ich mich so recht erinnere, hat man auch bei den Programmieraufgaben in der Prüfung nie Objektorientierung gebraucht, sodass man auch auf die Punkt-Notation auch verzichten konnte. pr0gg3r reagierte darauf 1 Zitieren
FISI-Prüfer Geschrieben Gestern um 09:36 Geschrieben Gestern um 09:36 vor 3 Stunden schrieb Whiz-zarD: Back to Topic: Ja, du kannst [...] dir da selber ein bisschen was ausdenken, solange es klar und verständlich bleibt Ich denke, damit ist das wesentliche gesagt. Jeder sollte die Logik hinter Deinem Pseudocode erkennen bzw. herauslesen können, ohne dass Du dich genau an die Konventionen irgendeiner Sprache hältst. Zitieren
IAMS533 Geschrieben Gestern um 13:42 Geschrieben Gestern um 13:42 Dem bereits gesagten stimme ich vollkommen zu. Ich habe von Prüfern gehört dass es trotzdem gerne gesehen ist eine Programmiersprache zu verwenden weil die Prüfer dann nicht großartig probieren müssen nachzuvollziehen wie dein pseudo-code funktioniert, sondern sich an der Programmiersprache orientieren können. skylake und FISI-Prüfer reagierten darauf 2 Zitieren
FISI-Prüfer Geschrieben Gestern um 13:59 Geschrieben Gestern um 13:59 So wie ich das sehe, hat Pseudocode den Vorteil, dass man das keine syntaktischen Fehler einbauen kann. Logikfehler fallen allerdings auch ohne Programmiersprache auf. Zitieren
IAMS533 Geschrieben Gestern um 14:05 Geschrieben Gestern um 14:05 (bearbeitet) Zitat So wie ich das sehe, hat Pseudocode den Vorteil, dass man das keine syntaktischen Fehler einbauen kann. Logikfehler fallen allerdings auch ohne Programmiersprache auf. Jein, wenn es nicht viel Code ist wahrscheinlich. Arbeitet man jedoch mit mehr code muss dann natürlich eine Konstante Syntax verwenden. Bearbeitet Gestern um 14:06 von IAMS533 Zitieren
FISI-Prüfer Geschrieben Gestern um 14:11 Geschrieben Gestern um 14:11 Das gehe ich mit. Käme allerdings nicht auf die Idee (mehrere) hundert Zeilen in Pseudocode abzufassen. Komme aber auch aus der anderen Ecke und bin garantiert kein Entwickler... Zitieren
eulersche_Zahl Geschrieben Gestern um 15:30 Geschrieben Gestern um 15:30 (bearbeitet) Pseudocode sollte den Vorteil haben, keine Programmiersprache können zu müssen und trotzdem einen Code zu verstehen, was dieser "so macht". Wenn ich einen Pseudocode auf die PPT Pinsel dann weiß der JAVA Entwickler ganz genau wie er den in JAVA abbildet und der PHP weiß ganz genau, wie er diesen eben in PHP abbildet. So zumindest war die Idee. Im Endeffekt findest du im Netz Pseudocodes die eher C Lastig sein, Java lastig sind or whatever. Jeder verfällt i.wie in eine Programmiersprache leicht zurück. Aber trotzdem sollte das auch ungefähr ein nicht Programmierer verstehen können oder mit Basic Kenntnissen. Im englischen sagt man - put it simply Bearbeitet Gestern um 15:32 von eulersche_Zahl FISI-Prüfer reagierte darauf 1 Zitieren
eulersche_Zahl Geschrieben Gestern um 16:23 Geschrieben Gestern um 16:23 (bearbeitet) vor 21 Stunden schrieb ChiefMav: Mir ist bewusst, dass Pseudocode nicht kompilierbar sein soll. Aber kann jeder den Stil nach eigenen Vorstellungen anpassen oder gibt es gewisse Konventionen / Standards an die man sich halten soll? Vlt. noch um konkreter auf deine Frage einzugehen, weil ich mich damit auch teilweise beschäftigt habe. Einen "wirklichen" Standard gibt es nicht. Es gibt Empfehlungen, die allerdings von Uni zu Uni abweichen können und selbst sogar Länderspezifisch sind. z.B. findet man so etwas hier https://users.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html Das wäre so der "Standard" den man ohne Probleme für das wissenschaftliche Arbeiten verwenden könnte. Allerdings habe ich mehr Abweichungen davon gesehen als diesen "Standard" Wenn du in der Prüfung einen Pseudocode basteln musst, dann würde ich persönlich den "gnadenlos" in der Programmiersprache schreiben, die ich kann. Egal ob das Java ist or whatever. Der Code wird runtergeschrieben und die Prüfer sind damit schon zufrieden. War zumindest bei mir damals so. Bearbeitet Gestern um 16:25 von eulersche_Zahl Zitieren
skylake Geschrieben vor 14 Stunden Geschrieben vor 14 Stunden Im Gegensatz zu einem Struktogramm bspw. ist Pseudocode nicht normiert und daher kann man den schreiben wie man möchte. Der Sinn davon ist manchmal schwierig nachzuvollziehen, falls man danach in Python programmiert und beides durchaus äußerst ähnlich sehen kann. Meiner Meinung nach werden die Stärken von Pseudocode dann ersichtlich, wenn in einer Sprache (danach) programmiert wird, die wesentlich mehr Codezeilen erfordert als sich die Logik erstmal in Pseudocode aufzuschreiben. Bei sehr kompakten und sehr einfach zu lesenden Sprachen wie Python kann man sich durchaus drüber streiten, ob und wann das Sinn macht. Parser reagierte darauf 1 Zitieren
tkreutz2 Geschrieben vor 13 Stunden Geschrieben vor 13 Stunden (bearbeitet) Ich verfolge die Diskussion auch schon eine Weile. Bei meinen Recherchen bin ich auf Hinweis aus einer Online Bibliothek gestoßen. Quelle: https://onlinelibrary.wiley.com/doi/pdf/10.1002/0470029757.app1 Das es keinen Standard gibt, wurde ja bereits gesagt, aber es wurde noch nicht viel über Konventionen und Gründe dazu gesagt. In dem Anhang zu dem Buch Algorithms and Networking for Computer Games 2006 John Wiley & Sons, Ltd ISBN: 0-470-01812-7Jouni Smed and Harri Hakonen heißt es: //Zitat Anfang: Wir beschreiben die Algorithmen in einem Pseudocodeformat, das in den meisten Teilen den von Cormen et al. (2001) festgelegten Richtlinien genau folgt. Die Konventionen basieren auf gängigen Datenabstraktionen (z. B. Mengen, Sequenzen und Graphen) und die Kontrollstrukturen ähneln der Programmiersprache Pascal (Jensen et al. 1985). Da es unser Ziel ist, die algorithmischen Ideen hinter den Implementierungen zu enthüllen, präsentieren wir die Algorithmen in Pseudocode statt in einer bestehenden Programmiersprache. Diese Wahl wird durch die folgenden Gründe gestützt: Obwohl gängige Programmiersprachen (z. B. C, C++, Java und Skriptsprachen) ähnliche Kontrollstrukturen aufweisen, unterscheiden sich ihre elementaren Datenstrukturen sowohl auf Schnittstellenebene als auch in der Sprachphilosophie erheblich. Wenn beispielsweise ein Algorithmus eine Datenstruktur aus STL von C++ verwendet, hat ein Java-Programmierer drei Alternativen: den Code so umformulieren, dass er Javas Sammlungsbibliothek verwendet, eine maßgeschneiderte Datenstruktur schreiben, die den Algorithmus bedient, oder eine geeignete Drittanbieterbibliothek kaufen. Abgesehen von der letzten Option ist Programmieraufwand unvermeidlich, und indem wir eine allgemeine algorithmische Beschreibung geben, schränken wir die Auswahlmöglichkeiten bei der Implementierung nicht ein. // Zitat Ende: Und ich glaube, das ist der Punkt, den wir aus Sicht von Pseudocode als allgemeines Werkzeug auch heute noch sehen können. Natürlich gibt es vielfältige Möglichkeiten Algorithmen zu visualisieren. Eine gute Webseite dazu ist z.B. https://algorithm-visualizer.org Aber hier haben wir ja genau das Problem der Bindung an eine konkrete Sprache samt Laufzeitumgebung und genau das will man ja nicht haben, wenn man allgemein versucht, erst mal ein Problem aufzuschreiben. Und diese Lücke ist es genau, die durch Pseudocode geschlossen wird, ansonsten könnte man ja direkt zu Pascal oder Python Pseudocode greifen. Mittlerweile scheint es auch schon Lösungen zur Erzeugung von Pseudocode aus Quelltext über AI gestützte Anwendungen zu geben. Das zeigt, dass es ein Interesse an allgemein lesbare Lösungen gibt. https://www.yeschat.ai/gpts-9t557p2vBaR-Pseudo-Coder Wer Pseudocode in seiner Projektarbeit zeigen möchte - es gibt da wohl eine LaTex Lösung zu. https://de.overleaf.com/learn/latex/Algorithms Bearbeitet vor 13 Stunden von tkreutz2 Ergänzung Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.