Wie kann ich mit einer For-Schleife Punkt vor Strich rechnen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Zerlegt hast du ja alles (hab jetzt nicht genau kontrolliert ob korrekt)

Anstatt aber jetzt von links nach rechts die Berechnung zu machen, must su jetzt - wie du es in Mathe gelernt hast - erst die Punktrechnungen machen (* und /)

Und dann die Strichrechnungen berechnen

Schreib dir am besten eine Beispiel Aufgabe auf ein Blatt

Berechnen Schritt für Schritt (am besten je Zeile mal nur eine Berechnung)

Und überdenken dann wie du das per Software genauso machen kannst


JulianOnFire 
Fragesteller
 24.07.2023, 10:07

Private Sub bsolve_Click(sender As Object, e As EventArgs) Handles bsolve.Click

  Dim input As String = tb.Text

  ' Replace comma with dot for proper numeric parsing

  input = input.Replace(",", ".")

  ' Perform calculations for multiplication and division

  Dim mulDivRegex As New Regex("\d+(\.\d+)?\s*[*/]\s*\d+(\.\d+)?")

  While mulDivRegex.IsMatch(input)

    input = mulDivRegex.Replace(input, Function(match)

                        Dim parts() As String = match.Value.Split({"*", "/"}, StringSplitOptions.TrimEntries)

                        Dim leftVal As Double = Double.Parse(parts(0))

                        Dim rightVal As Double = Double.Parse(parts(1))

                        Dim result As Double

                        If match.Value.Contains("*") Then

                          result = leftVal * rightVal

                        Else

                          result = leftVal / rightVal

                        End If

                        Return result.ToString()

                      End Function)

  End While

  ' Perform calculations for addition and subtraction

  Dim addSubRegex As New Regex("\d+(\.\d+)?\s*[+\-]\s*\d+(\.\d+)?")

  While addSubRegex.IsMatch(input)

    input = addSubRegex.Replace(input, Function(match)

                        Dim parts() As String = match.Value.Split({"+", "-"}, StringSplitOptions.TrimEntries)

                        Dim leftVal As Double = Double.Parse(parts(0))

                        Dim rightVal As Double = Double.Parse(parts(1))

                        Dim result As Double

                        If match.Value.Contains("+") Then

                          result = leftVal + rightVal

                        Else

                          result = leftVal - rightVal

                        End If

                        Return result.ToString()

                      End Function)

  End While

  ' Set the final result in the TextBox

  tb.Text = input

End Sub

0
JulianOnFire 
Fragesteller
 24.07.2023, 10:10

hat funktioniert, merci

1
NackterGerd  07.09.2023, 00:13

Danke für den 🌟

0