Ich bin ein Student, der mit verschiedenen Programmiertechniken arbeitet, und ich bin auf Pseudocode und Flussdiagramm gestoßen. Ich weiß, dass beide verwendet werden, um das Problem vor dem eigentlichen Programmieren zu durchdenken, aber ich habe ein paar Fragen dazu.

  1. Wann würde ich Pseudocode zum Planen verwenden und wann würde ich verwenden Flussdiagramme? Oder ist es besser, beides zu tun, bevor Sie tatsächlich programmieren. Besonders für ein kleines Arcade-Spiel in JAVA, da dies mein nächstes Projekt ist.
  2. Ich habe festgestellt, dass der Pseudocode dem tatsächlichen Code und nicht den Flussdiagrammen sehr ähnlich ist. Würde dies die Pseudocodierung verbessern, da Sie den Pseudocode im Wesentlichen in Ihr Programm kopieren / einfügen (natürlich müssen Sie ihn ändern) passe die Sprache an. Ich verstehe diesen Teil.
  3. Ist es praktisch, beide beim Programmieren zu verwenden? Besonders das gleiche Spiel, das zuvor erwähnt wurde. Danke.

Kommentare

  • Offensichtlich würden Sie keine Flussdiagramme verwenden, in denen Sie ‚ keinen Fluss haben – dh für fast alle deklarativen Entitäten.
  • Ich kann mich ‚ nicht wirklich an das letzte Mal erinnern, als ich ein Codierungsflussdiagramm gesehen habe. Klassen- und Datenflussdiagramme, Anwendungsfalldiagramme, ja. Aber keine Flussdiagramme. Möglicherweise sind sie in der Spieleentwicklung häufiger anzutreffen.
  • @RobertHarvey, FSM-Diagramme (im Wesentlichen Flussdiagramme) werden im Hardware-Design häufig verwendet.

Antwort

Fl Owcharts und Pseudocode haben oft die gleiche Ausdruckskraft, unterscheiden sich jedoch in der Linearisierung. Pseudocode ist linear (d. H. Eine Folge von Zeilen mit Anweisungen), ein Flussdiagramm nicht. Daher sind Flussdiagramme eine höhere Abstraktionsebene, die vor dem Schreiben von Pseudocode oder zur Dokumentation verwendet wird.

Flussdiagramme haben meiner Meinung nach zwei starke Vorteile gegenüber Pseudocode: Erstens sind sie grafisch. Viele nicht-technische Leute haben starke Angst vor strukturiertem Text, aber nicht vor grafischen Beschreibungen, so dass Flussdiagramme viel besser zu ihnen passen. Zweitens können Flussdiagramme Meta-Überlegungen wie das Anzeigen der Hauptausführungslinie im Gegensatz zu Zweigen viel besser ausdrücken.

Ihre Fragen im Detail:

  1. Für eine wirklich komplizierte Problem, würden Sie zuerst Flussdiagramme verwenden, dann Pseudocode. Beide sind optional, wenn Sie sich sicher genug fühlen.
  2. Ja, Pseudocode hat den Vorteil, dass er mit echtem Code zusammengeführt werden kann. Steve McConnell empfiehlt beispielsweise dringend, zuerst Methoden im Pseudocode zu schreiben und dann den Pseudocode als Kommentare im Code zu belassen.
  3. Ich hatte immer das Gefühl, dass die Notwendigkeit, während des Entwurfs ein Flussdiagramm zu zeichnen, eine unzureichende Partition Ihres Problems zeigt. Nicht triviale Flussdiagramme weisen auf eine verschlungene Logik hin, die mit hohen Kosten vermieden werden sollte.

Kommentare

  • Flussdiagramme sind ebenfalls gute Möglichkeiten um sicherzustellen, dass jeder Entscheidungspunkt die Aktionen sowohl für den / die weniger gebräuchlichen als auch für den am häufigsten verwendeten Pfad definiert. So stellen Sie sicher, dass Sie wissen, was zu tun ist, wenn die Genehmigung verweigert oder die Bestellung storniert wird! Es gibt oft mehr Fehler in den Randfällen, weil die Leute vergessen, sie zu tun, oder sie in Eile während der Qualitätssicherung ausführen, wenn Tests sie finden.

Antwort

Bei Pseudocode

