Klassenliste nach GEBURTSDATUM!

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Rmnpython
User
Beiträge: 5
Registriert: Dienstag 14. Juni 2016, 19:59

Hallo Community,
könnte mir jemand bitte helfen ein Programm in Python zu programmieren? :D
Wir sollen ein Programm schreiben, wo wir Namen nach ihrem Geburtsdatum sortieren. Man sollte den Schülernamen und das dazugehörige Geburtsdatum eingeben können. Raus kommen sollte dann eine sortierte Liste nach dem Geburtsdatum. :)
Eine dazugehörige Erklärung wäre sehr nett :)
Zudem dürfen wir kein import benutzen.
Ich freue mich über jede Hilfe!
Danke im Vorraus :D
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Rmnpython: was hast Du schon versucht, und wo kommst Du nicht weiter?
BlackJack

@Rmnpython: Grundsätzliches vogehen: Sich klar werden welche Daten in welcher Datenstruktur Du benötigst. Und dann zerlegt man ein Problem solange in kleinerer Teilprobleme und die dann auch wieder, bis man bei Teilproblemen angekommen ist, die sich jeweils mit einer Funktion mit ein paar Zeilen Code lösen lassen.

Eine grobe Aufteilung die oft gemacht wird ist die Zerlegung in Eingabe, Verarbeitung, Ausgabe. Bei der Eingabe werden die Daten erfasst, zum Beispiel vom Benutzer erfragt und in einer Datenstruktur gespeichert, die sich gut für den Verarbeitungsschritt eignet. Es macht also Sinn sich zuerst über diese Struktur und damit die Verarbeitung klar zu werden.

Wenn man eine Aufgabe hat, die sich auf viele gleichartige Objekte bezieht, kann man das an der Stelle gut aufteilen auf eine Funktion die *ein* Objekt verarbeitet, und eine die diese Funktion verwendet um viele Objekte zu verarbeiten. Die Eingabe der Daten zu einem Schüler ist zum Beispiel so ein Fall. Da kann man wiederholt eine Funktion aufrufen, die *einen* Schüler erfasst. Und die Funktion zur Eingabe eines Schülers lässt wiederum aufteilen in Funktionen zur Eingabe des Namens und zur Eingabe des Geburtsdatums. Die können dann jeweils die gewünschten Daten vom Benutzer abfragen bis der etwas passendes eingegeben hat. Denn bei der Eingabe muss man a) eine gewisse Form einhalten die überprüft werden sollte, und b) den Wert gegebenfalls in einen passenden Datentyp oder gar eine Struktur umwandeln. Das ist beim Namen relativ einfach, aber beim Datum muss man sich dann schon was passendes überlegen, denn das soll ja sortiert werden, und das geht nicht einfach so direkt mit jeder möglichen Eingabe als Zeichenkette. Also muss man entweder eine Zeichenkettenform finden die dafür geeignet ist — und die Eingabe darauf auch prüfen — oder aber das Datum in eine passende Datenstruktur überführen.
Rmnpython
User
Beiträge: 5
Registriert: Dienstag 14. Juni 2016, 19:59

Mein Problem ist, dass mir der Ansatz fehlt.
@Blackjack
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Rmnpython: In der Schule ist es ja immer ganz einfach mit den Hausaufgaben. Man kann nur das machen, was man im Unterricht schon in ähnlicher Form gelernt hat. In der Aufgabenstellung kommt das Wort Liste vor und Eingeben von Namen und Datum. Dann kannst Du ja mal in Deinen Unterlagen schauen, ob da ein ähnliches Beispiel ist, wie man irgendwas Eingeben und in einer Liste speichern kann.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Mein Problem ist, dass mir der Ansatz fehlt.
Da du keine Importe benutzen darfst, beschränkst du dich ja auch die Build-in Functions von Python (https://docs.python.org/3/library/functions.html). Da musst du halt mal schauen, was sich so zum sortieren anbietet anbietet... Bzw. Sirius3 hat dir ja schon den Datentyp genannt, der sich hier anbietet. Dann schaust du mal nach, welche Methoden es hier zum sortieren gibt.

Die offizielle Doku lesen hilft hier übrigens, weil darin auch ein Link auf's Python-Tutorial drin ist, wo genau das erklärt ist, was du suchst.

Gruß, noisefloor
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Rmnpython hat geschrieben:Mein Problem ist, dass mir der Ansatz fehlt.
Schritt 1: Wie frage ich eine Benutzereingabe ab?
Schritt 2: Wie erzeuge ich eine Datenstruktur für mehrere Eingabetypen (Name + Geb.datum)?
Schritt 3: Wie fasse ich mehrere Objekte von einer solchen Datenstruktur zusammen (Liste)?
Schritt 4a: Wie sortiere eine Liste (kann ich dafür eine spezielle Funktion aufrufen oder muss ich es selber machen)?
Schritt 4b: Wie sortiere ich eine Liste nach einem spezifischen Kriterium (Geburtsdatum)?

Arbeite diese Punkte Schritt für Schritt ab. Benutze dazu auch ruhig eine Suchmaschine. Melde dich, wenn du konkrete Fragen zu einzelnen Schritten hast, z.B. weil etwas bei der Umsetzung nicht klappt.
BlackJack

Wobei Schritt 1 deutlich später kommt, sofern damit nicht einfach nur die eine eingebaute Funktion gemeint ist, die Grundlage der Benutzereingabe ist. Denn man muss ja erst einmal wissen wie die Datenstruktur aussehen muss, welche Daten enthalten sind, und in welcher Form, bevor man Funktionen schreiben kann, die Daten vom Benutzer abfragen und in die entsprechende Form bringen.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich meinte tatsächlich nur die in Python eingebaute Funktion. Was abgefragt wird, ergibt sich ja bereits aus der Aufgabenstellung. So habe ich das zumindest verstanden.
Rmnpython
User
Beiträge: 5
Registriert: Dienstag 14. Juni 2016, 19:59

Ich bedanke mich für die zahlreichen Antworten.
Mein Problem ist, dass wir ein paar Aufgaben vom Lehrer bekommen haben, aber davor noch nie mit Python programmiert haben. Ich möchte ja auch nicht, dass mir jetzt jemand einen kompletten Code zuschickt, aber es wäre mir eine Hilfe, wenn mir jemand anhand des Scripts etwas erklären könne. Das heißt, dass ich vielleicht mit ein paar befehlen vertraut gemacht werde.
Ich danke euch im Voraus!
LG
BlackJack

@Rmnpython: Arbeite doch mal das Tutorial in der Python-Dokumentation durch. Bis mindestens einschliesslich des Kapitels über Datenstrukturen („Data Structures“). Die Kapitel 7 und 8 („7. Input and Output“ und „8. Errors and Exceptions“) sind auch wichtig für diese Aufgabe. Das sind Grundlagen die man für so ziemlich jedes Python-Programm braucht, zumindest um entscheiden zu können *was* davon man braucht. Es wird Dir niemand wirklich abnehmen können das zu (kennenzu)lernen ohne die Hausaufgaben für Dich zu lösen.

Wenn Du die Sprachgrundlagen und die Grundlegenden Datentypen und -strukturen kennst, kannst Du überlegen welche Daten Du verarbeiten musst, und als welche Typen in welchen Strukturen die vorliegen müssen, damit Du die Aufgabe lösen kannst.
Rmnpython
User
Beiträge: 5
Registriert: Dienstag 14. Juni 2016, 19:59

#closed
Antworten