# Live-Übung 1 Sie haben morgen ein Mathetest, aber ihre Taschenrechner ist lehr. Sie haben keine Batterien zu Hause. Sie können zwar morgen neue Batterien auf dem Weg zu Schule kaufen, aber heute brauchen Sie noch eine Alternative. ## Calculator Schreiben Sie eine Methode `calculate`, die die grundsätzlichen Rechenarten mit zwei Zahlen ausführen kann. Man übergibt die zwei Zahlen und der operator. Verwenden Sie dabei eine `switch-case`. Rechnenarten: Addition, Substraktion, Multiplikation, Division, Modulo. ```go // Beispiele package main func main() { calculate(2, 5, '+') // 7 calculate(2, 5, '-') // -3 calculate(2, 5, '*') // 10 calculate(10, 5, '/') // 2 calculate(5, 3, '%') // 2 } ``` # Live-Übung 2 Sie möchten einen Code schreiben, dass Studenten erstellen kann mit bestimmten Daten, es kann Sie auch grüßen und Sie einfach ausgeben mit allem angegebene Daten. ## Student Erstellen Sie eine Klasse Student in Go, die die folgenden Attribute hat: - Vorname - Nachname - Matrikelnummer - Alter Die Klasse soll einen Konstruktor haben, der alle Attribute initialisiert. Außerdem soll eine Methode `Greet` erstellt werden, die eine Begrüßungsnachricht mit dem Namen des Studenten zurückgibt. Überschreiben Sie die `string-Methode`, um eine lesbare Darstellung des Studenten zurückzugeben. ```go func main() { student := NewStudent("Franz", "Herta", "123456", 20) fmt.Println(student.Greet()) // Hallo, mein Name ist Franz Herta fmt.Println(student) // Student: Franz Herta, Matrikelnummer: 123456, Alter: 20 } ``` # Live-Übung 3 (Alternativ) Ich sage nur drei Wörter: `Schnick`...`Schnack`...`Schnuck` ## R-P-S Schreiben Sie ein einfaches Spiel, bei dem Sie gegen den Computer Schnick-Schnack-Schnuck spielen (auch Rock, Paper, Scissors genannt) in Go: - Das Spiel geht über drei Runden. - Es fragt den Spieler nach seiner Auswahl (r, p, s). - Der Computer zieht zufällig eine der drei Möglichkeiten. - Nach jeder Runde sagt das Spiel, wer welche Möglichkeit gewählt hat und wer die Runde gewonnen hat. - Ein Sieg bringt einen Punkt, ein Unentschieden 0 Punkte. - Die Punkte jeder Runde werden addiert. - Am Ende wird der Gesamtpunktestand ausgegeben. ```text Runde 1: Dein Zug ([r]rock, [p]aper, [s]cissors)? r Der Computer hat gewonnen - Du: ROCK, Computer: PAPER - [0:1] Runde 2: Dein Zug ([r]rock, [p]aper, [s]cissors)? p Unentschieden - Du: PAPER, Computer: PAPER - [0:1] Runde 3: Dein Zug ([r]rock, [p]aper, [s]cissors)? s Du hast gewonnen: Du: SCISSORS, Computer: PAPER - [1:1] Ergebnis - Du 1 Punkt(e), Computer 1 Punkt(e) ``` Verwenden Sie dazu mindestens: - Konstanten - Switch - case - Schleifen