Rust/Grundlagen: Unterschied zwischen den Versionen

Aus Dokument
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:




Hallo! Willkommen in der spannenden Welt von Rust! Stell dir vor, du bist ein Erfinder, und dein Computer ist eine riesige Werkstatt. Rust ist dein cooles, neues Werkzeug, mit dem du super schnelle und sichere Maschinen (also Programme!) bauen kannst.  
Willkommen zum großen Rust-Abenteuer! Stell dir Rust wie eine Kiste voller unkaputtbarer Lego-Bausteine vor. Wenn du damit eine Burg baust, weißt du: Sie wird extrem schnell fertig und bricht niemals zusammen!
Diese Lernreise ist speziell für Kinder ab zehn Jahren und für absolute Code-Anfänger gedacht.


In diesem Lernpfad schauen wir uns an, wie du dieses Werkzeug benutzt. Wir machen viele kleine, spannende Projekte und mischen die Themen gut durch (das nennt man "Interleaving"), damit dein Gehirn immer wieder neu herausgefordert wird und du dir alles besser merken kannst! Wir fangen ganz unten bei den einfachen Dingen an und bauen darauf auf ("Bottom-Up").
== Lernziele ==
Am Ende dieser Etappe kannst du:
* Deinen eigenen Werkzeugkasten aufbauen (Installation).
* Dem Computer Befehle erteilen ("Hello World!").
* Daten in Kisten speichern (Variablen & Datentypen).
* Den Computer Entscheidungen treffen lassen (If/Else).
* Langweilige Aufgaben vom Computer schnell wiederholen lassen (Schleifen).
* Deine eigenen Mini-Programme komplett selbst schreiben!


== Ziel: Verstehe die Bausteine von Rust! ==
== Lektion 1: Installation und dein erstes Programm ==
Wir werden lernen, wie Rust denkt und funktioniert. Am Ende kannst du deinem Computer Befehle geben und eigene kleine Programme schreiben!


== Modul 1: Deine Werkstatt einrichten (Installation & Setup) ==
=== Was brauchen wir zum Bauen? ===
Bevor wir bauen können, müssen wir unsere Werkstatt vorbereiten!
Um Rust zu nutzen, brauchst du drei super Helfer auf deinem Computer:
* '''rustup''': Das ist dein Werkzeugkasten-Manager. Er holt dir immer die neueste Version von Rust aus dem Internet.
* '''rustc''': Der Übersetzer (Compiler). Er liest deinen Text-Code und übersetzt ihn in Maschinensprache – die einzige Sprache, die dein Computer versteht (nur Einsen und Nullen).
* '''cargo''': Dein allerbester Freund! Cargo erstellt neue Projekte für dich, startet deine Programme und lädt Erweiterungen aus dem Internet herunter.


=== 1. [[Rust/Grundlagen/Installation|Installation]]: `rustup`, `rustc` und `cargo` ===
'''Aufgabe für dich:''' Öffne ein Terminal (das schwarze Fenster deines Computers) und tippe ein, was die Rust-Webseite dir sagt, um es zu installieren.
Um Rust zu sprechen, brauchen wir drei wichtige Helferlein:
* '''`rustup`''': Das ist der Werkstatt-Manager. Er holt dir immer die neuesten Werkzeuge.
* '''`rustc`''': Das ist der Übersetzer. Er übersetzt das, was du schreibst, in eine Sprache, die der Computer versteht (Maschinensprache).
* '''`cargo`''': Das ist dein Roboter-Assistent! Er baut deine Programme zusammen, packt sie ein und hilft dir beim Aufräumen.


'''So geht's auf dem Computer:'''
=== Das IDE-Setup (Dein Zauber-Schreibtisch) ===
Wenn du unter Linux oder macOS arbeitest, tippst du folgendes in ein schwarzes Fenster, das sich Terminal nennt:
Ein normaler Notizblock ist zu dumm zum Programmieren. Wir benutzen '''Visual Studio Code (VS Code)'''.
<source lang="bash">
Lade VS Code herunter und installiere die Erweiterung '''rust-analyzer'''. Diese Erweiterung ist wie ein Helfer, der dir noch beim Tippen Fehler mit roten Linien markiert – genau wie dein Lehrer beim Diktat!
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
</source>
Das sieht ein bisschen wie ein Zauberspruch aus, oder? Dieser Befehl holt die Helfer auf deinen Computer.


=== 2. Dein erstes Programm: „Hello World!===
=== Das "Hello World!"-Programm ===
Lassen wir deinen Computer "Hallo Welt!" sagen! Rust freut sich nämlich, dich kennenzulernen.
Lass uns den Computer dazu bringen, dich zu begrüßen!
Öffne das Terminal und gib diesen Befehl ein (denk daran: Cargo ist dein Roboter-Assistent!):
Tippe in deinem Terminal:
<source lang="bash">
<syntaxhighlight lang="bash">
cargo new hallo_welt
cargo new hallo_welt
cd hallo_welt
cd hallo_welt
</source>
cargo run
</syntaxhighlight>


Wenn du jetzt eine Datei namens `main.rs` (in deinem neuen Ordner `src`) öffnest, solltest du diesen Code sehen:
Was ist passiert? <code>cargo new</code> hat ein leeres Projekt gebaut. <code>cd</code> bedeutet "change directory" (gehe in den Ordner). Mit <code>cargo run</code> baust und startest du das Programm!
<source lang="rust">
Wenn du in die Datei <code>src/main.rs</code> schaust, siehst du:
<syntaxhighlight lang="rust">
fn main() {
fn main() {
     println!("Hello, world!");
     println!("Hello, world!");
}
}
</source>
</syntaxhighlight>
* `fn main()` bedeutet: "Hier fangen wir an!". `fn` steht für Funktion – das ist ein Block aus Befehlen.
* <code>fn main()</code>: Hier startet das Programm. Jeder Computer sucht nach der Hauptfunktion "main", um anzufangen. <code>fn</code> bedeutet "Funktion" (ein Rezept).
* `println!` bedeutet: "Drucke eine Zeile (print line) Text auf den Bildschirm". Das `!` zeigt, dass das ein besonderer Taschenspielertrick in Rust ist (man nennt das ein "Makro").
* <code>println!("...");</code>: Das sagt dem Computer: "Drucke diesen Text auf den Bildschirm". Das <code>!</code> bedeutet, dass es sich um ein Makro handelt. Stell es dir wie einen vorgefertigten Zauberspruch vor!
 
Tippe jetzt in dein Terminal:
<source lang="bash">
cargo run
</source>
Und tada! Der Computer sagt "Hello, world!" zu dir!


=== 3. Dein Schreibtisch: IDE (z.B. VS Code) einrichten ===
Du kannst deinen Code nicht einfach auf einen Schmierzettel schreiben. Es gibt tolle Programme dafür. Ein beliebtes Programm heißt '''Visual Studio Code''' (kurz: VS Code). Das ist wie ein super schlaues Notizbuch.
Wenn du VS Code installiert hast, lade dir die Erweiterung (ein kleines Extra-Werkzeug) namens '''"rust-analyzer"''' herunter. Er ist wie ein kluger Lehrer, der dir rote Striche zeigt, wenn du dich vertippst, und dir tolle Tipps gibt.


