PR1 Aufgabensammlung
Go to file
gamebeaker 786e4e816e change function names to lowerCamelCase 2025-12-24 16:52:18 +01:00
src/de/hs_mannheim/Rekursiver_Rechner change function names to lowerCamelCase 2025-12-24 16:52:18 +01:00
.classpath Aufgabenstellung v1.0 2025-12-22 18:04:36 +01:00
.gitignore Initial commit 2025-12-22 13:53:38 +01:00
.project Aufgabenstellung v1.0 2025-12-22 18:04:36 +01:00
LICENSE Initial commit 2025-12-22 13:53:38 +01:00
README.md update README.md Schreibfehler 2025-12-22 18:16:11 +01:00

README.md

Rekursiver Rechner

Repo zur Aufgabe

Hier: https://gitty.informatik.hs-mannheim.de/3029257/Rekursiver_Rechner_Aufgabenstellung finden Sie ein git-repo mit der Aufgabenstellung und Tests. Sie müssen lediglich die Funktion: double RekursiveSquentielleBerechnung() vervollständigen. Mit Hilfe der Tests weiß man, ob die Aufgabe korrekt ist.

Aufgabe

Erstellen Sie einen Rechner der Sequentielle Eingabe zum Berechnen des Ergebnisses rekursiv verwendet. In dem Eingabe String sind nur die folgenenden Zeichen erlaubt: 0-9.+-/*

Sequentielle Eingabe erklärt

Wikipedia: Sequentielle Eingabe (Deutsch)

Bsp.:
5.5+4.5*10

Normale Berechnung (Algebraische Notation):

5.5+4.5*10   | Klammern setzen (Rangfolge der Operatoren beachten)
=5.5+(4.5*10)
=5.5+45
=50.5

Sequentielle Eingabe:

5.5+4.5*10  |Von links nach rechts berechnen (ohne Beachtung der Rangfolge der Operatoren)
=10*10
=100

Hinweis: Der "normale" Windows Rechner arbeitet nach dem Sequentiellen Eingabe Prinzip.

Weitere Hinweise

Randfälle definiert

Falls ein Operator am Ende des Strings steht, soll er ignoriert werden.

Bsp.:

+               -               /               *
10+             10-             10/             10*
=10+0           =10-0           =10/1           =10*1
=10             =10             =10             =10

Falls Operator an Operator steht, soll er das Ergebniss nicht ändern.

Bsp.:

+++             ---             ///             ***             +-/*
10++++5         10----5         10////5         10***5          10+-/**5
=10+0+0+0+5     =10-0-0-0-5     =10/1/1/1/5     =10*1*1*1*5     =10+0-0/1*1*5
=15             =5              =2              =50             =50

Falls ein Operator an erster Stelle steht ist die vorhergehende Zahl 0.

Bsp.:

+               -               /               *
=0+0            =0-0            =0/1            =0*1
=0              =0              =0              =0

Zahlen wie "5." entsprechen "5.0" und ".5" entsprechen "0.5".

Nur "." als Zahl ist ungültig.

Bei Rechnungen "/0" soll als Ergebniss Double.POSITIVE_INFINITY oder Double.NEGATIVE_INFINITY zurück gegeben werden. (Das macht Java bei Rechnungen "/0" von sich aus.)