[FRAGE]Kosinus- und Sinusrechner (System.Math)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    [FRAGE]Kosinus- und Sinusrechner (System.Math)

    Guten Tag,ich bin neu hier und bin gerade dabei einen Sinus- bzw. Kosinusrechner zu programmieren.
    Ich habe zuerst ein Code entworfen der überprüft ob der spätere Rechner den Sinus- oder den Kosinussatz benutzen soll.
    Außerdem überprüft er auch die Kongruenzsätze, die ich dann später so anpasse so das der Kosinus für diesen Kongruenzsatz zutrifft.
    Dabei Stoße ich auf ein Problem.
    Ich erhalte nicht den gewünschten CHECKWERT für jeden einzelnen Kongruenzsatz und kann deswegen nicht weiter programmieren.
    Wäre echt schön wenn ihr einen Blick rüberwerfen würdet und mir eine alternative oder mir sogar den Fehler schreiben könntet.

    Mein Bild zum Quelltext findet ihr in der Anlage :
    Die Nummern in den Textboxen entsprechen der TextBoxNUMMER also 1 = TextBox1

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. 'Variablen
    3. Dim b As String = TextBox1.Text
    4. Dim a As String = TextBox2.Text
    5. Dim c As String = TextBox3.Text
    6. Dim α As String = TextBox4.Text
    7. Dim β As String = TextBox5.Text
    8. Dim γ As String = TextBox6.Text
    9. Dim check As String = 0
    10. 'Check Kosinus
    11. 'SSS Check
    12. If TextBox4.Text = "" And TextBox5.Text = "" Or TextBox6.Text = "" Then
    13. check = 1
    14. End If
    15. 'SWS Check
    16. If check = 0 Then
    17. If TextBox1.Text = "" And TextBox4.Text = "" Or TextBox6.Text = "" Then
    18. check = 2.1
    19. End If
    20. If TextBox5.Text = "" And TextBox4.Text = "" Or TextBox3.Text = "" Then
    21. check = 2.2
    22. End If
    23. If TextBox2.Text = "" And TextBox6.Text = "" Or TextBox5.Text = "" Then
    24. check = 2.3
    25. End If
    26. End If
    27. 'WWW Check
    28. If TextBox1.Text = "" And TextBox2.Text = "" Or TextBox3.Text = "" Then
    29. check = 3
    30. End If
    31. 'Sinus Check
    32. 'SSW
    33. If check = 0 Then
    34. If TextBox2.Text = "" And TextBox6.Text = "" Or TextBox4.Text = "" Then
    35. check = 4
    36. End If
    37. If TextBox4.Text = "" And TextBox5.Text = "" Or TextBox1.Text = "" Then
    38. check = 4.1
    39. End If
    40. If TextBox5.Text = "" And TextBox6.Text = "" Or TextBox3.Text = "" Then
    41. check = 4.2
    42. End If
    43. End If
    44. 'WSS
    45. If check = 0 Then
    46. If TextBox4.Text = "" And TextBox5.Text = "" Or TextBox2.Text = "" Then
    47. check = 5
    48. End If
    49. If TextBox5.Text = "" And TextBox6.Text = "" Or TextBox1.Text = "" Then
    50. check = 5.1
    51. End If
    52. If TextBox4.Text = "" And TextBox6.Text = "" Or TextBox3.Text = "" Then
    53. check = 5.2
    54. End If
    55. End If
    56. TextBox13.Text = check
    57. End Sub


    Beispiel :
    Wenn ich in bei a, b und c einen Wert eingebe dann sind die Textboxen 4,5,6 leer und das Programm zeigt mir oben rechts die geünschte CHECKNUMMER 1 an.
    Aber wenn ich bei a, c und ALPHA Werte eingebe dann erhalte ich immer noch die 1 in der CHECKBOX.
    HABE ICH ETWAS VERGESSEN?

    Weitere Frage :Außerdem weiß ich nicht wie ich zum Schluss wenn mein Fehler behoben wurden oder konnten durch eure Hilfe, wie ich System.Math am besten einbinde weil ich brauche das um auf den Winkel zu kommen. (1/ cos ALPHA)= cos ^-1)

    Ich habe bestimmt für einige Nutzer auf diesem Forum sehr umständlich programmiert, aber wie ich am Anfang gesagt habe ich bin ein Anfänger.
    Ich hoffe ihr könnt mir helfen und ich wäre euch sehr Dankbar.
    Bilder
    • Pic.PNG

      123,52 kB, 1.004×672, 199 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „thaddie“ ()

    Moin,

    erstmal: Willkommen im Forum!

    Dann:
    Hänge bitte Dateien über die foreneigene Dateianhangsfunktion an (die findest du in der erweiterten Bearbeitung/Antwort). Dein Bild ist auf diesem werbeverseuchten Freehoster nämlich schon gar nicht mehr vorhanden!
    Mit freundlichen Grüßen,
    Thunderbolt
    Benenne am besten erstmal deine Controls um, sodass man erkennt, wofür das jeweilige Control gut ist.
    Außerdem hast du bereits die Variablen auf die Texte deiner TextBoxen gesetzt, warum verwendest du die dann nicht einfach anschließend?
    Check ist ein String, weißt ihm aber Doublewerte zu?
    Das dürfte der falsche Wert sein, entweder du weißt diesem Strings zu(also in Anführungszeichen), oder du verwendest Double(vmtl. zu groß->Single verwenden und 5.1S schreiben). Oder du machst es so wie ich finde, dass es am meisten Sinn ergibt: einen Integer verwenden und alle Zahlen fortlaufend machen(keine Kommazahlen).
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Nein. Das wäre Char. Falsch gelesen. Ich habe ​ein Unicode-Zeichen gelesen...

    String ist eine Zeichenkette. Also Text. Keine Zahl. Keine Dezimalzahl. Nichts anderes.

    Lies dir im verlinkten Post 1 bis mindestens 4 durch und folge den Links.
    Mit freundlichen Grüßen,
    Thunderbolt
    Also vielleicht wäre erst einmal ein gutes Buch angesagt? ^^
    Aber gut. Um dir das etwas näher zu bringen, was an deinem Code falsch ist, schalte erst einmal Option Strict On(wie du das machst, da findeste genug in Google oder der Forum-Suche). Dann mal eine kleine Erklärung:

    Warum benutzt man keine Strings zum Rechnen?
    Weil ein String für Texte da ist. Zum Rechnen benutzt man Datentypen, die dafür vorgesehen sind, also bspw. Double für Fließkomma-Zahlen und Single, Integer und Long für ganze Zahlen. Aber um es mal in einem Beispiel auszuführen:
    Mal angenommen jemand tippt in eine deiner Textboxen nicht "6" oder "9", sondern etwas wie "hallo", was würde passieren? Der Code würde zur Rechnung kommen, der Compiler kann nicht damit rechnen, da er nicht weiß was er mit einem "hallo" anfangen soll, also wirft er dem Nutzer so gleich eine Fehlermeldung an den Kopf und das Programm stürzt ab, um schwerere Fehler zu vermeiden.

    Das bedeutet für dich, dass du erstmal lernen musst, was es für Datentypen gibt, was diese Unterscheidet und wie man diese anwendet. Außerdem solltest du alle deine Controls(das sind alle Sachen, die du aus der Toolbox ziehen kannst) sinnvoll benennen, dazu kannste mal hier gucken: Grundlagen: Benennung von Controls (Update: 24.10.2010)
    Auch sinnvolle Links: Entwickler-Ressourcen und Tools, Bücher und WebCasts und Beispiele für guten und schlechten Code (Stil)

    Das war es von mir.

    LG

    thaddie schrieb:

    String =Stellt Unicode-Zeichen dar.
    Beispiel:
    String => "Roullade mit Klößen"
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!