InforMATTics Geschrieben 26. August 2007 Geschrieben 26. August 2007 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 Zitieren
Cadpax Geschrieben 27. August 2007 Geschrieben 27. August 2007 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? Zitieren
geloescht_Newlukai Geschrieben 27. August 2007 Geschrieben 27. August 2007 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. Zitieren
InforMATTics Geschrieben 27. August 2007 Autor Geschrieben 27. August 2007 @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 Zitieren
Cadpax Geschrieben 27. August 2007 Geschrieben 27. August 2007 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. Zitieren
geloescht_Newlukai Geschrieben 28. August 2007 Geschrieben 28. August 2007 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. Zitieren
Cadpax Geschrieben 28. August 2007 Geschrieben 28. August 2007 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 Zitieren
geloescht_Newlukai Geschrieben 28. August 2007 Geschrieben 28. August 2007 Einverstanden. Man könnte die Prüfung aber noch etwas anders schreiben Solange varJahr nicht vierstellig und varJahr nicht zwischen 1900 und 2200 Ausgabe: Geben Sie das Jahr an (jjjj): Eingabe: varJahr Zitieren
Cadpax Geschrieben 28. August 2007 Geschrieben 28. August 2007 Ok, ich komm aus der Praxis, da schreibt man schnell die Bedingung hin aus Gewohnheit. @InforMATTics Hoffe wir konnten/können helfen. Zitieren
InforMATTics Geschrieben 5. September 2007 Autor Geschrieben 5. September 2007 Hi, ja, ich verstehe besser. Programmieren lerne ich erst noch: C. Aber ich denke, das klappt gut. Gibt halt viel zu bedenken. Man muss sich halt auch schlau machen, wenn man z.B. nicht weiß, wie man ein Schaltjahr prüft. Das ist jetzt jedenfalls geklärt. Dank' Euch. Gruß InforMATTics 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.