Wettrennen



  • Hallo,

    ich habe folgende Aufgabe:
    Zwei Mäuse rennen mit konstanter Geschwindigkeit. Die eine rennt 9 s lang 4 m/s, macht dann 11 s Pause, usw. Die andere rennt 8 s lang 5 m/s, macht dann 14 s Pause, usw.
    Ich soll ein Wettrennen simulieren, eine Endzeit eingeben lassen und am Ende soll das Programm sekundenweise ausgeben wie weit die Mäuse gekommen sind und welche Maus gewonnen hat.

    Ja, es ist eine Hausaufgabe. Nein, ich erwarte keine komplette Lösung von euch. Jedoch wäre ich für Hilfestellungen dankbar, denn ich habe keinen blassen Schimmer wie ich das angehen soll.

    LG Flitzie



  • Hallo,

    Für jede Maus musst du Position und Geschwindigkeit speichern. Global musst du die Zeit speichern. Dann erhöhst du die Zeit sekundenweise und berechnest die neue Position der Mäuse mit der Formel Δp=vΔt\Delta p = v \cdot \Delta t.
    Kannst du daraus mal grob ein Programm zusammenschustern?

    LG


  • Mod

    Mausklasse, die das Bewegungsmuster und die aktuelle Position einer Maus speichert. Sie bietet zusätzlich die Methode an, die Maus um einen Zeitschritt weiter zu versetzen.

    Das Hauptprogramm initialisiert die Mäuse und setzt diese dann in einer Schleife um jeweils einen Schritt weiter und gibt die daraus resultierende Position aus.

    Wenn du überhaupt keinen Ansatz für solch ein Problem hast, dann ist diese Aufgabe höchstwahrscheinlich viel zu schwer für dich und selbst obige (recht umfangreiche) Hilfe wird dir wohl kaum was nutzen, denn du bist im Unterricht bereits zu weit abgehängt. Wahrscheinlich wird es darauf hinaus laufen, dass du entweder die Komplettlösung gemacht bekommen musst; oder du dich jetzt sofort hinsetzt und wirklich gründlich den bisherigen Stoff des Unterrichts wiederholst, inklusive selbstständigem Durcharbeiten aller Programmieraufgaben.



  • Man könnte auch einfach direkt berechnen, wie weit eine Maus gekommen ist.

    Dazu berechnet man die Periodenlänge t_periode = t_laufen + t_pause. Bei der ersten Maus also 9s+11s = 20s. Wenn man nun wissen will, wie weit eine Maus zur Zeit t ist, kann man erstmal mit n_ganze_perioden:=int(t/t_periode) die Anzahl der vollständigen Perioden berechnen. s_ganze_perioden ist also v*t_laufen*n_ganze_perioden. Dann schaut man mit t_rest := t-n_ganze_perioden*t_periode nach, wie viel Zeit noch übrig ist. Zur Stecke muss die Reststrecke addiert werden, t_rest >= t_laufen ? dann Strecke v*t_laufen addieren : sonst Strecke v*t_rest addieren.

    Das Maus-Objekt braucht in diesem Fall also nicht zu speichern, wie weit es bereits gekommen ist.


Log in to reply