Celsius in Fahrenheit
AFB I–IIFür eine Wetter-App mit Nutzern aus den USA schreibt Jana:
function fahrenheit(c) {
return c * 1.8 + 32;
}
let heute = fahrenheit(20);
console.log(heute);
- Gib Name, Parameter und Rückgabewert der Funktion an.
- Berechne die Rückgabewerte für 20 °C und für −10 °C.
- Erläutere, warum Jana
returnund nichtconsole.login der Funktion verwendet, wenn sie später prüfen will, ob es wärmer als 70 °F ist.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Name fahrenheit, Parameter c, Rückgabewert: die Temperatur in °F, also c * 1.8 + 32.
Erwartungshorizont zu Aufgabe b)
20 · 1,8 + 32 = 68 °F; −10 · 1,8 + 32 = −18 + 32 = 14 °F.
Erwartungshorizont zu Aufgabe c)
Mit return „ist“ der Aufruf eine Zahl, die man speichern und vergleichen kann: if (fahrenheit(20) > 70). Mit console.log stünde der Wert nur in der Konsole; der Aufruf lieferte undefined, und der Vergleich wäre immer false.
Punkte im Reaktionsspiel
AFB II–IIIIn einem Reaktionsspiel gibt es 10 Punkte pro Treffer. Wer in weniger als 60 Sekunden fertig ist, bekommt 50 Bonuspunkte. Lena schreibt:
function punkte(treffer, zeit) {
let p = treffer * 10;
if (zeit < 60) {
p = p + 50;
}
console.log(p);
}
let gesamt = punkte(8, 55) + punkte(5, 70);
- Bestimme die Punkte für die beiden Runden (8 Treffer in 55 s, 5 Treffer in 70 s).
- Überprüfe, welchen Wert
gesamtbekommt, und erkläre den Fehler. - Entwickle eine verbesserte Funktion und einen Aufruf, der die Gesamtpunkte beider Runden ausgibt.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Runde 1: 8 · 10 + 50 = 130. Runde 2: 5 · 10 = 50 (kein Bonus, 70 ≥ 60).
Erwartungshorizont zu Aufgabe b)
Die Funktion gibt 130 und 50 nur in der Konsole aus, liefert aber nichts zurück. Beide Aufrufe haben den Wert undefined; undefined + undefined ergibt NaN.
Erwartungshorizont zu Aufgabe c)
In der Funktion return p; statt console.log(p);. Dann: let gesamt = punkte(8, 55) + punkte(5, 70); und console.log(gesamt); → 180.