Um ehrlich zu sein, verwende ich nicht viel Pseudocode. Normalerweise ist es schneller, nur den Code zu schreiben, damit ich fertig bin Mein Code, es ist der eigentliche Code. In einigen Fällen kann Pseudocode hilfreich sein, aber Sie arbeiten im Allgemeinen an etwas sehr Komplexem und versuchen nur, die Struktur einer Methode oder etwas anderem aufzuschlüsseln. In diesen Fällen verwende ich Kommentare in meiner IDE, um die Struktur zu gestalten Dann gehe ich hinein und schreibe den eigentlichen Code in die Kommentare. Dies hilft mir dabei, einige Dinge zu tun:

  • Ich kann Bereiche sehen, die ich habe und von denen ich sie nicht implementiert habe Lesen Sie die Kommentare und sehen Sie offensichtliche Lücken in ihnen.
  • Wenn ich den echten Code ausfülle, habe ich Kommentare, die auf Englisch erklären, was ich tue. (Sie werden es wahrscheinlich brauchen, wenn es so kompliziert ist dass ich zuerst Pseudocode schreiben muss).

In Flussdiagrammen

Der Code ändert sich normalerweise so stark, dass Flussdiagramme nur bei einer größeren, systemweiten Architektur hilfreich sind Design oder Dokumentation. In diesen Fällen werde ich nur ein Diagramm auf ein Whiteboard setzen, um den Kern der Dinge zu erfahren oder um es jemand anderem im Team zu zeigen. Wenn Sie nicht wirklich ein Flussdiagramm benötigen, das Ihnen das Verständnis erleichtert, brauchen Sie sie nicht wirklich, um Software zu „tun“ richtig. Heutzutage gibt es viele Plugins für IDEs , die Flussdiagramme aus dem Code selbst sowie Klassendiagrammen und anderen (und umgekehrt `). Die einzige Echtzeit, die Sie benötigen würden, um ein ernsthaft genaues Flussdiagramm zu erstellen, ist, wenn Sie nicht die gesamte Architektur und die Funktionsweise der Dinge auf einmal in Ihrem Kopf behalten können und über etwas Visuelles sprechen müssen, um Knicke zu erkennen.

Antwort

Im Allgemeinen schreibe ich keine Flussdiagramme, während ich an persönlichen Projekten arbeite (da Projekte nicht sehr groß sind) und Die meisten Eingaben, Ausgaben und Prozesse sind klar.

Aber wenn Sie anfangen, an komplexen großen Projekten mit verschiedenen Eingabequellen zu arbeiten, sind flache Dateien, Datenbanken, manuelle Schnittstellen usw. Flussdiagramme praktisch.

Ich würde empfehlen Sie schreiben Pseudocode und UML-Digramme, da diese Tools Ihnen helfen, bessere Klassen, Methoden usw. zu finden. Manchmal finden Sie beim Schreiben von Pseudocode verschiedene und effizientere Möglichkeiten, ein Programm zu lösen.

Antwort

Pseudocode dient dazu, eine Idee schnell für diejenigen darzustellen, die zumindest die Grundlagen des Codes verstehen. Flussdiagramme zeichnen hübsche Bilder für alle anderen Um dasselbe zu verstehen.

Flussdiagramme werden häufig zu Dokumentationszwecken verwendet, da viele verschiedene Personen diese Dokumentation und Flussdiagramme einfacher verwenden Folgen Sie als Pseudocode für Nicht-Programmierer. In einem Projekt, an dem Sie selbst arbeiten, ist das Festhalten an Pseudocode in Ordnung, da es weitaus nützlicher und einfacher zu erstellen ist, da Sie nur einen Texteditor benötigen.

Antwort

Flussdiagramme bieten eine hohe Abstraktionsebene, mit der Sie planen können, wie die Dinge ablaufen sollen. Beispiel:

if x stirbt y gewinnt

Sie müssen nicht davon abhängen, wie Sie das Programm in Bezug auf Klassen und Methoden entwerfen, andererseits Pseudocode Stellen Sie eine niedrigere Abstraktionsebene bereit (obwohl dies wirklich davon abhängt).

if (isdead (s)) y.win ()

Somit kann Pseudocode jetzt basierend auf der von Ihnen verwendeten Sprache in ein tatsächliches Programm übersetzt werden.

Für ein Spiel würde ich empfehlen, zuerst ein Flussdiagramm zu verwenden und dann zu entwerfen die Klassen und Methoden, schreiben Sie Pseudocode und konvertieren Sie diesen schließlich in ein Programm

Antwort

Ich würde d Berücksichtigen Sie die Art des Codes, den Sie schreiben. Wenn dies der Fall ist:

  1. Hoch iterativ / rekursiv
  2. Verzweigungen auf komplizierte Weise
  3. In mehreren Systemen implementiert, die Sie darstellen möchten

In den ersten beiden Fällen ist der Pseudocode zunehmend schwerer zu lesen als ein Gesamtdiagramm. Auf der anderen Seite macht Code, der größtenteils linear ist, unglaublich langweilige Diagramme, die das Verständnis des Prozesses erschweren, da er in die Luft sprengt.

Im dritten Fall können Flussdiagramme Prozesse besser darstellen Systemgrenzen überschreiten und den gesamten Prozess darstellen.

Antwort

  1. Sie sollten alles verwenden, mit dem Sie sich wohl fühlen. Mein Eindruck ist jedoch, dass Flussdiagramme heutzutage nicht häufig verwendet werden, um die Programmsteuerung zu skizzieren. Zum einen sind sie im Vergleich zum Pseudocode typischerweise unstrukturiert. Es ist üblicher, Klassenabhängigkeitsdiagramme wie UML zu verwenden, um Ihre Architektur auf einer viel höheren Ebene zu beschreiben. Wenn Ihre Anwendung über eine Zustandsmaschine verfügt, ist das Zeichnen eines (Flussdiagramm-ähnlichen) Zustandsmaschinendiagramms unerlässlich.
  2. Ich denke, Sie sind hier richtig. Eine Möglichkeit besteht darin, Ihren Pseudocode zunächst als Kommentar in Ihre Quelldatei zu schreiben und die eigentlichen Implementierungszeilen dazwischen einzufügen.
  3. Verwenden Sie wieder alles, womit Sie sich wohl fühlen. Wenn Sie sich nicht sicher sind, probieren Sie beide aus. Ich gehe davon aus, dass Ihre Praxis schnell zu dem konvergiert, was für Sie am nützlichsten ist. Ich persönlich finde Flussdiagramme nur dann nützlich, wenn ich versuche, eine besonders komplizierte Ausführungsreihenfolge zu entwirren.

Antwort

Warum Pseudocode schreiben, wenn Sie Java schreiben können? Ich habe Java gefunden, eine gute IDE, und Javadoc ist der einfachste Weg, ein Programmierproblem zu erfassen – zumindest ein objektorientiertes . (Und ein Arcade-Spiel sollte OO sein.) Die Sprache wurde von Grund auf dafür entwickelt. Es ist einfach und unkompliziert. (Für viele Zwecke vielleicht zu einfach, aber das Beste, was ich dafür gesehen habe.) Der Hypertext im Javadoc und über eine IDE im Code selbst ergibt ein verständlicheres „Diagramm“, als Sie selbst heranziehen könnten Ein großes Blatt Papier. Java-Code ist so einfach wie jeder Pseudocode und viel strenger. Und sobald Sie ihn „grafisch“ und „pseudo“ codiert haben, wird das Programm tatsächlich ausgeführt!

Kommentare

  • Java und andere können langwierig sein. “ public static void main .. “ oder “ system.out.println “ oder lange Bezeichner mit Camelback-Notation, langwierig Ich erinnere mich, dass ich vor 10 Jahren eine Datei geöffnet habe. so etwas wie neuer BufferedReader (neuer InputStreamReader (System.in)); anscheinend jetzt einfacher mkyong.com / java / … Aber wirklich jede Bibliothek, die Sie aufrufen, kann langwierig sein, nicht wie ein Pseudocode, der so präzise sein kann, wie Sie es sich vorstellen können
  • Auch in Java oder einer anderen Sprache stoßen Sie beim Kompilieren auf Fehler. nichts davon mit Pseudocode. Sie können sich ohne Ablenkung auf Design konzentrieren. Kommentare zum Pseudocode können viel kürzer sein, da der Pseudocode für den Verstand klarer ist, da er ‚ vom Verstand entfernt ist. Sie ‚ sind nicht darauf beschränkt, nur in einer Sprache zu denken, und Sie werden möglicherweise sehen, dass ‚ diese andere Sprache verwendet. ‚ ist schneller und weniger schmerzhaft zu schreiben (keine Kompilierungen erforderlich – selbst die sehr fließenden Kompilierungsfehler werden angezeigt), und weniger Zeit zum Schreiben erleichtert das Redesign.
  • @barlop: Es funktioniert für mich, aber es funktioniert möglicherweise nicht für alle. Ich lasse viel Code (“ BufferedReader “ zum Beispiel) aus meinen Klassen, bis ich ihn brauche oder wissen muss, ob ich kann es funktionieren lassen. Selbst wenn ich es habe, ist es ‚ in Klassen, die ich ‚ nicht betrachten muss, wenn ich es insgesamt betrachte, gut versteckt Design. Compilerfehler können leicht behoben werden und können schwerwiegende Designfehler verhindern, z. B. die Verwendung der falschen Klasse an einem Punkt, an dem Sie ‚ nicht einmal eine Instanz von erhalten können richtige Klasse. Ich gebe zu, ich habe “ “ Software auf diese Weise entwickelt, die nur konnte in Java geschrieben sein, aber das OP verwendet Java.
  • Wenn Sie also eine Datei öffnen möchten, sehen Sie, wie der Pseudocode von openfile (“ c: \ blah \ file „) ist kürzer als Java, um dies zu tun? oder dass print “ dfdfd “ kürzer ist als Java, um dies zu tun? Ich ‚ habe (noch) keine Seiten mit Pseudocode und mehreren Klassen erstellt. teilweise ‚ cos Ich habe ‚ keine großen Programme im Alter geschrieben b) teilweise ‚ cos Ich glaube nicht, dass ich

würde, ich denke, ich ‚ würde einen Pseudocode schreiben und ihn dann implementieren lassen. Jeder andere Pseudocode, falls vorhanden, wäre höher. Ich könnte eine Liste aller Klassen und Methoden einschließlich Konstruktoren haben. Ich weiß also, welche Klassen was sind und dass ich eine Instanz davon bekommen kann.

  • also ‚ wäre nicht in der Lage, die falsche Klasse zu verwenden Aber wenn es ‚ mein Programm ist, hätte ich ‚ in meinen Notizen notiert, welche Klasse was ist. Klassen sind hübsch hohes Level. Ich ‚ hätte eine Notiz darüber, wenn ich ‚ mich nicht daran erinnern kann. Und Pseudocode dreht sich alles um das, was man meint. Wenn Sie also eine Instanz der Klasse blah erstellen wollten und bleh geschrieben haben, dann ist ‚ nur ein Tippfehler, aber nicht ‚ behindern Ihr Design nicht. (Wenn Sie ‚ für sich selbst schreiben ‚, weil Sie wissen, was Sie meinen, und Sie es wie ein bla verwendet haben).
  • Antwort

    Sie könnten ein Flussdiagramm verwenden, wenn Sie durch if-Anweisungen wirklich verwirrt sind und versuchen zu verstehen Das. Oder wenn Sie versuchen, eine Schleife zu verstehen, sehen Sie sich die Wirkung von Zählern an. Wenn Sie lernen, kann dies sehr hilfreich sein.

    Es kann sich etwas restriktiv anfühlen, weil Sie kurze Anweisungen in Kästchen einfügen müssen. Und wenn Ihr Programm sehr linear ist und Ihre Schleifen und Wenns trivial sind, sehe ich keine Verwendung dafür.

    Pseudocode ist nützlich zum Entwerfen eines Programms. Ohne die Ablenkung, die Syntax richtig einstellen zu müssen, und ohne die Langeweile, die einige Sprachen mit sich bringen können. Die Tatsache, dass das Schreiben schneller ist, erleichtert auch das Neugestalten Code. Und Sie können so präzise sein, wie es Ihr Verstand wünscht. Es ist angenehm zu schreiben, erfordert weniger mentale Anstrengungen, um es zum Laufen zu bringen (da kein oder viel weniger Debugging), und mehr Fähigkeit, sich auf das Gesamtbild und das Design zu konzentrieren.

    Also nützlich für sich selbst.

    Sie können auch zur Kommunikation mit anderen verwendet werden.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.