HSZG Vorkurs Informatik WS 2014/Programmierübungen 2
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
'''Aufgabe 1'''
Entwickeln Sie eine Methode, mit der das Alter einer Mumie oder eines sehr alten Gegenstandes berechnet werden kann. Die Methode soll folgende Parameter besitzen:
* $n_0$ ursprüngliche Anzahl der Atomkerne
* $n_t$ aktuelle Anzahl der Atomkerne
* $t_h$ Halbwertszeit des radioaktiven Stoffes (z.B. bei Kohlenstoff 5730 Jahre)
Die Methode soll das Alter $t$ anhand des Zerfallsgesetzes berechnen:
$$t = \frac{ln(n_t)-ln(n_0)}{-\lambda}$$
Für $\lambda$ gilt: $\lambda= \frac{ln(2)}{t_h}$. Verwenden Sie dafür eine Hilfsvariable!
Die ''Rückgabe'' der Methode soll die berechnete Zeit sein.
<code id="541eaad4154c1"></code>
<run id="541eaad41553b"></run>
'''Aufgabe 2'''
Quelle: [http://www.gailer-net.de/tutorials/java/Notes/chap12/progExercises12.html | http://www.gailer-net.de]
''Al's Last Chance Gas Station'' befindet sich an der Straße 190 am Rande des Death Valley. Die nächsten 350 km gibt es keine weitere Tankstelle. Sie sollen eine Methode entwickeln, die den Fahrern dabei hilft, zu entscheiden, ob sie tanken sollen oder nicht. Das Methode besitzt die Parameter:
* die Tankkapazität in Litern
* die Benzinanzeige in Prozent (voll=1.0, drei viertel voll = 0.75 usw.)
* der Benzinverbrauch des Fahrzeuges in Liter pro Kilometer.
Die Ausgabe des Programms ist ''true'' oder ''false'', je nachdem, ob das Fahrzeug genug Benzin für 350 km hat oder nicht.
<code id="541eb1194e8a0"></code>
<run id="541eb1194e934"></run>
'''Aufgabe 3'''
Entwickeln Sie eine Methode $uhrzeit()$, die eine in Stunden und Minuten gegebene Uhrzeit als Text auf der Konsole ausgibt. Dabei werden die Stunden als Zahlen von 1 bis 12 und die Minuten als Zahlen von 0 bis 59 übergeben.
Beispiele:
uhrzeit(6,8) -> "Es ist acht Minuten nach ''sechs''."
uhrzeit(1,20) -> "Es ist 5 Minuten nach ''viertel zwei''."
uhrzeit(11,39) -> "Es ist neun Minuten nach ''halb zwölf''."
uhrzeit(3,45) -> "Es ist ''dreiviertel vier''."
Ob Sie "dreiviertel Sieben" oder "viertel vor Acht" schreiben, können Sie selbst entscheiden.
Nutzen Sie für die Ausgabe den Befehl ''System.out.println()''! Sie werden Hilfsvariablen vom Typ ''String'' benötigen, in denen Sie Fragmente der Ausgabe zwischenspeichern können. Die Ausgabe für den Nutzer können Sie dann am Ende der Methode mit dem Operator "+" zusammenfügen. Hier ein kurzes Beispiel:
<run id="541ec6ff9dc98">String teil1 = "acht";
String teil2 = "nach";
String teil3 = "sechs";
System.out.println("Es ist " + teil1 + " " + teil2 + " " + teil3)</run>
Hier soll ihre Methode stehen:
<code id="541eac2ec8a4a"></code>
<run id="541eac2ec8ae3"></run>
'''Aufgabe 4'''
Bevor Sie loslegen, müssen wir uns kurz mit einem neuen Operator in Java auseinandersetzen. Der Operator ''Modulo'' (%) ermittelt den Rest einer ganzzahligen Division:
<run id="541ec478c7158">9 % 2</run>
9 geteilt durch 2 ergibt 4 mit Rest 1. Daher wird im Beispiel die Ausgabe 1 erzeugt.
'''Nun zur Aufgabe: Schreiben Sie eine Methode, die ein beliebiges Datum in der Form von 3 ganzen Zahlen (Tag, Monat, Jahr) einliest und den Wochentag für dieses Datum ausgibt. Beispiel: Der 24.12.2009 ist ein Donnerstag.
'''
Um die Aufgabe lösen zu können, sind folgende Informationen wichtig:
* Für die Berechnung muss man von einem fixen Datum ausgehen. Wir wählen dafür den 1.1.1900, der ein Montag war. Um die Aufgabe einfach zu halten, wollen wir nur Tage ''nach dem 1.1.1900 und vor dem 1.1.2100'' berechnen.
* Wir können die Aufgabe lösen, indem wir die Tage seit dem 1.1.1900 zählen und dann die Anzahl der Tage modulo 7 rechnen. Das Ergebnis der Rechnung ergibt den Wochentag (0 für Sonntag, 1 für Montag, .. 6 für Samstag).
* Die Anzahl der Tage ergibt sich aus
** (Anzahl der vollen Jahre seit 1900) * 365 plus
** die Summe der Tage in den Monaten ''vor'' dem gegebenen Monat (31 für Januar, 28 für Februar, …) plus
** die Tage im gegebenen Monat.
Schaltjahre haben 366 Tage. Die noch fehlenden Tage ergeben sich aus (Jahr - 1900)/4. Sie müssen noch zur Anzahl der Tage hinzuaddiert werden.
Wenn das Jahr ein Schaltjahr ist und das Datum zwischen dem 1. Januar und einschließlich dem 29. Februar liegt, muss die Anzahl der Tage um 1 reduziert werden. Das Jahr ist ein Schaltjahr, wenn gilt: (Jahr - 1900)% 4 == 0.
<code id="541ec478c70b6"></code>
<run id="541ec478c71d8"></run>