== Modul 2: Die ersten Bausteine (Grundlegende Syntax) ==
== Lektion 2: Grundlegende Syntax (Kisten und Schachteln) ==


=== 1. Kisten für Notizen: Variablen (`let`, `let mut`) ===
=== Variablen und Mutabilität (let und let mut) ===
Stell dir vor, du hast eine Kiste. In diese Kiste kannst du etwas reinlegen. Das nennt man in Rust eine "Variable".
Stell dir Variablen wie Kisten vor, in die du Werte (wie Zahlen oder Wörter) packst. Jede Kiste hat ein Schildkleber mit einem Namen.
Um eine Kiste zu machen, sagen wir `let`:
<syntaxhighlight lang="rust">
<source lang="rust">
fn main() {
fn main() {
     let alter = 10; // Wir erstellen eine Kiste "alter" und legen die 10 rein.
     let alter = 10;
     println!("Ich bin {} Jahre alt.", alter); // Die {} machen Platz für unsere Zahl!
     println!("Ich bin {} Jahre alt.", alter);
}
}
</source>
</syntaxhighlight>
 
In Rust sind Kisten normalerweise **verschlossen**. Du kannst den Inhalt von <code>alter</code> nicht mehr ändern!
'''Achtung!''' In Rust sind Kisten normalerweise fest zugeklebt! Wenn du `let alter = 10;` machst, kannst du danach `alter` NICHT mehr auf 11 ändern.
Wenn eine Kiste **offen** bleiben soll, damit du etwas Neues hineinlegen kannst, brauchst du das Zauberwort <code>mut</code> (das steht für mutabel, also veränderbar).
Wenn du eine Kiste haben willst, bei der du das, was drinnen ist, später austauschen darfst, musst du `mut` (wie mutabel oder veränderbar) dazu schreiben!
<syntaxhighlight lang="rust">
<source lang="rust">
fn main() {
fn main() {
     let mut taschengeld = 5; // mut bedeutet: Ich darf den Wert ändern!
     let mut punkte = 0; // Kiste ist offen!
     println!("Ich habe {} Euro.", taschengeld);
     punkte = punkte + 5; // Juhu, 5 Punkte gefunden!
   
     println!("Punkte: {}", punkte);
    taschengeld = 10; // Jetzt habe ich mehr bekommen!
     println!("Juhu, jetzt habe ich {} Euro!", taschengeld);
}
}
</source>
</syntaxhighlight>


=== 2. Verschiedene Dinge aufbewahren: Datentypen ===
=== Datentypen (Was passt in die Kisten?) ===
Es gibt nicht nur Zahlen! In deine Kisten passen verschiedene Dinge:
Der Computer muss wissen, ob in der Kiste eine Zahl, ein Wort oder ein Schalter liegt.
* '''Ganze Zahlen (Integer)''': z.B. `10`, `42`, `-5`.  
* '''Skalare (Einzelne Dinge):'''
* '''Kommazahlen (Float)''': z.B. `3.14` oder `2.5`.
** Ganze Zahlen (z.B. <code>10</code> oder <code>-5</code>). In Rust oft <code>i32</code> genannt.
* '''Wahrheitswerte (Booleans)''': Das kann nur `true` (Wahr) oder `false` (Falsch) sein. Perfekt, um zu prüfen, ob das Licht an ist!
** Kommazahlen (z.B. <code>3.14</code>). Genannt <code>f64</code>.
* '''Buchstaben und Wörter (Char und String)''': Ein einzelner Buchstabe ist ein 'A', ein ganzer Text ist "Hallo!".
** Wahrheitswerte (Booleans). Wie ein Lichtschalter: <code>true</code> (An/Wahr) oder <code>false</code> (Aus/Falsch). Genannt <code>bool</code>.
** Buchstaben. Einzelne Zeichen wie <code>'A'</code> oder ein Emoji <code>'🚀'</code>. Genannt <code>char</code>.
* '''Verbundtypen (Mehrere Dinge):'''
** Arrays: Ein Eierkarton. Alle Dinge darin müssen gleich sein (z.B. nur Zahlen). Die Größe ist fest.
** Tupel: Eine Brotdose mit verschiedenen Fächern. In Fach 1 ist ein Brot (Text), in Fach 2 ein Apfel (Zahl).


<source lang="rust">
=== Funktionen und Kommentare ===
fn main() {
Kommentare sind Notizen, die der Computer komplett ignoriert. Sie sind nur für dich! Starte sie mit <code>//</code>.
    let note = 1;              // Eine ganze Zahl
Funktionen sind wie Backrezepte. Einmal aufschreiben, 100-mal Waffeln backen!
    let gewicht = 35.5;        // Eine Kommazahl
<syntaxhighlight lang="rust">
    let ist_es_tag = true;      // Boolean (Wahr)
// Das ist eine Funktion (unser Rezept), die uns begrüßt.
    let anfangsbuchstabe = 'T'; // Ein Zeichen in einfachen Anführungszeichen
fn begruesse_hund(name: &str) {
    let name = "Thorsten";      // Ein Text in doppelten Anführungszeichen
     println!("Wuff, hallo {}!", name);
}
</source>
 
Manchmal packt man auch Dinge zusammen!
* '''Tupel''': Ein Regalbrett mit festen Dingen, z.B. deine Lieblingsfarbe und deine Glückszahl. `let mein_tupel = ("Blau", 7);`
* '''Array''': Eine Liste von mehreren Dingen, die aber alle vom gleichen Typ sein müssen. `let meine_noten = [1, 2, 1, 3];`
 
=== 3. Mini-Fabriken: Funktionen ===
Wenn du denselben Code oft brauchst, kannst du ihn verpacken. Das ist eine Funktion. Die `main()`-Funktion kennst du schon!
Lass uns eine Fabrik bauen, die immer "Guten Morgen" sagt und den Namen dazu:
<source lang="rust">
// Hier ist unsere neue Fabrik!
fn sage_hallo(name: &str) {
     println!("Guten Morgen, {}!", name);
}
}


fn main() {
fn main() {
     sage_hallo("Lukas"); // Wir rufen die Fabrik auf und geben ihr den Namen.
     // Hier nutzen wir das Rezept
     sage_hallo("Mia");
     begruesse_hund("Bello");
}
}
</source>
</syntaxhighlight>


* '''Kommentare''': Manchmal möchtest du dir was notieren, das der Computer ignorieren soll. Mach einfach `//`. Alles danach in der Zeile ist für dich!


== Modul 3: Der Verkehrspolizist (Kontrollstrukturen) ==
== Lektion 3: Kontrollstrukturen (Der Computer denkt mit) ==
Ein Programm muss auch Entscheidungen treffen können!


