Flussdiagramm zu Sieb des Eratosthenes, Algorithmus?


11.03.2024, 18:27

Hier

3 Antworten

Die Schleife kannst du so nicht schreiben, da musst du auch Kästen für i=2 und i++ draus machen und danach das "solange i<n" in eine Raute setzen. Im Ja Fall dann weiter, im Nein Fall zur Ausgabe bei i. Außerdem musst du jeweils am Schleifenende den Pfeil dann passend zurück vor das i++ bzw. j++ Kästchen setzen.

Ergänzung: Bin bei der Antwort davon ausgegangen, dass dein Struktogramm richtig ist, aber das ist schon komisch.

  • Für die Initialisierung der Liste hätte ich eine Schleife erwartet, statt nur einem Schritt
  • Für i reicht es, bis Wurzel n zu zählen,
  • Wenn i schon markiert ist, kann man die innere j-Schleife überspringen
  • j muss nicht bei 2 starten, i*i als Startwert reicht
  • Ich würde erwarten, das die Ausgabe in einer Schleife von 2...n erfolgt, und da geprüft wird, ob die Zahl markiert ist, du hast da ziemlich viel in einem Schritt zusammengefasst
Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin

Ja, ich würde das beispielsweise in etwa so zeichnen...

Bild zum Beitrag

=============

Bemerkungen zu deinem Flussdiagramm, was mir spontan auf den ersten Blick auffällt:

  • Du solltest evtl. die Schleifen [bspw. „j = 2; j++; solange j < n“] etwas weiter aufteilen. Sonst hast du nämlich so Probleme, wie bei dir... Wo endet denn ein Durchlauf der Schleife, sodass die Schleife wieder mit dem nächsten Durchlauf des Schleifenrumpfs beginnt? Anscheinend wird bei deinem Flussdiagramm der Schleifenrumpf immer ausgeführt, egal ob die Schleifenbedingung erfüllt ist. [Schließlich geht da ja bei dir nur ein Pfeil weiter, ohne Unterscheidung, ob die Schleifenbeding erfüllt ist oder nicht.]
  • Direkt nachdem du das erste Mal ein i * j markiert hast, wird bei dir die Ausgabe getätigt und das Programm beendet. Aber... Es sollte dann doch stattdessen doch mit [j++; Schleifenbedingung der j-Schleife prüfen; gegebenenfalls j-Schleifenkörper wieder durchlaufen] weitergearbeitet werden, oder?
  • Wenn bei dir ein i * j in einem Entscheidungsschritt bereits als markiert erkannt wird, landest du bei einem „x“. Wie geht es davon aus weiter, oder soll da deiner Ansicht nach Programmende sein?
 - (Java, Programmiersprache, Algorithmus)
Kann jemand zu dem struktogramm ein Flussdiagramm erstellen/zeichnen?

Ja, kann ich. Aber wo ist dein eigener Versuch, den man korrigieren und besprechen könnte?

Es bringt dir absolut NICHTS, wenn Andere deine Aufgaben erledigen. Dadurch lernst du es nicht.

Gehe das Struktogramm doch von Oben nach Unten durch und erstelle deine Knoten mit entsprechenden Abzweigungen. So wahnsinnig viel kann man dabei eigentlich nicht falsch machen.

Passx 
Fragesteller
 11.03.2024, 18:23

Ja hier meins:

0