1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Visual Basic hilfe

Dieses Thema im Forum "Games/Software" wurde erstellt von kleenercectfan2, 9. Dezember 2008.

  1. kleenercectfan2
    Offline

    kleenercectfan2 Entsperrt

    Registriert seit:
    19. Oktober 2007
    Beiträge:
    725
    Danke:
    0
    Handy:
    mda vario/HTC Wizard mit WM6.5
    hallo!
    ich hab da n eigentlich kleines problem. und zwar (hab ich hausaufgaben auf ;) ne scherz) soll ich als hausaufgabe ein Programm in VB erstellen dass einen fragt ob man wurst oder käse kaufen will und dann preis und kg fragt aber das hab ich schon....
    Code:
    Sub eurotool()
    y = InputBox("Wurst oder Käse?", "Warenart")
    If y = "Wurst" Then
    GoTo b
    End If
    If y = "Käse" Then
    GoTo c
    End If
    b:
    v = Val(InputBox("KG?", "Menge"))
    w = Val(InputBox("Wurstpreis?", "Preis"))
    x = v * w
    MsgBox "Das sind " & x & " Euro", , "Eurobetrag"
    GoTo d
    c:
    v = Val(InputBox("Wie viel Kilogramm?", "Menge"))
    w = Val(InputBox("Käsepreis?", "Preis"))
    y = v * w
    MsgBox "Das sind " & y & " Euro", , "eurobetrag"
    d:
    End Sub
    Jetzt hab ich die frage wie mach ich es dass wenn man z.B. abc eingibt das programm ausgeht?
     
  2. AdmiralX
    Offline

    AdmiralX New Member

    Registriert seit:
    10. Dezember 2008
    Beiträge:
    0
    Danke:
    0
    Handy:
    htc
    vb programmierung ist schon lange lange her bei mir, auch wenn ich dir jetzt nicht direkt etwas zu deiner frage sagen kann (hab die nicht ganz verstanden :( ) muß ich trotzdem etwas zu deinem programmierstiel sagen ...
    kein, nie und nimmer nicht auch nicht in vb, GoTo verwenden!!!111einseinself

    schau dir mal die seite an http://www.vb-seminar.de/ vielleicht findest du dort ein paar anregungen.

    ich habe dein programm nur kurz überflogen deshalb habe ich sicher nicht alle fehler gefunden.
    - du verwendest die variable 'y' zwei mal für verschiedene typen
    - du verwendest goto
    - du solltest elseif verwenden
    - kein goto
    - zwei mal fast der gleiche code, das würde auch einfacher gehen
    - bennenung der variablen namen

    ich weiß nicht genau welche vb version du verwendest sonst könnte ich dir etwas mehr tips geben, zwischen vb 6 und vb.net gibts doch einige unterschiede!
     
  3. kleenercectfan2
    Offline

    kleenercectfan2 Entsperrt

    Registriert seit:
    19. Oktober 2007
    Beiträge:
    725
    Danke:
    0
    Handy:
    mda vario/HTC Wizard mit WM6.5
    also goto funktioniert aber ;) hab ich in Comal so gelernt und hat der lehrer uns auch für VB gezeigt... naja haben bis heute den Visual Basic Editor im Excel benutzt ab nächste woche gehts mit VB express 2008 (glaub ich) los

    gerade eben kam mir ein lichtblitz ^^ ich kann ja machen:
    if y = käse then
    ...
    else
    goto

    das mit elseif hab ich iwie nich ganz verstanden was man damit macht... ich glaub nichts dass es den Goto befehl ersetzt!?
     
    Zuletzt bearbeitet: 10. Dezember 2008
  4. AdmiralX
    Offline

    AdmiralX New Member

    Registriert seit:
    10. Dezember 2008
    Beiträge:
    0
    Danke:
    0
    Handy:
    htc
    ja goto macht schon das was es soll, aber wenn du ein längeres programm und mehrer gotos hast dann wird es sehr schwer bis unmöglich den quelltext zu warten, das ganze nennt sich dann spagetti code.

    ein elseif ist nichts anderes als ein if das sich auf das if zuvor bezieht.

    du hast dann:

    if
    ...
    elseif
    ...
    else
    ...
    end if

    nach deinem ersten if würde das programm das zweite if auch noch überprüfen obwohl wir ja wissen daß das unnötig wäre, wenn du elseif verwendest dann fällt diese überprüfung weg.

    warum schreibst du den code den du nach deinem goto hast nicht gleich nach dem if?
    also nicht

    if
    goto b
    end if
    b:
    <code>

    sondern
    if
    <code>
    end if
     
  5. kleenercectfan2
    Offline

    kleenercectfan2 Entsperrt

    Registriert seit:
    19. Oktober 2007
    Beiträge:
    725
    Danke:
    0
    Handy:
    mda vario/HTC Wizard mit WM6.5
    ich brauch nochmal eure hilfe.. ich muss n kleines programm schreiben dass er "mir" aufgaben stellt und nach jeder aufgabe fragt ob ich weitermachen will oder nicht. mein problem ist, egal was ich bei der frage anklicke fängt er entweder am anfang wieder an oder hört auf (je nach variante wie ich versucht hab)

    Code:
    Dim x, y, z, v, f, r, n
    Sub Schaltfläche1_beiklick()
    f = 0
    r = 0
    n = Val(InputBox("wie viele aufgaben"))
    a = Val(InputBox("wie hoch sollen die zahlen sein?"))
    For i = 1 To n
    e:
    x = (Int(Rnd() * a) + 1)
    z = (Int(Rnd() * a) + 1)
    y = x + z
    MsgBox x & " + " & z & " = " & "?"
    v = Val(InputBox("ergebnis?"))
    If v = y Then
    MsgBox ("richtig")
    r = r + 1
    Else: f = f + 1
    MsgBox ("falsch")
    End If
    If n = 1 Then
    GoTo g
    End If
    MsgBox "weitermachen?", vbOKCancel
    If vbOKCancel = vbOK Then
    GoTo e
    End If
    If vbOKCancel = vnCancel Then
    GoTo g
    Next
    g:
    MsgBox "falsch" & f & vbcrlf & " richtig " & r
    End Sub
     
    Zuletzt bearbeitet: 27. Januar 2009