=== 1. Wenn dies, dann das: `if`, `else if`, `else` ===
=== Entscheidungen treffen: if, else if, else ===
Stell dir vor, du stehst vor einer Ampel.
Stell dir eine Straßenkreuzung vor.
<source lang="rust">
<syntaxhighlight lang="rust">
fn main() {
fn main() {
     let ampel = "Rot";
     let taschengeld = 10;


     if ampel == "Grün" {
     if taschengeld >= 15 {
        // Wenn Grün, dann gehen.
         println!("Ich kaufe mir das große Lego-Set!");
         println!("Du darfst über die Straße gehen!");
     } else if taschengeld >= 5 {
     } else if ampel == "Rot" {
         println!("Ein Eis reicht auch.");
        // Oder wenn Rot, dann stehen bleiben.
         println!("Halt! Warten!");
     } else {
     } else {
        // Sonst (zum Beispiel wenn sie aus ist).
         println!("Ich muss noch sparen.");
         println!("Pass gut auf!");
     }
     }
}
}
</source>
</syntaxhighlight>
Das ist ein Wegweiser für dein Programm!
Analyzed
~/Übungen
Thought for 118s
 
 
 


=== Schleifen: loop, while, for ===
Computer lieben Wiederholungen. Menschen hassen sie. Lassen wir die Arbeit vom Computer machen!


 
'''1. Das endlose Karussell (loop):'''
 
Es dreht sich für immer, es sei denn du schreist STOPP (<code>break</code>).
 
<syntaxhighlight lang="rust">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Edited
thorsten.wiki
+448
-0
Thought for 2s
 
 
=== 2. Immer wieder: Schleifen (`loop`, `while`, `for`) ===
Manchmal möchtest du Dinge wiederholen, ohne sie tausendmal zu tippen.
 
* Die Endlos-Schleife (`loop`): Das ist wie ein Hamsterrad, es dreht sich immer weiter, bis du "Stopp!" (`break`) rufst!
<source lang="rust">
fn main() {
fn main() {
     let mut zähler = 0;
     let mut runden = 0;
     loop {
     loop {
         zähler = zähler + 1;
         runden = runden + 1;
         println!("Wir sind bei {}!", zähler);
         println!("Runde {}!", runden);
         if zähler == 3 {
         if runden == 3 {
             println!("Genug gedreht!");
             println!("Mir wird schlecht, aussteigen!");
             break; // Hier springen wir aus der Schleife raus
             break; // Das STOPP-Wort
         }
         }
     }
     }
}
}
</source>
</syntaxhighlight>


* Solange etwas stimmt (`while`): Wiederhole etwas, ''solange'' eine Bedingung wahr ist.
'''2. Solange du ein Ticket hast (while):'''
<source lang="rust">
<syntaxhighlight lang="rust">
fn main() {
fn main() {
     let mut kekse = 3;
     let mut tickets = 3;
     while kekse > 0 {
     while tickets > 0 {
         println!("Ich esse einen Keks! Übrig sind: {}", kekse);
         println!("Autoscooter fahren! Tickets übrig: {}", tickets);
         kekse = kekse - 1; // Ein Keks ist weg!
         tickets = tickets - 1;
     }
     }
     println!("Alle Kekse aufgegessen!");
     println!("Alle Tickets weg.");
}
}
</source>
</syntaxhighlight>


* Für jedes Stück (`for`): Perfekt, um eine Liste oder einen bestimmten Zeitraum durchzugehen.
'''3. Von 1 bis 10 zählen (for):'''
<source lang="rust">
Perfekt, wenn du genau weißt, wie oft etwas passieren soll.
<syntaxhighlight lang="rust">
fn main() {
fn main() {
     // 1..4 bedeutet die Zahlen 1, 2 und 3 (die 4 ist nicht dabei!)
     // 1..4 bedeutet: zähle 1, 2, 3 (die 4 ist NICHT mehr drin, wie ein Countdown)
     for zahl in 1..4 {
     for zahl in 1..4 {
         println!("Countdown: {}", zahl);
         println!("Ich zähle: {}", zahl);
    }
    println!("Los geht's!");
}
</source>
 
 
== Praxis-Projekte: Werde zum Meister-Erfinder! ==
Hier mischen wir alles (Interleaving!). Versuche, diese Projekte selber in VS Code zu schreiben!
 
'''Projekt 1: Der Taschengeld-Rechner'''
* Was es tun soll: Lege fest, wie viel Taschengeld du pro Monat bekommst (z.B. `let pro_monat = 20;`). Berechne dann, wie viel du in einem ganzen Jahr (12 Monate) bekommst! Gib das Ergebnis mit `println!` aus.
 
'''Projekt 2: Der Geheimtür-Wächter'''
* Was es tun soll: Lege ein Passwort fest `let geheimes_passwort = "Apfelsaft";`. Benutze dann eine `if`-Abfrage! Teste, ob jemand das richtige Passwort hat. Wenn ja, schreibe "Tür öffnet sich". Wenn nein, schreibe "Alarm!!!".
 
'''Projekt 3: Der Raketen-Start! (Countdown)'''
* Was es tun soll: Schreibe ein Programm, das von 10 herunterzählt bis 1! Nutze dafür am besten eine `while`-Schleife. Wenn es bei 0 ist, soll der Computer "Rakete startet! Wuuuuuuusch!" auf den Bildschirm schreiben.
 
'''Projekt 4: Der Temperatur-Bewerter'''
* Was es tun soll: Lege als Variable (Typ: ganze Zahl) das aktuelle Wetter in Grad Celsius fest. Wenn es über 25 Grad hat, schreibe "Lass uns Eis essen!". Unter 10 Grad "Zieh eine Jacke an!". Dazwischen "Perfektes Spielwetter!". Nutze dafür `if` und `else if`.
 
'''Projekt 5: Einmaleins-Trainer (Bottom-Up Aufgabe)'''
* Was es tun soll: Schreibe eine `for`-Schleife, die dir die 7er-Reihe aufschreibt: 7, 14, 21 ... bis 70.
* Extra schwer: Schreib das so, dass du die Zahl, z.B. die 7, nur oben in eine Variable packst (`let reihe = 7;`).
 
 
== 🧠 Großes Rust-Quiz 🧠 ==
Teste jetzt dein neues Wissen aus dem Lernpfad!
 
<quiz display=simple>
{Rust-Wissenstest 1: Vervollständige die Lücken
|type="{}"}
Um einen veränderbaren Wert in Rust zu speichern, schreibst du nach "let" das Wort { mut _3 }.
Damit der Computer deinen Text auf den Bildschirm malt, benutzt du { println! _8 }("Hallo!").
Der Befehl in der Konsole, der ein neues Bauprojekt erstellt, fängt an mit { cargo _5 } new mein_projekt.
Die Abkürzung für eine Funktion heisst { fn _2 } und die Hauptfunktion, in der dein Programm immer startet, nennt sich { main _4 }.
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 2: Datentypen und Variablen
|type="{}"}
Um eine Kommazahl wie 3.5 abzuspeichern, verwendet Rust den Typ { Float _5 } (Gleitkommazahl).
Wahrheitswerte wie "true" und "false" nennt man auch { Booleans _8 }.
Um eine Schleife zu bauen, die FÜR jede Zahl von 1 bis 10 durchläuft, nutzen wir das { for _3 }-Schlüsselwort.
Mit einem doppelten { // _2 } sagst du Rust, dass du dir eine Notiz gemacht hast (Kommentar). Das Programm überspringt das einfach.
Eine unendliche Schleife kannst du durch den Befehl { break _5 } beenden.
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 3: Vervollständige das Hallo-Welt Programm
|type="{}"}
fn { main _4 }() {
    println!("Hello, { world _5 }!");
}
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 4: Vervollständige die Variable
|type="{}"}
Um sicherzustellen, dass sich der Wert nicht ändert:
{ let _3 } alter = 10;
Um den Wert später noch ändern zu können:
let { mut _3 } guthaben = 5;
guthaben = 10;
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 5: Vervollständige die If-Abfrage
|type="{}"}
let hunger = true;
{ if _2 } hunger == true {
    println!("Lass uns Kuchen essen!");
} { else _4 } {
    println!("Ich bin satt!");
}
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 6: Vervollständige die Loop-Schleife
|type="{}"}
let mut runden = 0;
{ loop _4 } {
    runden = runden + 1;
    if runden == 3 {
        { break _5 };
     }
     }
    // Willst du die letzte Zahl mitzählen, nutze 1..=3
}
}
</quiz>
</syntaxhighlight>
 
