Übungsaufgaben
Zehn interaktive Übungen zum Übertragen, Nachschlagen und Testen — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.
Die Zeilen stammen aus Rust, Java und JavaScript. Auch wenn die Schreibweise neu ist: Welches bekannte Konzept steckt jeweils dahinter?
if/else if/switch verzweigen, while/for/loop wiederholen, fn/function/Rückgabetyp vor dem Namen kennzeichnen Funktionen, eckige oder geschweifte Klammern mit mehreren Werten sind Listen bzw. Arrays.Fünf Aussagen über das Lernen einer weiteren Programmiersprache.
Ordne jeder offiziellen Lernquelle die Sprache zu, um die es dort geht.
Leon kann Python und will Rust lernen. Bringe seine Lernschritte in eine sinnvolle Reihenfolge.
Du hast noch nie Rust programmiert. Lies das Programm trotzdem — (2..=11).step_by(3) bedeutet: von 2 bis einschließlich 11 in Dreierschritten.
fn main() {
let mut s = 0;
for i in (2..=11).step_by(3) {
s += i;
}
println!("{}", s);
}- Anzahl der Schleifendurchläufe
-
Wert von
iim letzten Durchlauf - Ausgabe des Programms
i nimmt die Werte 2, 5, 8, 11 an — 11 gehört wegen ..= dazu. s = 2 + 5 + 8 + 11 = 26. In Python entspräche das range(2, 12, 3). let mut braucht Rust, weil sich s ändern soll.Ergänze Leons Vokabelheft — ein Wort bleibt übrig.
Statt def schreibt man in Rust . Eine Variable, deren Wert sich später ändern darf, legt man mit an. Für die Ausgabe nutzt man . Blöcke stehen nicht eingerückt, sondern in . Und aus Pythons elif wird .
var bleibt übrig — das gibt es in JavaScript, C# und Go, aber nicht in Rust. Ohne mut sind Rust-Variablen unveränderlich.Neu in einer Sprache ist nicht nur die Syntax, sondern auch ihre Besonderheiten. Welche Aussagen stimmen?
:= in Go legt eine ganz normale, veränderbare Variable an und leitet ihren Typ ab. Die übrigen Aussagen beschreiben genau die Besonderheiten, die man beim Lernen gezielt nachschlagen sollte.Emma lässt ein Python-Programm von einem KI-Assistenten nach JavaScript übersetzen. Es soll zählen, wie viele gerade Zahlen in einer Liste stehen.
def anzahl_gerade(liste):
z = 0
for x in liste:
if x % 2 == 0:
z = z + 1
return zEin Test mit [4, 7, 10] liefert statt 2 eine Fehlermeldung. Drei Zeilen der Übersetzung sind falsch.
return. Die beiden anderen Fehler fallen erst auf, wenn man mit einem Beispiel testet, dessen Ergebnis man kennt: Mit [4, 7, 10] und korrigiertem return z käme 1 statt 2 heraus (gezählt würde nur die 7).In Python liefert sorted([10, 9, 1]) die Liste [1, 9, 10]. Mia überträgt das nach JavaScript:
let werte = [10, 9, 1]; werte.sort(); console.log(werte[werte.length - 1]);
Welche Zahl gibt das Programm aus?
sort() vergleicht ohne weitere Angabe aber als Texte, Zeichen für Zeichen: „1“ < „10“ < „9“. Die Liste wird [1, 10, 9], das letzte Element ist 9. Richtig wäre werte.sort((a, b) => a - b); — genau solche Besonderheiten muss man in der Doku nachlesen.Beim Ausprobieren neuer Sprachen erscheinen diese Meldungen. Ordne jeder Meldung ihre Ursache zu.
