index — ti25-glauchau-code @ 85e02ca0492d1319604c1363a993b6901218f944

Meine Lösungen (oder auch nicht) für die Programmieraufgaben in der TI25 an der Staatlichen Studienakademie Glauchau

progammieraufgaben/1: small refactor for sign recognition
crispy-caesus crispy@crispy-caesus.eu
Thu, 16 Oct 2025 00:47:40 +0200
commit

85e02ca0492d1319604c1363a993b6901218f944

parent

41a8c7ab6002a0ed0e77b184dbdb2828edcdfb35

1 files changed, 20 insertions(+), 13 deletions(-)

jump to
M discord_programmieraufgaben/2025-10-11_1/rechner.godiscord_programmieraufgaben/2025-10-11_1/rechner.go

@@ -23,31 +23,38 @@

func parseCalculation(calculation *string) *int64 { for i := 0; i < len(*calculation); i++ { // no range because unicode would be wasteful if (*calculation)[i] == '+' { - return add(&i, calculation) + left, err := strconv.ParseInt((*calculation)[:i], 10, 64) + if err != nil { + log.Fatal(err) + } + right, err := strconv.ParseInt((*calculation)[i+1:], 10, 64) + if err != nil { + log.Fatal(err) + } + + switch (*calculation)[i] { + case '+': + return add(&left, &right) + default: + log.Fatal("Unbekanntes Rechenzeichen") + } + + } } singleNumber, err := strconv.ParseInt(*calculation, 10, 64) if err != nil { - log.Fatal("Unbekanntes Rechenzeichen") + log.Fatal("Invalide Zahl") } return &singleNumber } -func add(i *int, calculation *string) *int64 { - left, err := strconv.ParseInt((*calculation)[:*i], 10, 64) - if err != nil { - log.Fatal(err) - } - right, err := strconv.ParseInt((*calculation)[*i+1:], 10, 64) - if err != nil { - log.Fatal(err) - } +func add(left *int64, right *int64) *int64 { - result := left + right + result := *left + *right return &result - } func main() {