<quiz display=simple>
{Rust-Wissenstest 7: Vervollständige die For-Schleife
|type="{}"}
// Wir zählen von 1 bis 5 (ohne 6)
{ for _3 } zahl in 1..6 {
    println!("Zahl: {}", { zahl _4 });
}
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 8: Funktionen
|type="{}"}
Vervollständige den Aufbau einer neuen Funktion, die "winken" heißt.
{ fn _2 } winken() {
    println!("*Winkt*");
}
Um die Funktion auszuführen, schreibst du in der main() einfach { winken(); _9 }
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 9: Toolchain
|type="{}"}
Das Programm, das deinen Rust-Code "übersetzt", heißt { rustc _5 } .
Das Programm, von dem man seine Bibliothek an Tools bekommt, also den Installer, nennt man { rustup _6 } .
Ein "cargo { run _3 }" startet in der Konsole das fertig gebaute Programm.
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 10: Array und Tupel
|type="{}"}
Sollen verschiedene Werte, wie eine Note von der Schule (Zahl) und dein Name (Wort) eng zusammen stehen, verpackst du sie am geschicktesten in ein { Tupel _5 }.
Möchtest du eine Liste von lauter gleichen Dingen, zum Beispiel fünf T-Shirts speichern, benutzt du am besten ein { Array _5 }.
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 11: While-Schleife
|type="{}"}
let mut wasser = 5;
{ while _5 } wasser > 0 {
    println!("Schluck trinken!");
    wasser = wasser - 1;
}
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 12: Fehler finden
|type="{}"}
Warum funktioniert der folgende Code nicht?
let hund = "Bello";
hund = "Wuffi";
Weil vor "hund" in der ersten Zeile das Wort { mut _3 } fehlt!
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 13: IDE und Editor
|type="{}"}
Die intelligente Hilfe für VS Code, die Fehler beim Tippen direkt unterstreicht und das Leben eines Rust-Programmierers extrem vereinfacht, heißt rust-{ analyzer _8 } .
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 14: Konsolen-Befehl
|type="{}"}
Wenn ich ein neues Projekt machen möchte, das "Spiel" heisst, welche beiden Wörter schreibe ich am Anfang in meiner Konsole?
{ cargo new _9 } Spiel
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 15: If-Else-If
|type="{}"}
let alter = 10;
if alter < 6 {
    println!("Kindergarten");
} else { if _2 } alter < 11 {
    println!("Grundschule");
} else {
    println!("Weiterführende Schule");
}
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 16: Code-Block Klammern
|type="{}"}
Eine Funktion braucht für ihren Code immer diese runden, gebogenen Klammern.
Das sind { geschweifte _11 } Klammern. Auf der Tastatur tippt man "{" und "}".
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 17: Variablen überschreiben
|type="{}"}
let mut kekse = 2;
kekse = 5;
Welche Zahl ist nun in der Kiste gespeichert? Es ist die { 5 _1 }.
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 18: Platzhalter für Ausgaben
|type="{}"}
let name = "Fritz";
println!("Hallo, {}!", name);
Die beiden Zeichen { {} _2 } sagen dem Programm, dass dort etwas eingefügt wird.
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 19: Das Ausrufezeichen bei Print
|type="{}"}
Ein "Makro" im Rust-Code wie "println" erkennt man immer sofort an einem speziellen Satzzeichen!
Vor der runden Klammer steht immer ein { Ausrufezeichen _13 }.
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 20: Rechnen mit Plus
|type="{}"}
In Rust kann man rechnen wie auf dem Papier!
let ergebnis = 5 { + _1 } 3;
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 21: Rechnen mit Mal
|type="{}"}
Und Malnehmen?
let pfoten = 4 { * _1 } 2; // Dafür nimmt man ein Sternchen!
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 22: Boolean
|type="{}"}
Welcher Datentyp bist du?
`false` ist vom Typ { Boolean _7 }
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 23: Integer
|type="{}"}
Welcher Datentyp bist du?
`42` ist vom Typ { Integer _7 } (ganze Zahl)
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 24: String
|type="{}"}
Welcher Datentyp bist du?
`"Hallo"` ist vom Typ { String _6 } (Text)
</quiz>
 
<quiz display=simple>
{Rust-Wissenstest 25: Char
|type="{}"}
Welcher Datentyp bist du?
`'b'` ist vom Typ { Char _4 } (nur ein Zeichen)
</quiz>


<quiz display=simple>
{Rust-Wissenstest 26: Ist gleich Zeichen
|type="{}"}
Wenn ein "if" kontrolliert, ob zwei Zahlen GLEICH sind, benutzt er ein Doppel-Gleichzeichen:
if runden { == _2 } 5 {
  println!("Fünf Runden um!");
}
</quiz>


<quiz display=simple>
== Projektbasiertes Lernen: 30 Mini-Projekte ==
{Rust-Wissenstest 27: For-Schleifen Zähler
Programmiere diese kleinen Aufgaben in eigenen <code>cargo new</code> Projekten, um super stark in Rust zu werden! So lernst du am schnellsten.
|type="{}"}
for zahl in 1.. { 4 _1 } {
  println!("{}", zahl); // Zeigt 1, 2 und 3 an, aber nicht das Maximum!
}
</quiz>


