Übungsaufgaben
Zehn interaktive Übungen zum Vergleichen, Übersetzen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.
Jede Zeile gibt den Text Hi aus. Ordne jede Ausgabe-Anweisung ihrer Sprache zu.
System.out, C# nutzt die Klasse Console, Go holt Println aus dem Paket fmt, und bei Rust verrät das Ausrufezeichen ein Makro. Python und Go brauchen kein Semikolon.Diese Zeilen stammen aus vier Programmen in Python, PHP, Go und Rust. Sortiere sie nach Sprache.
$ vor jeder Variable und Semikolon; Go — := und { ohne runde Klammern um den Schleifenkopf; Rust — let, Bereiche wie 0..3 und println!.Fünf Aussagen darüber, was sich zwischen Sprachen unterscheidet — und was gleich bleibt.
Fünf Einzeiler aus verschiedenen Sprachen. Welche Zahl wird jeweils ausgegeben? Nutze das Dezimalkomma.
-
Python:
print(19 / 4) -
Java:
System.out.println(19 / 4); -
Python:
print(19 // 4) -
JavaScript:
console.log(19 / 4); -
Go:
fmt.Println(19 % 4)
/ 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.Lina hat in Python print(17 / 5 * 5) getestet und 17.0 erhalten. Nun übersetzt sie die Zeile nach Java:
int a = 17; int b = 5; System.out.println(a / b * b);
Welche Zahl gibt das Java-Programm aus?
a / b = 17 / 5 = 3 (Rest fällt weg), dann 3 · 5 = 15. Die „gleiche“ Zeile liefert in zwei Sprachen verschiedene Ergebnisse.Das Go-Programm soll 3, 2, 1 und dann Start! ausgeben. Bringe die Zeilen in die richtige Reihenfolge.
for i := 3; i > 0; i-- { fmt.Println(i) }
package main
}
func main() {
fmt.Println("Start!")
import "fmt"
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.Dasselbe kleine Programm in zwei Sprachen:
preis = 4
anzahl = 3
print("Summe: " + str(preis * anzahl))int preis = 4;
int anzahl = 3;
System.out.println("Summe: " + preis * anzahl);Welche Aussagen stimmen?
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.Dieses Python-Programm gibt 2, 4, 6 aus:
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.
range schließt das Ende aus) und Befehle der alten Sprache stehen lassen.Das Python-Programm zählt, wie oft man 1000 ganzzahlig halbieren kann, bis höchstens 1 übrig bleibt. Es gibt 9 aus.
n = 1000
s = 0
while n > 1:
n = n // 2
s = s + 1
print(s)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?
print(7 // 2)?Das Python-Programm print(7 // 2) gibt 3 aus. Welche Zeilen geben in ihrer Sprache ebenfalls 3 aus?
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.