Quiz

Fragen

  • Worin unterscheiden sich Variablen und Konstanten?
  • Was versteht man unter dem Geltungsbereich?
  • Was sind primitive Typen?
  • Welche zusammengesetzten primitiven Typen stellt Rust bereit und worin unterscheiden sich diese?
  • Was ist der Unterschied zwischen einer Funktion und einer Methode?
  • Was passiert wenn man folgendes Programm ausführt?
    #![allow(unused)]
    fn main() {
    let a: u8 = 0;
    let b: u32 = a;
    }
  • Was bezeichnet das Schlüsselwort Self in einem Strukturtypen?
  • Welche beiden Möglichkeiten gibt es, um einen Wert aus einem Aufzählungstypen zu extrahieren?
  • Welchen Wert hat x in let y; let x = y = 5;?

Aufgaben

1 Fibonacci Zahlen

Ausgehend von 2 gegebenen natürlichen Zahlen \( a, b \in \mathbb N \) ist die Fibonacci-Folge ist definiert durch \[ x_1=a,\ x_2=b,\ x_{n+1}=x_{n-1} + x_{n-2}. \] Schreibe 2 Programme, dass das \( n \)-te Element der Fibonacci folge für berechnet. Eines der 2 Programme verwendet Rekursion und das andere eine Schleife.

2 Duplikate erkennen

Schreibe ein Programm, dass die Anzahl der unterschiedlichen Elemente in einem 6-elementigen Array bestimmt. Die Werte können entweder den Typ f64 oder den Typ char haben. Gleichheit bei Gleitkommazahlen ist mit einer gewissen Toleranz zu überprüfen (Warum?). Es folgt eine Tabelle mit Eingabe-Ergebnis-Paaren.

ProgrammeingabeErwartetes Programmergebnis
9.4, 'c', 0.15+0.15, 0.1+0.2, 9.4, 'c'3
'f', 'x', 'a', 'a', 'f', 'c'4
'🤓', 'x', 'a', 'a', '🤓', '2.3'4