<quiz display=simple>
# '''Grüß-Maschine''': Drucke 3 Zeilen mit <code>println!</code>, die deine Eltern grüßen.
{Rust-Wissenstest 28: Projektbasiertes Lernen
# '''Variablen-Zaubertrick''': Erstelle eine <code>mut</code> Variable mit dem Wert 5. Verdopple sie im Code und gib das Ergebnis aus.
|type="{}"}
# '''Taschengeld-Rechner''': Lege zwei Variablen an (Geld von Oma, Geld von Opa). Addiere sie und lass den Computer das Ergebnis sprechen ausgeben.
Wenn man durch ein eigenes kleines Projekt, etwa ein Mini-Spiel, am besten lernt, ist man im { projektbasierten _16 } Lernen.
# '''Hundejahre-Umrechner''': Speichere dein Alter in einer Variable und multipliziere es mit 7.
</quiz>
# '''Lieblingstier-Liste''': Erstelle ein Array (Listen-Eierkarton) mit 3 Tiernamen und drucke das erste Tier. (Achtung, Computer beginnen bei Index 0 zu zählen!)
# '''Türsteher (if)''': Wenn die Variable <code>alter</code> unter 12 ist, drucke "Film gesperrt". Sonst drucke "Viel Spaß im Kino".
# '''Wetter-Roboter''': Eine <code>bool</code> Variable <code>regnet_es = true</code>. Nutze <code>if x { ... } else { ... }</code>, um die Jacke zu wählen.
# '''Raketen-Countdown (for)''': Zähle von 5 bis 1 rückwärts in einer Schleife (Tipp: <code>(1..=5).rev()</code>). Danach "Lift-Off!".
# '''Das Sparschwein (while)''': Solange <code>geld < 20</code>, drucke "Ein Euro rein!", und rechne <code>geld = geld + 1</code>.
# '''Zahlen-Summierer''': Addiere alle Zahlen von 1 bis 100 in einer <code>for</code>-Schleife und gib das Ende aus.
# '''Rezept-Vergrößerer''': Schreibe eine Funktion, die die benötigten Eier für einen Kuchen anzeigt. Rufe sie auf.
# '''Gerade / Ungerade''': Prüfe mit <code>if zahl % 2 == 0</code>, ob eine Variable gerade ist. Modulo <code>%</code> hilft dir!
# '''Brotdosen-Tupel''': Ein Tupel speichert einen Text ("Apfel"), eine Zahl (2 Stück) und ein <code>bool</code> (Tastet es gut? true). Drucke es!
# '''Achterbahn-Loop''': Nutze <code>loop</code> und <code>break</code>, um genau 4 Runden Looping zu fahren.
# '''Strafarbeiten-Automat''': Nutze <code>for</code>, um 100 Mal den Satz "Ich darf nicht im Unterricht stören" "an die Tafel" zu drucken.
# '''Teilen-macht-Freunde''': 30 Bonbons, 4 Kinder. Wie viele bekommt jeder (Division <code>/</code>) und wie viele bleiben übrig (Modulo <code>%</code>)?
# '''Passwort-Alarm''': <code>if passwort == "Keks" { "Zugang erlaubt" } else { "ALARM" }</code>.
# '''Guthaben-Limit''': Wenn dein Handy-Guthaben unter 2 Euro fällt, warne dich. Sonst drucke das genaue Guthaben.
# '''Ampel-Simulator''': Erstelle eine Funktion <code>ampel_farbe(farbe)</code>, die sagt was man tun muss (Rot = Stehen, Grün = Gehen).
# '''Glückszahl-Finder''': <code>while</code>-Schleife, die zu 0 immer +3 addiert, und stoppt wenn es 15 ist.
# '''Zeugnis-Sprüche''': <code>if</code>, <code>else if</code> und <code>else</code>, um zu 1, 2, 3 passendes Lob zu geben. Bei 6 sagt es "Ohje".
# '''Puls-Messer''': Wenn Schläge unter 60 "zu langsam", wenn über 160 "zu schnell", dazwischen "perfekt!".
# '''Multiplikations-Reihe''': Gibt in einer Schleife 1x7, 2x7, 3x7... bis 10x7 aus.
# '''Tage-im-Jahr-Rechner''': Wenn <code>schaltjahr == true</code>, mach Ausgaben für 366 Tage, ansonsten für 365.
# '''Zeichen-Maler''': Drucke mit einer Schleife einen halben Baum (1 Sternchen, dann 2, dann 3).
# '''Notfall-Knopf''': Die Funktion <code>sos()</code> gibt "...---..." aus. Rufe sie dreimal auf.
# '''Schwarm-Intelligenz''': Zähle in einer Schleife Vögel. Jeder ist ein <code>println!("Vogel {} ist da!", x)</code>.
# '''Vokal-Quiz''': Prüfe ob ein Char gleich 'a', 'e', 'i', 'o' oder 'u' ist.
# '''Wochentags-Ansage''': Ein Array mit 7 Namen (Montag..Sonntag). Eine Funktion bekommt eine Zahl 0-6 und gibt den Namen aus.
# '''Tee-Timer''': Ein <code>loop</code>, wobei eine <code>minuten</code> Variable hochzählt. Bei 5 Minuten: <code>break</code> und "Tee fertig!".


<quiz display=simple>
== Interleaving-Übungen (50 kleine Aufgaben bunt gemischt) ==
{Rust-Wissenstest 29: Interleaving Ansatz
Hier testen wir dein Wissen. Alles ist durchgewirbelt – genau so lernt das Gehirn am besten!
|type="{}"}
Beantworte die Fragen im Kopf oder probiere den Code im VS Code aus.
Man lernt besser, wenn man Themen durcheinander mischt. Diese Methode nennt man { Interleaving _12 } .
</quiz>


