Merge branch 'main' of https://gitty.informatik.hs-mannheim.de/3003075/PR3-GO
commit
e44d6db569
|
@ -1,139 +0,0 @@
|
||||||
# Calculator
|
|
||||||
```go
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
func calculate(a, b int, operator rune) int {
|
|
||||||
switch operator {
|
|
||||||
case '+':
|
|
||||||
return a + b
|
|
||||||
case '-':
|
|
||||||
return a - b
|
|
||||||
case '*':
|
|
||||||
return a * b
|
|
||||||
case '/':
|
|
||||||
if b != 0 {
|
|
||||||
return a / b
|
|
||||||
}
|
|
||||||
fmt.Println("Division durch Null ist nicht erlaubt.")
|
|
||||||
return 0
|
|
||||||
case '%':
|
|
||||||
if b != 0 {
|
|
||||||
return a % b
|
|
||||||
}
|
|
||||||
fmt.Println("Modulo durch Null ist nicht erlaubt.")
|
|
||||||
return 0
|
|
||||||
default:
|
|
||||||
fmt.Println("Ungültiger Operator.")
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
fmt.Println(calculate(2, 5, '+')) // 7
|
|
||||||
fmt.Println(calculate(2, 5, '-')) // -3
|
|
||||||
fmt.Println(calculate(2, 5, '*')) // 10
|
|
||||||
fmt.Println(calculate(10, 5, '/')) // 2
|
|
||||||
fmt.Println(calculate(5, 3, '%')) // 2
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
# Student
|
|
||||||
```go
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Student repräsentiert einen Studenten
|
|
||||||
type Student struct {
|
|
||||||
Vorname string
|
|
||||||
Nachname string
|
|
||||||
Matrikelnummer string
|
|
||||||
Alter int
|
|
||||||
}
|
|
||||||
|
|
||||||
// Konstruktor für die Klasse Student
|
|
||||||
func NewStudent(vorname, nachname, matrikelnummer string, alter int) *Student {
|
|
||||||
return &Student{
|
|
||||||
Vorname: vorname,
|
|
||||||
Nachname: nachname,
|
|
||||||
Matrikelnummer: matrikelnummer,
|
|
||||||
Alter: alter,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Greet gibt eine Begrüßungsnachricht zurück
|
|
||||||
func (s *Student) Greet() string {
|
|
||||||
return fmt.Sprintf("Hallo, mein Name ist %s %s.", s.Vorname, s.Nachname)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Überschreiben der String-Methode für eine lesbare Darstellung
|
|
||||||
func (s *Student) String() string {
|
|
||||||
return fmt.Sprintf("Student: %s %s, Matrikelnummer: %s, Alter: %d", s.Vorname, s.Nachname, s.Matrikelnummer, s.Alter)
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
// Erstellen eines neuen Studenten mit dem Konstruktor
|
|
||||||
student := NewStudent("Franz", "Herta", "123456", 20)
|
|
||||||
|
|
||||||
// Aufrufen der Greet-Methode
|
|
||||||
fmt.Println(student.Greet()) // Hallo, mein Name ist Franz Herta.
|
|
||||||
|
|
||||||
// Ausgabe der String-Methode
|
|
||||||
fmt.Println(student) // Student: Franz Herta, Matrikelnummer: 123456, Alter: 20
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
# R-P-S
|
|
||||||
|
|
||||||
```go
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"math/rand"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
ROCK = 'r'
|
|
||||||
PAPER = 'p'
|
|
||||||
SCISSORS = 's'
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
rand.Seed(time.Now().UnixNano())
|
|
||||||
|
|
||||||
playerScore, computerScore := 0, 0
|
|
||||||
choices := []rune{ROCK, PAPER, SCISSORS}
|
|
||||||
|
|
||||||
for round := 1; round <= 3; round++ {
|
|
||||||
var playerChoice rune
|
|
||||||
fmt.Printf("Runde %d: Dein Zug ([r]rock, [p]aper, [s]cissors)? ", round)
|
|
||||||
fmt.Scanf("%c\n", &playerChoice)
|
|
||||||
|
|
||||||
computerChoice := choices[rand.Intn(len(choices))]
|
|
||||||
|
|
||||||
switch {
|
|
||||||
case playerChoice == computerChoice:
|
|
||||||
fmt.Printf("Unentschieden - Du: %c, Computer: %c - [%d:%d]\n", playerChoice, computerChoice, playerScore, computerScore)
|
|
||||||
case (playerChoice == ROCK && computerChoice == SCISSORS) || (playerChoice == PAPER && computerChoice == ROCK) || (playerChoice == SCISSORS && computerChoice == PAPER):
|
|
||||||
playerScore++
|
|
||||||
fmt.Printf("Du hast gewonnen - Du: %c, Computer: %c - [%d:%d]\n", playerChoice, computerChoice, playerScore, computerScore)
|
|
||||||
default:
|
|
||||||
computerScore++
|
|
||||||
fmt.Printf("Der Computer hat gewonnen - Du: %c, Computer: %c - [%d:%d]\n", playerChoice, computerChoice, playerScore, computerScore)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Printf("Ergebnis - Du %d Punkt(e), Computer %d Punkt(e)\n", playerScore, computerScore)
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
Loading…
Reference in New Issue