Zum Inhalt springen

Vom Problem zum Struktogramm


InforMATTics

Empfohlene Beiträge

Hallo,

bin frischer Informatik-Student, am Anfang. Mache das Studium per Fernstudium.

Es geht um Grundlagen der Programmierung und da, vom Algorithmus zum Struktogramm.

Tja, das das ähnlich eines Rezeptes ist, habe ich verstanden, nur gibt es ja die unterschiedlichsten Ansätze, ein Problem zu lösen. Und in die Details zu gehen. Im Moment noch mit Pseudo-Code. Noch keine wirkliche Programmiersprache. Ich glaube als nächstes kommt C.

Nun wollte ich mal fragen, was es für hilfreiche Literatur oder Links zu diesem Thema gibt. Kennt da jemand was?

Mir ist jedenfalls klar, das ich erstmal schaue, was in der Aufgabenstellung alles gegeben ist und mir dann überlege, schriftlich/zeichnerisch, wie ich das Problem lösen kann und dann das umsetze in ein Struktogramm.

Nun gibt es ja die unterschiedlichsten Ansätze, doch wie kann man z.B. vorgehen, wenn man ein Datum prüfen will?

Z.B. soll ein Datum eingegeben werden in der Form Tag = t, Monat = m und Jahr gleich jj. Gültige Jahre sind 1900 bis 2200.

Wie fange ich am besten an? Was muss ich berücksichtigen?

Danke für Informationen.

Gruß

InforMATTics

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zu berücksichtigen fände ich:

Wie kommst du an die Daten? Werden die eingegeben? Übergeben? Gibt es evtl. Eingabefehler? Gibst du die Daten einzeln ein, oder als zusammenhängender String?

Was passiert, wenn das Jahr von einem Benutzer zweistellig angegeben wird?

Ist das aktuelle Jahr ein Schaltjahr?

Wie soll das Ergebnis aussehen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gerade was Struktogramme angeht, kommt es sehr auf die Person an, die hinterher ihr OK drauf stempelt. Du mußt vor allem den Grad der Detailtreue beachten.

Ist das Parsen einer Datumseingabe ein wichtiger Teil? Dann solltest Du natürlich schon recht exakt bei der Ausarbeitung des Struktogramms vorgehen.

Ist es aber nur Bestandteil einer größeren Anwendung wie ein Zeiterfassungssystem, kannst Du eher drauf verzichten udn für das Parsen des Datums tricksen, indem Du eine Funktion parseDate() o. ä. annimmst.

Allerdings kommt das jetzt natürlich auch auf Deinen Prof an ...

Generell kann man aber sagen, daß Du das EVA-Prinzip beachten solltest. Also: Was habe ich und wo will ich hin? Die Verarbeitung ist dann Deine Aufgabe.

Und von wegen Eingabeformat und gültige Jahresangaben: Ist nichts in der Aufgabe vorgeschrieben, machst Du eigene Annahmen. Die sollten natürlich nicht vom "Standard" abweichen. Für das Parsen das Datums könntest Du z. B. annehmen, daß der Anwender das Format tt.mm.jjjj eingibt und sich die Jahreszahlen - wie Du schon erwähnt hast - zwischen 1900 und 2200 bewegen.

Fehlen Dir also gewisse Vorgaben, definierst Du sie selbst. Vergiß' aber nicht, das auch anzumerken. Ich schätze, dann bist Du auf der sicheren Seite.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Cadpax

Oha, da ist ja auf eine Menge zu achten.

Ich wollte das Datumsfomat vor der Eingabe darstellen, wie man das Datum eingeben soll.

Also, erst Tag (ein- bis zweistellig), Monat (ein- bist zweistellig) und das Jahr nur vierstellig, nicht zweistellig.

Gut, noch weiß ich nicht, wie die Überprüfung auf zwei- oder vierstellig aussieht, aber ich denke, das kommt noch.