<quiz display=simple>
#1 Wie lautet der Befehl im Terminal, um ein neues Projekt zu erstellen?
{Rust-Wissenstest 30: Bottom-Up Ansatz
#2 Welches Schlüsselwort macht eine Variable veränderbar? (Tipp: 3 Buchstaben)
|type="{}"}
#3 Schreibe eine For-Schleife, die 3 Mal etwas ausdruckt.
Das schrittweise Aufbauen von einfachen zu komplexen Teilen (von unten nach oben) nennt man den { Bottom-Up _9 } Ansatz!
#4 Welcher Datentyp bedeutet 'Wahr' oder 'Falsch'?
</quiz>
#5 Wie startest du ein fertig gebautes Cargo-Projekt im Terminal?
#6 Du willst das Alter eines Drachens speichern (1000 Jahre). Ist das `let drache = 1000;` oder `let mut drache = 1000;` wenn er nicht älter wird?
#7 Schreibe einen einzeiligen Kommentar in Rust.
#8 Warum steht bei `println!` am Ende oft ein Ausrufezeichen?
#9 Wie heißen die kleinen Texte, die ignoriert werden (//)?
#10 Was ist an `fn main { }` falsch?
#11 Übersetze dieses Rezept in Code: Funktion namens 'hüpfen'.
#12 Was ist ein Array?
#13 Was prüft dieser Code: `if x > 10`?
#14 Was passiert in einem `loop { ... }` wenn es kein `break` gibt?
#15 Was bedeutet das englische Wort 'while' ins Deutsche übersetzt für Schleifen?
#16 Welcher Datentyp speichert den Text 'Hallo'?
#17 Die Zahl `3.14` ist eine Kommazahl. Welcher mathematische Fachbegriff steht für Kommazahlen im Code (i32 oder f64)?
#18 Schreibe den Code: Eine veränderbare Variable `gold` mit Inhalt 0.
#19 Was bedeutet das Symbol `%` (Modulo) beim Rechnen im Code? Wie viel ist 5 % 2?
#20 Wie gibst du den Wert der Variable `x` mit `println!` aus? Zeige den genauen Code.
#21 Ordne zu: Werkzeugkasten-Manager, Übersetzer, Projekt-Manager. Die Begriffe: cargo, rustc, rustup.
#22 Der Compiler sagt 'expected `;`'. Was hast du vergessen?
#23 Welcher Buchstabe fängt bei Arrays an zu zählen, Index 1 oder Index 0?
#24 Erstelle ein Tupel mit 2 Elementen: Der Zahl 10 und dem Buchstaben 'A'.
#25 Was bewirkt `(1..=5).rev()` in einer for-Schleife?
#26 Wozu braucht man VS Code?
#27 Was macht das Plugin 'rust-analyzer'?
#28 Wenn du `10 / 3` in i32 ausrechnest, welches Ergebnis kriegst du? (Tipp: Es gibt keine Kommas bei i32)
#29 Finde den Fehler: `let x = 5; x = 6;`
#30 Wie rufst du eine fertige Funktion namens `springen()` auf?
#31 Welche Kontrollstruktur passt hier: Du möchtest etwas solange tun, wie dein Hunger größer als 0 ist.
#32 Welche Kontrollstruktur passt hier: Du hast 10 Euro und es gibt Eis für 5 und Schoki für 2. Du triffst eine Wahl.
#33 Welche Kontrollstruktur passt hier: Du zählst die Plätze im Bus von 1 bis 40.
#34 Schreibe: Wenn `wetter == "Sonne"`, drucke "warm".
#35 Füge ein: `____ alter = 15;` (Es soll sich nie verändern).
#36 Ist `char` für lange Gedichte oder für einzelne Tastenanschläge gedacht?
#37 Warum ist Rust wie Legosteine?
#38 Was passiert, wenn die Hauptfunktion (main) durchgelaufen ist?
#39 Wie schreibt man 'Größer oder gleich 10' in einem `if`?
#40 Wie lautet das Zeichen für 'Gleichheit' in einer Bedingung (z.B. x gleich 5)? Ein `=` oder zwei `==`?
#41 Erkläre einem Freund, wofür man `else` benutzt.
#42 Schreibe ein Rust-Programm komplett aus dem Gedächtnis auf ein Stück Papier, das nur 'Hallo' ausgibt.
#43 Wie machst du aus einer 5 eine Mut-Variable?
#44 Finde den Fehler: `fn losgeht's() {}`
#45 Was macht `cargo new spiel`?
#46 Warum lieben Programmierer Arrays und Tupel?
#47 Was ist ein Skalar-Typ?
#48 Welcher Befehl stoppt das `loop` Karussell blitzartig?
#49 Angenommen ein Array ist `let zahlen = [10, 20, 30]`. Welcher Index gibt die Zahl 20 aus?
#50 Fühle dich stolz! Du hast 50 Aufgaben und 30 Projekte bearbeitet. Was ist dein nächstes Traum-Projekt in Rust?


----
----
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).''
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).''

Version vom 3. März 2026, 23:17 Uhr

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).



Willkommen zum großen Rust-Abenteuer! Stell dir Rust wie eine Kiste voller unkaputtbarer Lego-Bausteine vor. Wenn du damit eine Burg baust, weißt du: Sie wird extrem schnell fertig und bricht niemals zusammen! Diese Lernreise ist speziell für Kinder ab zehn Jahren und für absolute Code-Anfänger gedacht.

Lernziele

Am Ende dieser Etappe kannst du:

  • Deinen eigenen Werkzeugkasten aufbauen (Installation).
  • Dem Computer Befehle erteilen ("Hello World!").
  • Daten in Kisten speichern (Variablen & Datentypen).
  • Den Computer Entscheidungen treffen lassen (If/Else).
  • Langweilige Aufgaben vom Computer schnell wiederholen lassen (Schleifen).
  • Deine eigenen Mini-Programme komplett selbst schreiben!

Lektion 1: Installation und dein erstes Programm

Was brauchen wir zum Bauen?

Um Rust zu nutzen, brauchst du drei super Helfer auf deinem Computer:

  • rustup: Das ist dein Werkzeugkasten-Manager. Er holt dir immer die neueste Version von Rust aus dem Internet.
  • rustc: Der Übersetzer (Compiler). Er liest deinen Text-Code und übersetzt ihn in Maschinensprache – die einzige Sprache, die dein Computer versteht (nur Einsen und Nullen).
  • cargo: Dein allerbester Freund! Cargo erstellt neue Projekte für dich, startet deine Programme und lädt Erweiterungen aus dem Internet herunter.

Aufgabe für dich: Öffne ein Terminal (das schwarze Fenster deines Computers) und tippe ein, was die Rust-Webseite dir sagt, um es zu installieren.

Das IDE-Setup (Dein Zauber-Schreibtisch)

Ein normaler Notizblock ist zu dumm zum Programmieren. Wir benutzen Visual Studio Code (VS Code). Lade VS Code herunter und installiere die Erweiterung rust-analyzer. Diese Erweiterung ist wie ein Helfer, der dir noch beim Tippen Fehler mit roten Linien markiert – genau wie dein Lehrer beim Diktat!

Das "Hello World!"-Programm

Lass uns den Computer dazu bringen, dich zu begrüßen! Tippe in deinem Terminal:

cargo new hallo_welt
cd hallo_welt
cargo run

Was ist passiert? cargo new hat ein leeres Projekt gebaut. cd bedeutet "change directory" (gehe in den Ordner). Mit cargo run baust und startest du das Programm! Wenn du in die Datei src/main.rs schaust, siehst du:

fn main() {
    println!("Hello, world!");
}
  • fn main(): Hier startet das Programm. Jeder Computer sucht nach der Hauptfunktion "main", um anzufangen. fn bedeutet "Funktion" (ein Rezept).
  • println!("...");: Das sagt dem Computer: "Drucke diesen Text auf den Bildschirm". Das ! bedeutet, dass es sich um ein Makro handelt. Stell es dir wie einen vorgefertigten Zauberspruch vor!


Lektion 2: Grundlegende Syntax (Kisten und Schachteln)

Variablen und Mutabilität (let und let mut)

