Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

TP -> Geburtstag -> Schülerproblem

SCHNICO / 4 Antworten / Baumansicht Nickles

Hallo,


wir haben heut in Informatik die aufgabe bekommen ein Programm zu schreiben welches nach Eingabe von Geburtsjahr, Geburtsmonat und Geburtstag errechenen soll an welchem Tag das gewesen ist. (z.B. Montag)


meine Idee war es diese Zeit einfach auszählen zu lassen aber dies war meinem Herrn Lehrer nicht schön genug. Das einzigste was er sagen konnte war das wir mit trunc und mod arbeiten sollen. Jedoch kann ich nic´hts mit dem Befehl trunc anfangen geschweigedenn sagt mir auch die Hilfefunktion von TP rechtwenig darüber. Wer könnte mir da helfen? Nett wäre es wenn jemand ein Bsp.-Prog hat in dem man sich mal die Funktion von Trunc anschauen könnte. Oder mir einen Tipp geben könnte auf welchem Wege sich das Prob noch lösen lässt.


Danke im Voraus

bei Antwort benachrichtigen
Andreas42 SCHNICO „TP -> Geburtstag -> Schülerproblem“
Optionen

Hi!

TRUNC schneiden die Nachkommastellen einer Real-Zahl ab, das Ergebnis von TRUNC ist dann ein Longint-Wert.

Dein Lehrer möchte warscheinlich, dass du eine Art Julianischen Tageszähler programmierst. Dieser Zähler beginnt mit einem Referentdatum und gibt die Anzahl von tagen an, dir für ein späteres Datum von diesem Referenzdatum aus vergangen sind.

Beispiel:

Dein Referentdatum ist der 31.12.2002.
Am 17.01.2003 sind dann 17 Tage vergangen und am 03.04.2003

äh, jetzt muss ich selbst rechnen:

31 + 28 + 31 + 4 = 94 Tage

Der 31.12.2002 war ein Dienstag, also kannst du jetzt den Wochentag ausrechnen, oder? ;-)

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
SCHNICO Nachtrag zu: „TP -> Geburtstag -> Schülerproblem“
Optionen

Ja, soweit bin ich ja auch schon. Nur wofür soll ich dann trunc nutzen?

Um auf dein beispiel zu gehen:

Mein Referenzdatum ist ja (meines erachtens der beste tag) der 1.1. im Jahre 0. Und ich gehe davona us das dies ein Montag war. Ich hab das Prog jetzt auch schon soweit das es alle Tage zusammen zählt und auch die Schlatjahre berücksichtigt.

Mir will nur nicht in den kopf was ich da mit Trunc machen soll.

bei Antwort benachrichtigen
Andreas42 SCHNICO „Ja, soweit bin ich ja auch schon. Nur wofür soll ich dann trunc nutzen? Um auf...“
Optionen

Hi!

Offen gesagt: das weiss ich auch nicht.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Dreamforger SCHNICO „TP -> Geburtstag -> Schülerproblem“
Optionen

Die differenz in Tagen, von heute bis zum Geburtstag nimmst du modulo 7 das ist dann die Anzahl der relativ vergangenen Wochentage. Mit trunc kannst du das auch lösen indem du die Tage durch 7 Teilst, das Ergebniss 'trunc'st und wieder mit 7 multiplizierst. Jetzt noch die differenz der beiden Werte und du hast eine modulo operation durchgeführt. Also

mod( x, b) := x - trunc(x/b)*b;

bei negativem x ist teilweise auch das Ergebniss des modulo negativ.

Lange Rede kurzer Sinn: ob dein 1.1.0000 := Montag hinhaut weis ich nicht, ich nehms jetzt mal an.
x:=Anzahl der Tage seit 1.1.0000
t:=mod(x,7)

t ist also der 'relative Tag' t=0 ->Montag t=1 ->Dienstag ... t=6 ->Sonntag
lässt sich richtig gut in einem Array als Index verwenden.

bei Antwort benachrichtigen