In Aufgabe 1.11, Teilaufgabe 2, heisst es
Schreibe dann eine Funktion other-shore-offset, die die Länge der Strecke berechnet, die das Boot abgetrieben wird (also den Versatz am anderen Ufer, im Schaubild die Strecke b).
|
\item Schreibe dann eine Funktion \texttt{other-shore-offset}, |
|
die die Länge der Strecke berechnet, die das Boot abgetrieben wird |
|
(also den Versatz am anderen Ufer, im Schaubild die Strecke $b$). |
Für mich scheint klar, dass die Funktion mit der schon in Teilaufgabe 1 implementierten Funktion crossing-time zusammenspielen sollte. Allerdings bieten sich mit der Formel
b = vFluss ˙ t
(Das Boot wird gleich weit abgetrieben, wie der Fluss während der Überfahrtzeit fliesst.)
zweierlei Lösungsansätze an:
-
b(vFluss, t) = vFluss ˙ t
, also eine Funktion, der man das Ergebnis t von crossing-time übergeben würde.
-
b(a, vFluss, vBoot) = vFluss ˙ t(a, vBoot)
, also eine Funktion, die die in der Aufgabenstellung als gegeben angegebenen Werte entgegen nimmt, und in ihrem Rumpf selbst crossing-time aufruft, um t zu ermitteln.
Ein Kommentar im Quelltext deutet einen dritten Ansatz an:
|
% Dazu musst Du die Breite des Flusses $a$ mit dem Verhältnis von |
|
% $v_{\text{Fluss}}$ zu $v_{\text{Boot}}$ multiplizieren. |
Daraus ergibt sich
b(a, vFluss, vBoot) = a ˙ (vFluss / vBoot)
was wegen
b
= vFluss ˙ t
= vFluss ˙ (a / vBoot)
= (vFluss ˙ a) / vBoot
= (a ˙ vFluss) / vBoot
= a ˙ (vFluss / vBoot)
natürlich ebenfalls stimmt, meiner Meinung nach aber deutlich weniger offensichtlich ist. (Aber vielleicht gehe ich das Problem zu physisch anstatt geometrisch an. Aus dem Schaubild und den Ähnlichkeits-Gesetzten von Dreiecken ergibt sich natürlich auch, a : vBoot = b : vFluss bzw. a : b = vBoot : vFluss, was nach b aufgelöst ebenfalls zur expliziten Formel b = a ˙ vFluss / vBoot führt.)
Wählt man allerdings diesen dritten Ansatz für other-shore-offset, so würde die Funktion crossing-time aus Teilaufgabe 1 zwecklos, da sie für das Ermitteln des Endergebnisses gar nicht gebraucht würde.
In Aufgabe 1.11, Teilaufgabe 2, heisst es
schreibe-dein-programm/i1prog.tex
Lines 1692 to 1694 in 254277e
Für mich scheint klar, dass die Funktion mit der schon in Teilaufgabe 1 implementierten Funktion
crossing-timezusammenspielen sollte. Allerdings bieten sich mit der Formelb = vFluss ˙ t
(Das Boot wird gleich weit abgetrieben, wie der Fluss während der Überfahrtzeit fliesst.)
zweierlei Lösungsansätze an:
b(vFluss, t) = vFluss ˙ t
, also eine Funktion, der man das Ergebnis t von
crossing-timeübergeben würde.b(a, vFluss, vBoot) = vFluss ˙ t(a, vBoot)
, also eine Funktion, die die in der Aufgabenstellung als gegeben angegebenen Werte entgegen nimmt, und in ihrem Rumpf selbst
crossing-timeaufruft, um t zu ermitteln.Ein Kommentar im Quelltext deutet einen dritten Ansatz an:
schreibe-dein-programm/i1prog.tex
Lines 1695 to 1696 in 254277e
Daraus ergibt sich
b(a, vFluss, vBoot) = a ˙ (vFluss / vBoot)
was wegen
b
= vFluss ˙ t
= vFluss ˙ (a / vBoot)
= (vFluss ˙ a) / vBoot
= (a ˙ vFluss) / vBoot
= a ˙ (vFluss / vBoot)
natürlich ebenfalls stimmt, meiner Meinung nach aber deutlich weniger offensichtlich ist. (Aber vielleicht gehe ich das Problem zu physisch anstatt geometrisch an. Aus dem Schaubild und den Ähnlichkeits-Gesetzten von Dreiecken ergibt sich natürlich auch, a : vBoot = b : vFluss bzw. a : b = vBoot : vFluss, was nach b aufgelöst ebenfalls zur expliziten Formel b = a ˙ vFluss / vBoot führt.)
Wählt man allerdings diesen dritten Ansatz für
other-shore-offset, so würde die Funktioncrossing-timeaus Teilaufgabe 1 zwecklos, da sie für das Ermitteln des Endergebnisses gar nicht gebraucht würde.