Stell dir Variablen wie Kisten vor, in die du Werte (wie Zahlen oder Wörter) packst. Jede Kiste hat ein Schildkleber mit einem Namen.

fn main() {
    let alter = 10;
    println!("Ich bin {} Jahre alt.", alter);
}

In Rust sind Kisten normalerweise **verschlossen**. Du kannst den Inhalt von alter nicht mehr ändern! Wenn eine Kiste **offen** bleiben soll, damit du etwas Neues hineinlegen kannst, brauchst du das Zauberwort mut (das steht für mutabel, also veränderbar).

fn main() {
    let mut punkte = 0; // Kiste ist offen!
    punkte = punkte + 5; // Juhu, 5 Punkte gefunden!
    println!("Punkte: {}", punkte);
}

Datentypen (Was passt in die Kisten?)

Der Computer muss wissen, ob in der Kiste eine Zahl, ein Wort oder ein Schalter liegt.

  • Skalare (Einzelne Dinge):
    • Ganze Zahlen (z.B. 10 oder -5). In Rust oft i32 genannt.
    • Kommazahlen (z.B. 3.14). Genannt f64.
    • Wahrheitswerte (Booleans). Wie ein Lichtschalter: true (An/Wahr) oder false (Aus/Falsch). Genannt bool.
    • Buchstaben. Einzelne Zeichen wie 'A' oder ein Emoji '🚀'. Genannt char.
  • Verbundtypen (Mehrere Dinge):
    • Arrays: Ein Eierkarton. Alle Dinge darin müssen gleich sein (z.B. nur Zahlen). Die Größe ist fest.
    • Tupel: Eine Brotdose mit verschiedenen Fächern. In Fach 1 ist ein Brot (Text), in Fach 2 ein Apfel (Zahl).

Funktionen und Kommentare

Kommentare sind Notizen, die der Computer komplett ignoriert. Sie sind nur für dich! Starte sie mit //. Funktionen sind wie Backrezepte. Einmal aufschreiben, 100-mal Waffeln backen!

// Das ist eine Funktion (unser Rezept), die uns begrüßt.
fn begruesse_hund(name: &str) {
    println!("Wuff, hallo {}!", name);
}

fn main() {
    // Hier nutzen wir das Rezept
    begruesse_hund("Bello");
}


Lektion 3: Kontrollstrukturen (Der Computer denkt mit)

Entscheidungen treffen: if, else if, else

Stell dir eine Straßenkreuzung vor.

fn main() {
    let taschengeld = 10;

    if taschengeld >= 15 {
        println!("Ich kaufe mir das große Lego-Set!");
    } else if taschengeld >= 5 {
        println!("Ein Eis reicht auch.");
    } else {
        println!("Ich muss noch sparen.");
    }
}

Schleifen: loop, while, for

Computer lieben Wiederholungen. Menschen hassen sie. Lassen wir die Arbeit vom Computer machen!

1. Das endlose Karussell (loop): Es dreht sich für immer, es sei denn du schreist STOPP (break).

fn main() {
    let mut runden = 0;
    loop {
        runden = runden + 1;
        println!("Runde {}!", runden);
        if runden == 3 {
            println!("Mir wird schlecht, aussteigen!");
            break; // Das STOPP-Wort
        }
    }
}

2. Solange du ein Ticket hast (while):

fn main() {
    let mut tickets = 3;
    while tickets > 0 {
        println!("Autoscooter fahren! Tickets übrig: {}", tickets);
        tickets = tickets - 1;
    }
    println!("Alle Tickets weg.");
}

3. Von 1 bis 10 zählen (for): Perfekt, wenn du genau weißt, wie oft etwas passieren soll.

fn main() {
    // 1..4 bedeutet: zähle 1, 2, 3 (die 4 ist NICHT mehr drin, wie ein Countdown)
    for zahl in 1..4 {
        println!("Ich zähle: {}", zahl);
    }
    // Willst du die letzte Zahl mitzählen, nutze 1..=3
}


Projektbasiertes Lernen: 30 Mini-Projekte

Programmiere diese kleinen Aufgaben in eigenen cargo new Projekten, um super stark in Rust zu werden! So lernst du am schnellsten.

  1. Grüß-Maschine: Drucke 3 Zeilen mit println!, die deine Eltern grüßen.
  2. Variablen-Zaubertrick: Erstelle eine mut Variable mit dem Wert 5. Verdopple sie im Code und gib das Ergebnis aus.
  3. Taschengeld-Rechner: Lege zwei Variablen an (Geld von Oma, Geld von Opa). Addiere sie und lass den Computer das Ergebnis sprechen ausgeben.
  4. Hundejahre-Umrechner: Speichere dein Alter in einer Variable und multipliziere es mit 7.
  5. Lieblingstier-Liste: Erstelle ein Array (Listen-Eierkarton) mit 3 Tiernamen und drucke das erste Tier. (Achtung, Computer beginnen bei Index 0 zu zählen!)
  6. Türsteher (if): Wenn die Variable alter unter 12 ist, drucke "Film gesperrt". Sonst drucke "Viel Spaß im Kino".
  7. Wetter-Roboter: Eine bool Variable regnet_es = true. Nutze if x { ... } else { ... }, um die Jacke zu wählen.
  8. Raketen-Countdown (for): Zähle von 5 bis 1 rückwärts in einer Schleife (Tipp: (1..=5).rev()). Danach "Lift-Off!".
  9. Das Sparschwein (while): Solange geld < 20, drucke "Ein Euro rein!", und rechne geld = geld + 1.
  10. Zahlen-Summierer: Addiere alle Zahlen von 1 bis 100 in einer for-Schleife und gib das Ende aus.
  11. Rezept-Vergrößerer: Schreibe eine Funktion, die die benötigten Eier für einen Kuchen anzeigt. Rufe sie auf.
  12. Gerade / Ungerade: Prüfe mit if zahl % 2 == 0, ob eine Variable gerade ist. Modulo % hilft dir!
  13. Brotdosen-Tupel: Ein Tupel speichert einen Text ("Apfel"), eine Zahl (2 Stück) und ein bool (Tastet es gut? true). Drucke es!
  14. Achterbahn-Loop: Nutze loop und break, um genau 4 Runden Looping zu fahren.
  15. Strafarbeiten-Automat: Nutze for, um 100 Mal den Satz "Ich darf nicht im Unterricht stören" "an die Tafel" zu drucken.
  16. Teilen-macht-Freunde: 30 Bonbons, 4 Kinder. Wie viele bekommt jeder (Division /) und wie viele bleiben übrig (Modulo %)?
  17. Passwort-Alarm: if passwort == "Keks" { "Zugang erlaubt" } else { "ALARM" }.
  18. Guthaben-Limit: Wenn dein Handy-Guthaben unter 2 Euro fällt, warne dich. Sonst drucke das genaue Guthaben.
  19. Ampel-Simulator: Erstelle eine Funktion ampel_farbe(farbe), die sagt was man tun muss (Rot = Stehen, Grün = Gehen).
  20. Glückszahl-Finder: while-Schleife, die zu 0 immer +3 addiert, und stoppt wenn es 15 ist.
  21. Zeugnis-Sprüche: if, else if und else, um zu 1, 2, 3 passendes Lob zu geben. Bei 6 sagt es "Ohje".
  22. Puls-Messer: Wenn Schläge unter 60 "zu langsam", wenn über 160 "zu schnell", dazwischen "perfekt!".
  23. Multiplikations-Reihe: Gibt in einer Schleife 1x7, 2x7, 3x7... bis 10x7 aus.
  24. Tage-im-Jahr-Rechner: Wenn schaltjahr == true, mach Ausgaben für 366 Tage, ansonsten für 365.
  25. Zeichen-Maler: Drucke mit einer Schleife einen halben Baum (1 Sternchen, dann 2, dann 3).
  26. Notfall-Knopf: Die Funktion sos() gibt "...---..." aus. Rufe sie dreimal auf.
  27. Schwarm-Intelligenz: Zähle in einer Schleife Vögel. Jeder ist ein println!("Vogel {} ist da!", x).
  28. Vokal-Quiz: Prüfe ob ein Char gleich 'a', 'e', 'i', 'o' oder 'u' ist.
  29. Wochentags-Ansage: Ein Array mit 7 Namen (Montag..Sonntag). Eine Funktion bekommt eine Zahl 0-6 und gibt den Namen aus.
  30. Tee-Timer: Ein loop, wobei eine minuten Variable hochzählt. Bei 5 Minuten: break und "Tee fertig!".