('n Tipp?)

In diesem Fall leg ich erstmal fest, wie die Daten eingegeben werden.

Dann überprüfe ich die Jahreszahl, dann den Monat und dann den Tag.

Würde ich jetzt erstmal so vom Gefühl her sagen.

Wäre das OK?

@Newlukai

Da kannst Du schon sehr recht haben. *seufz* Das habe ich mir auch gedacht.

Das wollte ich abklopfen, in dem ich meinem Tutor meine Lösungen mit Lösungswege zum bestätigen zusende.

Dann sollte ich sehen, worauf er Wert legt, bzw. was wichtig ist.

Auch Deine Erklärung hilft mir, zu verstehen. Super.

Werde mal weitermachen und schauen, was rauskommt.

Gruß

InforMATTics

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein Beispiel vorgeben ist gut. Je nach Programmiersprache kannst du ja zudem festlegen, wie die Eingabe aussehen soll, oder "erzwingst" dir eine richtige Eingabe durch eine Schleife, in der generell erst einmal auf die Korrektheit der Eingabesyntax überprüft.

Gut, noch weiß ich nicht, wie die Überprüfung auf zwei- oder vierstellig aussieht, aber ich denke, das kommt noch.

('n Tipp?)

IF-Struktogramm-Symbol? Aber um diesem Problem aus dem Weg zu gehen, würde ich, wie oben beschrieben, die Syntax erzwingen, was dir auch das Problem aus dem Weg räumt, wenn nur 12 als Jahr eingegeben wird (1912 oder 2012?).

Dann überprüfe ich die Jahreszahl, dann den Monat und dann den Tag.

Würde ich jetzt erstmal so vom Gefühl her sagen.

Ich würde deinem Gefühl dann generell zustimmen. ;)

Auch zu achten ist wiegesagt auf das Schaltjahr.


if ((jahr % 4 == 0 && jahr % 100 !=0) || jahr % 400 == 0)

Sollte die der Code unverständlich sein, bitte melden. ;)

----

Allgemein: Da du ja schreibst "vom Algorithmus zum Struktogramm" gehe ich davon aus, dass das relativ ausführlich sein soll, da dies je nach Aufbau ja recht komplex sein kann. Wenn du es fertig hast, kannst du es ja mal reinstellen, um zu schauen, ob sich irgendwelche Fehler reingeschlichen haben.

Ansonsten: Kannst du schon Programmieren oder bist du da ein Einsteiger? Weil wenn würde ich sagen, kannst du auch, um das ganze ein bisschen Praxisnaher (was manchmal sehr zum Verständnis beiträgt) zu gestalten, in eine Skriptsprache tippen. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Versteh' mich nicht falsch, Cadpax, aber wo ich gerade "je nach Programmiersprache" lese, fällt mir ein: Natürlich sollte ein Struktogramm unabhängig jeglicher Programmiersprache sein (wohlgemerkt sollte, nicht muß, das kennen wir ja alle). Am Beispiel des vier- bzw- zweistelligen Datums bedeutet dies, daß Du sowas schreiben kannst:


Solange varJahr nicht vierstellig

    Ausgabe: Geben Sie das Jahr an (jjjj):

    Eingabe: varJahr

oder auch sowas:

Ist varJahr vierstellig?

J        | N

Tue dies | Tue das

Wie Du das hinterher konkret implementierst, ist eine andere Geschichte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Stuktrogramme, meist Programmiersprachenunabhängig sein sollen, ist mir bewusst, ist aber nunmal nicht immer der Fall. ;)

Nunja, ich würde dennoch spontan die Schleife benutzen, da man da auch die anderen Bedingungen direkt abfangen könnte und eine Schleife in jeder Hochsprache verfügbar sein sollte. :)


Solange varJahr nicht vierstellig && varJahr >= 1900 && varJahr <= 2200

    Ausgabe: Geben Sie das Jahr an (jjjj):

    Eingabe: varJahr

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...