Pausenverkauf
AFB I–IIDie SV verkauft Brezeln. Weil Kommazahlen beim Rechnen ungenau werden können, rechnet das Programm in Cent:
let preis = 120;
let anzahl = 3;
let gesamt = preis * anzahl;
const RABATT = 50;
gesamt = gesamt - RABATT;
console.log("Zu zahlen: " + gesamt + " Cent");
- Nenne alle Variablen und Konstanten mit ihrem Datentyp.
- Erstelle eine Tabelle mit dem Wert von
gesamtnach jeder Zeile und gib die Ausgabe an. - Begründe, warum
RABATTmitconst,gesamtaber mitletangelegt wird.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
gesamt gibt es erst ab Zeile 3.Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
preis, anzahl, gesamt (Variablen) und RABATT (Konstante), alle vom Typ number.
Erwartungshorizont zu Aufgabe b)
Zeile 1–2: noch keine Variable gesamt; Zeile 3: 360; Zeile 4: 360; Zeile 5: 310. Ausgabe: Zu zahlen: 310 Cent.
Erwartungshorizont zu Aufgabe c)
Der Rabatt ist fest und darf sich nicht versehentlich ändern — const verhindert eine neue Zuweisung. gesamt bekommt in Zeile 5 einen neuen Wert, braucht also let.
Der Altersrechner
AFB II–IIIOle schreibt einen Altersrechner. Das Geburtsjahr kommt später aus einem Eingabefeld und ist deshalb Text:
let geburtsjahr = "2011"; let alter = 2026 - geburtsjahr; let naechstesJahr = alter + "1"; console.log(alter); console.log(naechstesJahr);
- Ermittle Wert und Datentyp von
alterundnaechstesJahrund gib die Ausgaben an. - Erkläre, warum Zeile 2 richtig rechnet, Zeile 3 aber nicht.
- Entwickle eine verbesserte Fassung, die zuerst in eine Zahl umwandelt und für das nächste Jahr richtig rechnet.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
alter = 15 (number); naechstesJahr = "151" (string). Ausgaben: 15 und 151.
Erwartungshorizont zu Aufgabe b)
- kann nur rechnen und wandelt "2011" deshalb in eine Zahl um. In Zeile 3 steht + mit dem Text "1" — dann wird verkettet: 15 wird zu „15“, angehängt „1“.
Erwartungshorizont zu Aufgabe c)
let geburtsjahr = Number("2011"); let alter = 2026 - geburtsjahr; let naechstesJahr = alter + 1; — ohne Anführungszeichen um die 1. Ausgaben: 15 und 16. Sicherer, weil man sich nicht darauf verlässt, welcher Operator umwandelt.
