PR3-GO/readme.md

82 lines
2.6 KiB
Markdown

# Live-Übung 1
Sie haben morgen einen Mathetest, aber Ihr Taschenrechner ist leer.
Sie haben keine Batterien zu Hause.
Sie können zwar morgen neue Batterien auf dem Weg zur Schule kaufen, aber heute brauchen Sie noch eine Alternative.
## Calculator
Schreiben Sie eine Methode `calculate`, die die grundlegenden Rechenarten mit zwei Zahlen ausführen kann. Man übergibt die zwei Zahlen und den Operator.
Verwenden Sie dabei eine `switch-case`.
Rechenarten: Addition, Subtraktion, 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, der Studenten mit bestimmten Daten erstellen kann.
Er kann die Studenten auch begrüßen und deren Daten übersichtlich ausgeben.
## 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