MINT lernen

Ein Problem in vielen Sprachen

Zehn interaktive Übungen zu Syntax, Ausgabe und Division in sieben Sprachen — von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn interaktive Übungen zum Vergleichen, Übersetzen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.

A1
Wer spricht welche Ausgabe?
AFB I

Jede Zeile gibt den Text Hi aus. Ordne jede Ausgabe-Anweisung ihrer Sprache zu.

A2
Zeilen einer Sprache zuordnen
AFB I

Diese Zeilen stammen aus vier Programmen in Python, PHP, Go und Rust. Sortiere sie nach Sprache.

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1Python
2PHP
3Go
4Rust
Erkennungszeichen: Python — Doppelpunkt und Einrückung statt Klammern; PHP — $ vor jeder Variable und Semikolon; Go — := und { ohne runde Klammern um den Schleifenkopf; Rust — let, Bereiche wie 0..3 und println!.
A3
Stimmt's? — Syntax im Vergleich
AFB I

Fünf Aussagen darüber, was sich zwischen Sprachen unterscheidet — und was gleich bleibt.

5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Sprachen unterscheiden sich in der Syntax (Blöcke, Semikolon, Variablen, Ausgabe), nicht im Algorithmus.
A4
Rechenkette: 19 geteilt durch 4
AFB II

Fünf Einzeiler aus verschiedenen Sprachen. Welche Zahl wird jeweils ausgegeben? Nutze das Dezimalkomma.

Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. Python: print(19 / 4)
  2. Java: System.out.println(19 / 4);
  3. Python: print(19 // 4)
  4. JavaScript: console.log(19 / 4);
  5. Go: fmt.Println(19 % 4)
In Java, C#, Go und Rust ergibt / zwischen zwei ganzen Zahlen wieder eine ganze Zahl — der Rest fällt weg (19 / 4 = 4). Python (mit /), JavaScript und PHP rechnen mit Kommazahl (4,75). // in Python teilt ganzzahlig, % liefert den Rest: 19 = 4 · 4 + 3.
A5
Erst teilen, dann malnehmen
AFB II

Lina hat in Python print(17 / 5 * 5) getestet und 17.0 erhalten. Nun übersetzt sie die Zeile nach Java:

Java
int a = 17;
int b = 5;
System.out.println(a / b * b);

Welche Zahl gibt das Java-Programm aus?

Rechne selbst und trage das Ergebnis ein — Enter prüft direkt.
Trick: Es sieht aus, als müsse wieder 17 herauskommen. Java rechnet aber von links nach rechts mit ganzen Zahlen: a / b = 17 / 5 = 3 (Rest fällt weg), dann 3 · 5 = 15. Die „gleiche“ Zeile liefert in zwei Sprachen verschiedene Ergebnisse.
A6
Go-Countdown zusammensetzen
AFB II

Das Go-Programm soll 3, 2, 1 und dann Start! ausgeben. Bringe die Zeilen in die richtige Reihenfolge.

Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1for i := 3; i > 0; i-- { fmt.Println(i) }
2package main
3}
4func main() {
5fmt.Println("Start!")
6import "fmt"
Go-Rahmen: erst package main, dann die Importe, dann func main() {. Die Schleife muss vor „Start!“ stehen, sonst kommt der Start zuerst. Die schließende Klammer beendet main.
A7
Mix: Python und Java im Vergleich
AFB II

Dasselbe kleine Programm in zwei Sprachen:

Python
preis = 4
anzahl = 3
print("Summe: " + str(preis * anzahl))
Java
int preis = 4;
int anzahl = 3;
System.out.println("Summe: " + preis * anzahl);

Welche Aussagen stimmen?

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Punkt vor Strich gilt auch in Java: preis * anzahl wird zuerst zu 12, dann angehängt. Python würde bei "Summe: " + 12 einen TypeError melden (dynamisch typisiert, keine automatische Umwandlung). Java ist statisch typisiert — der Typ int steht fest — und läuft als Bytecode in der JVM.
A8
Fehler in der Java-Übersetzung
AFB III

Dieses Python-Programm gibt 2, 4, 6 aus:

Python
def doppelt(x):
    return 2 * x

for i in range(1, 4):
    print(doppelt(i))

Jonas hat es nach Java übersetzt. Drei Zeilen sind falsch.

Klicke genau die fehlerhaften Zeilen an — die richtigen musst du stehen lassen.
Beim Übersetzen passieren drei typische Fehler: Satzzeichen der neuen Sprache vergessen, Grenzen falsch übertragen (range schließt das Ende aus) und Befehle der alten Sprache stehen lassen.
A9
Halbieren in zwei Sprachen
AFB III

Das Python-Programm zählt, wie oft man 1000 ganzzahlig halbieren kann, bis höchstens 1 übrig bleibt. Es gibt 9 aus.

Python
n = 1000
s = 0
while n > 1:
    n = n // 2
    s = s + 1
print(s)
JavaScript
let n = 1000;
let s = 0;
while (n > 1) {
  n = n / 2;
  s = s + 1;
}
console.log(s);

Mia übersetzt es nach JavaScript und schreibt n / 2. Was gibt ihr Programm aus?

Schiebe den Regler auf deine Antwort — Pfeiltasten bewegen ihn feiner. Nach dem Prüfen siehst du den Trefferbereich.
0 Durchläufe20 Durchläufe
Python: 1000, 500, 250, 125, 62, 31, 15, 7, 3, 1 → 9 Durchläufe. JavaScript teilt mit Komma: 125 → 62,5 → 31,25 → 15,625 → 7,8125 → 3,90625 → 1,953125 → 0,9765625. Weil 1,953125 noch größer als 1 ist, braucht es einen Durchlauf mehr: 10. Richtig wäre n = Math.floor(n / 2);.
A10
Gleichwertig zu print(7 // 2)?
AFB III

Das Python-Programm print(7 // 2) gibt 3 aus. Welche Zeilen geben in ihrer Sprache ebenfalls 3 aus?

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Java, Go, C# und Rust teilen ganze Zahlen ganzzahlig. JavaScript und PHP liefern 3,5 und brauchen Math.floor bzw. intdiv. Bei C# macht 7.0 eine Kommazahl daraus → 3,5. Vorsicht bei negativen Zahlen: Python rundet -7 // 2 auf −4 ab, Java schneidet -7 / 2 auf −3 ab.