Übungsaufgaben
Zehn interaktive Übungen zum Klicken, Ziehen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung, und nach dem Prüfen erklärt eine kurze Notiz die Lösung.
Ordne jeden Wert seinem Datentyp zu.
"42" und "false". 2.0 ist wegen des Punkts eine Kommazahl, obwohl der Wert ganzzahlig ist. true (Java, JavaScript) und False (Python) sind Wahrheitswerte.Fünf Behauptungen über statische und dynamische Typisierung.
In welchen Zeilen steht der Typ der Variable alter schon vor dem Programmstart fest?
let alter = 15;: In Rust ist das statische Typisierung mit Typinferenz — der Compiler legt den Typ als ganze Zahl fest. In JavaScript ist dieselbe Zeile dynamisch typisiert. Entscheidend ist die Sprache, nicht das Aussehen der Zeile. Auch Go leitet mit := den Typ ab und prüft ihn beim Kompilieren.Verbinde jeden Ausdruck mit seinem Ergebnis.
- den Text in eine Zahl um, PHP bei + ebenso (PHP verkettet nur mit dem Punkt). Python verweigert str + int, aber str * int wiederholt den Text. Java rechnet von links: erst 1 + 2 = 3, dann 3 + "8" als String-Verkettung.Verbinde Typisierung mit dem, was du in 3.1.2 über Compiler und Interpreter gelernt hast. Ein Wort bleibt übrig.
Ein Java-Programm wird vor dem Start vom übersetzt. Dabei prüft er auch alle — passt ein Wert nicht zur Variable, startet das Programm gar nicht. Deshalb heißt Java typisiert. Ein Python-Programm führt der Anweisung für Anweisung aus; ein Typfehler wird erst zur gemeldet, wenn die Zeile an der Reihe ist.
Was gibt diese JavaScript-Zeile aus?
console.log("4" * 2 + "1");
"4" * 2 wandelt den Text in eine Zahl um, weil * nur für Zahlen passt: 8. Dann 8 + "1": Bei + mit einem String verkettet JavaScript, es entsteht der Text "81".Das Python-Programm soll das Alter abfragen und ausgeben, wie alt man nächstes Jahr ist (z. B. „Nächstes Jahr bist du 15“). Bringe die Zeilen in eine Reihenfolge, in der kein TypeError auftritt.
alter = alter + 1
print(text)
eingabe = input("Alter? ")
text = "Nächstes Jahr bist du " + str(alter)
alter = int(eingabe)
input liefert immer einen String. Vor dem Rechnen muss int() ihn in eine Zahl umwandeln, vor dem Verketten macht str() wieder Text daraus. Stünde alter + 1 vor der Umwandlung, gäbe es einen TypeError.In Python kann eine Umwandlung den Typ eines Werts ändern. Verfolge das Programm.
a = 7 b = a / 2 c = str(a) * 3 d = int(c) + 1 e = len(c) + b
- Wert von b
- Wert von d
- Wert von e
- Wie viele verschiedene Datentypen kommen in a bis e vor?
/ liefert in Python immer eine Kommazahl: b = 3,5 (float). str(7) * 3 ergibt den Text "777", int("777") + 1 = 778. len("777") = 3, plus 3,5 ergibt 6,5. Typen: int (a, d), float (b, e), str (c) — also drei.Die Zeilen stehen im main-Teil eines Java-Programms. Drei Zeilen lehnt der Compiler mit einem Typfehler ab.
anzahl * preis ist erlaubt: int wird dabei ohne Verlust zu double. name + anzahl ist String-Verkettung und ergibt "Mia3". Die drei Fehler findet der Compiler vor dem Start — deshalb läuft das Programm erst, wenn alle behoben sind.Welchen Wert gibt das JavaScript-Programm am Ende aus?
let p = "20"; p = p - 5; p = p + 5; p = p + "5"; p = p - 5; console.log(p);
