Announcement

Collapse
No announcement yet.

Messagebox und Funktionen???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Messagebox und Funktionen???

    Hallo, bin so ziemlich nen neuling was programmieren betrifft.
    nun habe ich eine frage zu folgendem

    Code:
    Imports System.Windows.Forms
    Imports System.Math
    
    Module Module1
    
        Sub Main()
            Dim eingabe As String
            Dim eingabezahl As Double
            Dim ergebniszahl As Double
            Dim ergebnis As String
    
            Console.Write("Bitte eine Zahl eingeben: ")
            Console.ReadLine()
            If eingabe <> 0 Then
    
    
    
                MessageBox.Show("Die Summe ist: " & ergebniszahl, "Ergebnis")
    
    
    
                MessageBox.Show("Die Fakultät ist: " & ergebniszahl, "Ergebnis")
    
    
    
                MessageBox.Show("Die Wurzel ist: " & ergebniszahl, "Ergebnis")
    
            End If
            Fehler()
    
        End Sub
        Private Sub Fehler()
            MessageBox.Show("Sie haben keine Zahl eingegeben", "Fehlermeldung")
        End Sub
        Function Summe(ByVal eingabezahl As Double) As Double
            Dim i As Integer
            For i = 0 To eingabezahl
    
            Next
            Summe += i
            i = ergebniszahl
        End Function
        Function Fakultaet(ByVal eingabezahl As Double) As Double
            Dim i As Integer
            For i = 1 To eingabezahl
    
            Next
            Fakultaet *= i
        End Function
        Function Wurzel(ByVal eingabezahl As Double) As Double
    
            Return Math.Sqrt(eingabezahl)
        End Function
    
    End Module
    und zwar würde ich gerne wissen, wie ich das ergebnis aus den funktionen nach oben unter den if befehl bringen kann um es dann mit der messagebox auszugeben...

    hoffe ihr versteht mein problem und könnt mir dabei etwas weiterhelfen.


    mfg

  • #2
    Hallo,

    als VB-Laie fallen mir folgende Punkte auf:

    Der Text der Eingabe muss auch an die Variable eingabe übergeben werden; das fehlt.

    Dann fehlt die Analyse der Eingabe: Wenn Du eine Summe als Ergebnis haben willst, brauchst Du als Eingabe zwei Zahlen (nicht nur eine). Deine Verwendung als "Summe von 1 bis n" verwirrt doch reichlich.

    Die Eingabe muss natürlich eine Zahl sein; mit der Eingabe von "abc" darf Dein Programm nicht rechnen. (VB.NET tut so, als ob es das Konvertieren vom String zu einer Zahl erleichtere; das ist aber nur ein Verschleiern, und als Problemstelle sollte es Dir bewusst sein.)

    Anschließend willst Du der Variablen ergebniszahl das Ergebnis der einzelnen Rechnungen zuweisen. Na, dann mach das doch einfach:
    Code:
    ergebniszahl = Fakultaet(eingabezahl)
    Deine Fehlermeldung wird immer ausgegeben; dafür fehlt ein else-Block.

    Schau Dir auch einmal die Diskussion 4 Grundrechenarten via Konsole hier im VB.NET-Forum vor einigen Tagen an.

    Gruß Jürgen

    Comment


    • #3
      danke für die hilfe.

      das mit der zuweisung hat funktioniert und nun hänge ich bei dem else block, der für mich doch etwas neu ist, bzw. ich den noch nie so wirklich benutzt habe...
      vllt kommen hier wieder nette hinweise


      die summe im übrigen ist wohl ne ungünstige bezeichung es bedeutet einfach nur

      1+2+3+...+n

      bei der fakultät wird ja multipliziert und mir fiel halt nix besseres dafür ein, deswegen brauche ich ja nur eine eingabe...


      mfg

      Comment


      • #4
        Code:
        If Bedinung erfüllt Then
            mache dies
        Else
            mache das
        End If
        Im Else-Zweig kommt immer das rein, was gemacht werden soll, wenn die Bedingung(Vergleich) nicht erfüllt wurde. Dein Aufruf von Fehler() erscheint immer, weil er an der falschen Stelle steht.

        Und nun ... schnell mal umstricken

        mfg laptel

        Comment


        • #5
          Hallo,

          mir ist noch etwas ein- und aufgefallen: Wenn Du eine Konsolenanwendung schreibst mit Console.ReadLine(), dann empfiehlt es sich, nicht MessageBox zu verwenden, sondern auch die Ausgaben per Concole auszugeben mit Console.WriteLine().

          Zur Einführung siehe auch OpenBook Visual Basic/

          Jürgen

          Comment


          • #6
            so danke für eure tipps funktioniert alles wie ichs mir vorgestellt habe...

            bis auf die genauen rechenoperationen^^ aber das werde ich denke mal irgendwie alleine schaffen...

            die messagebox habe ich im übrigen nur genommen um damit vertrauter zu werden



            mfg

            Comment

            Working...
            X