Zahlemwerte nacheinander addieren bzw subrarieren

  • VB.NET

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

    Zahlemwerte nacheinander addieren bzw subrarieren

    Hallöchen Liebe Kommunity,

    Ich brauche einen kleinen Nachschub, bei dem Taschenrechnerprogramm kann mann 2 werte zB. 2+5=7 rechnen usw,

    aber was sollte mann noch platzieren damit man mehrere werte nacheinander addieren kann,(od.-,*)wie z. B. 2+5+7+9=23 usw

    ehrlich gesagt ich kenne mich mit VBA-Codierungen nicht so gut aus!

    Danke im Voraus Grüsse :(

    Public Class Form1
    Dim zahl1 As String
    Dim rechenart As String
    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
    TextBox1.Text = TextBox1.Text + "9"
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    TextBox1.Text = TextBox1.Text + "1"
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    TextBox1.Text = TextBox1.Text + "2"
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    TextBox1.Text = TextBox1.Text + "3"
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    TextBox1.Text = TextBox1.Text + "4"
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    TextBox1.Text = TextBox1.Text + "5"
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
    TextBox1.Text = TextBox1.Text + "6"
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
    TextBox1.Text = TextBox1.Text + "7"
    End Sub

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
    TextBox1.Text = TextBox1.Text + "8"
    End Sub

    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
    TextBox1.Text = TextBox1.Text + "0"
    End Sub

    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
    zahl1 = TextBox1.Text
    rechenart = "addieren"
    TextBox1.Text = ""
    End Sub

    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
    zahl1 = TextBox1.Text
    rechenart = "subtrahieren"
    TextBox1.Text = ""
    End Sub

    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
    zahl1 = TextBox1.Text
    rechenart = "multiplizieren"
    TextBox1.Text = ""
    End Sub

    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
    zahl1 = TextBox1.Text
    rechenart = "dividieren"
    TextBox1.Text = ""
    End Sub

    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
    TextBox1.Text = ""
    zahl1 = ""
    rechenart = ""
    End Sub

    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
    If rechenart = "addieren" Then
    TextBox1.Text = CDbl(zahl1) + CDbl(TextBox1.Text)
    ElseIf rechenart = "subtrahieren" Then
    TextBox1.Text = CDbl(zahl1) - CDbl(TextBox1.Text)
    ElseIf rechenart = "multiplizieren" Then
    TextBox1.Text = CDbl(zahl1) * CDbl(TextBox1.Text)
    ElseIf rechenart = "dividieren" Then
    TextBox1.Text = CDbl(zahl1) / CDbl(TextBox1.Text)
    End If
    End Sub

    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
    zahl1 = TextBox1.Text
    rechenart = "addieren"
    TextBox1.Text = ""
    End Sub

    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
    TextBox1.Text = TextBox1.Text + ","
    End Sub
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    If TextBox1.Text.Contains(",") = False Then
    Select Case Asc(e.KeyChar)
    Case 44, 48 To 57, 8
    Case Else
    e.Handled = True
    End Select
    Else
    Select Case Asc(e.KeyChar)
    Case 48 To 57, 8
    Case Else
    e.Handled = True
    End Select
    End If
    End Sub
    End Class
    leg dir eine variable an, in die du dann das ergebnis speicherst und wenn du dann auf "addieren" klickst, dass mit diesem wert weitergerechnet wird.

    also statt a+b+c+d+e= zu machen erstellst du dir z.b. x und rechnest a+b=x, x+c=x, x+d=x, usw.

    dann baust du dir noch eine kleine abfrage ein, dass wenn nach dem = eine zahl gedrückt wird die werte gelöscht werden, also wieder von vorne losgeht, und nur wenn nach einer rechnung +, - oder was auch immer gedrückt wird, mit dem ergebnis weitergerechnet wird.

    PS: setz das nächste mal bitte code in vb-tags, erleichtert das lesen ungemein.

    Mars2010 schrieb:

    TextBox1.Text = TextBox1.Text + "9"



    Schreib bitte in die erste Zeile deines Codes
    Option Strict On
    rein.

    Dann holst du die ganzen Convertierungsfehler raus. Das System macht dir an den Stellen einen kleinen roten kasten. den klickst du an.
    schon werden deine convertierungsfehler beseitigt.(die meisten jedenfalls)

    auch wenn dein Programm ohne Fehler so durchlaufen sollte, könnte es sein das das Ergebnis falsch ist.
    Das Zitat Beispiel währe so richtig

    TextBox1.Text = CStr(Cdbl(TextBox1.text) + Cdbl(9))

    Mouse-Maze schrieb:

    Schreib bitte in die erste Zeile deines Codes
    Option Strict On
    rein.

    Du kannst dadrunter auch noch

    VB.NET-Quellcode

    1. Option Explicit On

    einfügen

    Ist sauberer!!

    Mouse-Maze schrieb:

    Schreib bitte in die erste Zeile deines Codes
    Option Strict On
    rein.

    Du kannst dadrunter auch noch

    VB.NET-Quellcode

    1. Option Explicit On

    einfügen

    Ist sauberer!!





    Hi
    meintest du etwa so wie unten?

    Option Strict On
    Public Class Form1
    Dim zahl1 As String
    Dim rechenart As String
    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
    TextBox1.Text = TextBox1.Text + "9"
    End Sub
    ja meinte er. wenn du als erstes

    VB.NET-Quellcode

    1. Option Strict On
    2. Option Explicit On

    in das projekt schreibst (noch vor den imports!), wird der code "pingelig" genau wegen konvertierungen und sowas überprüft.

    da bekommst du dann z.b. bei

    VB.NET-Quellcode

    1. Dim i As Integer = 15
    2. TextBox1.Text = i


    eine fehlermeldung, weil die text-eigenschaft einen string erwartet und keinen integer. das heißt hier müsstest du dann

    VB.NET-Quellcode

    1. Dim i As Integer = 15
    2. TextBox1.Text = i.ToString


    machen. damit wird der code wesentlich sauberer.
    ergänzung,
    du musst zuerst alle String Variablen in ein Zahlenformat wandeln. Dann kannst du damit Rechnen. Wenn dann alles gerechnet ist und du die Zahlen wieder sichtbar machen möchtest, dann wandelst du alles zurück als String.

    TextBox1.Text = "1"
    TextBox2.Text = "1"

    Nun alle werte aus den TextBoxen abholen und in Zahlen wandeln

    VB.NET-Quellcode

    1. ' Integer
    2. Dim a As Integer = CInt(TextBox1.Text)
    3. Dim b As Integer = CInt(TextBox2.Text)
    4. Dim c As Integer = 0
    5. c = a + b
    6. TextBox3.Text = CStr(c)
    7. ' Kurze version
    8. TextBox3.Text = CStr(CInt(TextBox1.Text) + CInt(TextBox2.Text))


    Integer = Ganzzahlen und werden mit folgenden Operatoren Berechnet
    + Plus
    - Minus
    * Mal
    \ Geteilt

    Double = nicht ganzzahlen werden mit folgenden Operatoren Berechnet
    + Plus
    - Misus
    * Mal
    / Geteilt

    Das Pluszeichen wird für Mathematische Berechnungen verwendet. (+)
    a+b = c

    Das Kaufmänische Und wird für die verkettung von Logischen sachen verwendet (&)
    "Hallo " & "Welt"

    Also nie mischen und durcheinander werfen. VB ist zwar begrenzt in der Lage, korrekturen zu erledigen. Es ist aber nie Eindeutig ob der User Rechnen oder Verketten möchte.

    Sind
    Option Strict On
    Option Explezit On geschaltet
    wird auf solche fehler gleich hingewiesen.

    Diese beiden Optionen kann man in der IDE als Standart einstellen.