Interleaving-Übungen (50 kleine Aufgaben bunt gemischt)

Hier testen wir dein Wissen. Alles ist durchgewirbelt – genau so lernt das Gehirn am besten! Beantworte die Fragen im Kopf oder probiere den Code im VS Code aus.

  1. 1 Wie lautet der Befehl im Terminal, um ein neues Projekt zu erstellen?
  2. 2 Welches Schlüsselwort macht eine Variable veränderbar? (Tipp: 3 Buchstaben)
  3. 3 Schreibe eine For-Schleife, die 3 Mal etwas ausdruckt.
  4. 4 Welcher Datentyp bedeutet 'Wahr' oder 'Falsch'?
  5. 5 Wie startest du ein fertig gebautes Cargo-Projekt im Terminal?
  6. 6 Du willst das Alter eines Drachens speichern (1000 Jahre). Ist das `let drache = 1000;` oder `let mut drache = 1000;` wenn er nicht älter wird?
  7. 7 Schreibe einen einzeiligen Kommentar in Rust.
  8. 8 Warum steht bei `println!` am Ende oft ein Ausrufezeichen?
  9. 9 Wie heißen die kleinen Texte, die ignoriert werden (//)?
  10. 10 Was ist an `fn main { }` falsch?
  11. 11 Übersetze dieses Rezept in Code: Funktion namens 'hüpfen'.
  12. 12 Was ist ein Array?
  13. 13 Was prüft dieser Code: `if x > 10`?
  14. 14 Was passiert in einem `loop { ... }` wenn es kein `break` gibt?
  15. 15 Was bedeutet das englische Wort 'while' ins Deutsche übersetzt für Schleifen?
  16. 16 Welcher Datentyp speichert den Text 'Hallo'?
  17. 17 Die Zahl `3.14` ist eine Kommazahl. Welcher mathematische Fachbegriff steht für Kommazahlen im Code (i32 oder f64)?
  18. 18 Schreibe den Code: Eine veränderbare Variable `gold` mit Inhalt 0.
  19. 19 Was bedeutet das Symbol `%` (Modulo) beim Rechnen im Code? Wie viel ist 5 % 2?
  20. 20 Wie gibst du den Wert der Variable `x` mit `println!` aus? Zeige den genauen Code.
  21. 21 Ordne zu: Werkzeugkasten-Manager, Übersetzer, Projekt-Manager. Die Begriffe: cargo, rustc, rustup.
  22. 22 Der Compiler sagt 'expected `;`'. Was hast du vergessen?
  23. 23 Welcher Buchstabe fängt bei Arrays an zu zählen, Index 1 oder Index 0?
  24. 24 Erstelle ein Tupel mit 2 Elementen: Der Zahl 10 und dem Buchstaben 'A'.
  25. 25 Was bewirkt `(1..=5).rev()` in einer for-Schleife?
  26. 26 Wozu braucht man VS Code?
  27. 27 Was macht das Plugin 'rust-analyzer'?
  28. 28 Wenn du `10 / 3` in i32 ausrechnest, welches Ergebnis kriegst du? (Tipp: Es gibt keine Kommas bei i32)
  29. 29 Finde den Fehler: `let x = 5; x = 6;`
  30. 30 Wie rufst du eine fertige Funktion namens `springen()` auf?
  31. 31 Welche Kontrollstruktur passt hier: Du möchtest etwas solange tun, wie dein Hunger größer als 0 ist.
  32. 32 Welche Kontrollstruktur passt hier: Du hast 10 Euro und es gibt Eis für 5 und Schoki für 2. Du triffst eine Wahl.
  33. 33 Welche Kontrollstruktur passt hier: Du zählst die Plätze im Bus von 1 bis 40.
  34. 34 Schreibe: Wenn `wetter == "Sonne"`, drucke "warm".
  35. 35 Füge ein: `____ alter = 15;` (Es soll sich nie verändern).
  36. 36 Ist `char` für lange Gedichte oder für einzelne Tastenanschläge gedacht?
  37. 37 Warum ist Rust wie Legosteine?
  38. 38 Was passiert, wenn die Hauptfunktion (main) durchgelaufen ist?
  39. 39 Wie schreibt man 'Größer oder gleich 10' in einem `if`?
  40. 40 Wie lautet das Zeichen für 'Gleichheit' in einer Bedingung (z.B. x gleich 5)? Ein `=` oder zwei `==`?
  41. 41 Erkläre einem Freund, wofür man `else` benutzt.
  42. 42 Schreibe ein Rust-Programm komplett aus dem Gedächtnis auf ein Stück Papier, das nur 'Hallo' ausgibt.
  43. 43 Wie machst du aus einer 5 eine Mut-Variable?
  44. 44 Finde den Fehler: `fn losgeht's() {}`
  45. 45 Was macht `cargo new spiel`?
  46. 46 Warum lieben Programmierer Arrays und Tupel?
  47. 47 Was ist ein Skalar-Typ?
  48. 48 Welcher Befehl stoppt das `loop` Karussell blitzartig?
  49. 49 Angenommen ein Array ist `let zahlen = [10, 20, 30]`. Welcher Index gibt die Zahl 20 aus?
  50. 50 Fühle dich stolz! Du hast 50 Aufgaben und 30 Projekte bearbeitet. Was ist dein nächstes Traum-Projekt in Rust?

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).