Funktionen & Parameterübergabe

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Funktionen & Parameterübergabe

    Heyyy,

    ich verstehe nicht wie ich das machen soll ... Wir programmieren gerade etwas, was die Zahlen ausschreiben soll, z.b. 1 = eins, 23 = dreiundzwanzig ..Ich brauche dringend hilfeeeee 8|

    was ist hier dran falsch ?

    VB.NET-Quellcode

    1. Class MainWindow
    2. Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
    3. Dim zahl As String, zahlwort As String
    4. zahl = textBox.Text
    5. label.Content = einerwort(zahl)
    6. label.Content = zweistellig(zahl)
    7. label.Content = zehn_bis_neunzehn(zahl)
    8. label.Content = zehnerwort(zahl)
    9. End Sub
    10. Function einerwort(ziffer As String) As String
    11. Dim rueck As String
    12. Select Case ziffer
    13. Case "0" : rueck = ""
    14. Case "1" : rueck = "eins"
    15. Case "2" : rueck = "zwei"
    16. Case "3" : rueck = "drei"
    17. Case "4" : rueck = "vier"
    18. Case "5" : rueck = "fünf"
    19. Case "6" : rueck = "sechs"
    20. Case "7" : rueck = "sieben"
    21. Case "8" : rueck = "acht"
    22. Case "9" : rueck = "neun"
    23. End Select
    24. einerwort = rueck
    25. End Function
    26. Function zweistellig(ziffern As String) As String
    27. Dim einer As String, zehner As String
    28. einer = Right(ziffern, 1)
    29. zehner = Right(ziffern, 1)
    30. If zehner = "1" Then
    31. zweistellig = einerwort(einer) & zehn_bis_neunzehn(ziffern)
    32. ElseIf zehner = "0" Then
    33. zweistellig = einerwort(einer)
    34. Else zweistellig = einerwort(einer) & zehnerwort(zehner)
    35. End If
    36. End Function
    37. Function zehn_bis_neunzehn(ziffern As String) As String
    38. Dim ziffer, zahl As String, rueck As String
    39. ziffer = Right(ziffern, 1)
    40. Select Case ziffer
    41. Case "1" : rueck = "zehn"
    42. Case "1" : rueck = "elf"
    43. Case "2" : rueck = "zwölf"
    44. Case "3" : rueck = "dreizehn"
    45. Case "4" : rueck = "vierzehn"
    46. Case "5" : rueck = "fünfzehn"
    47. Case "6" : rueck = "sechszehn"
    48. Case "7" : rueck = "siebzehn"
    49. Case "8" : rueck = "achtzehn"
    50. Case "9" : rueck = "neunzehn"
    51. End Select
    52. zehn_bis_neunzehn = rueck
    53. End Function
    54. Function zehnerwort(ziffer As String) As String
    55. Dim rueck As String
    56. Select Case ziffer
    57. Case "0" : rueck = ""
    58. Case "1" : rueck = "zehn"
    59. Case "2" : rueck = "zwanzig"
    60. Case "3" : rueck = "dreißig"
    61. Case "4" : rueck = "vierzig"
    62. Case "5" : rueck = "fünfzig"
    63. Case "6" : rueck = "sechzig"
    64. Case "7" : rueck = "siebzig"
    65. Case "8" : rueck = "achtzig"
    66. Case "9" : rueck = "neunzig"
    67. End Select
    68. zehnerwort = rueck
    69. End Function
    70. End Class


    Verschoben. ~Trade

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    dersimplay schrieb:

    was ist hier dran falsch ?
    Kommt drauf an. Was genau geht daran denn nicht?
    btw: Ist das für die Schule? Wenn ja: WPF ohne MVVM, hmpf :(

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ja es ist für die Schule, also eine WPF-Anwendung bei Visual Basic.

    Wenn ich das Programm starte, eine Zahl eingebe und auf den Button klicke passiert gar nichts. Davor hatte ich das so gemacht :

    VB.NET-Quellcode

    1. ​Class MainWindow
    2. Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
    3. Dim zahl As String, zahlwort As String
    4. zahl = textBox.Text
    5. label1.Content = einerwort(zahl)
    6. label5.Content = zweistellig(zahl)
    7. label2.Content = zehn_bis_neunzehn(zahl)
    8. label3.Content = zehnerwort(zahl)
    9. label4.Content = dreistellig(zahl)
    10. End Sub
    11. Function einerwort(ziffer As String) As String
    12. Dim rueck As String
    13. If Len(ziffer) > 1 Then
    14. einerwort = "Fehler: Ziffer nicht einstellig!"
    15. Else
    16. Select Case ziffer
    17. Case "0" : rueck = ""
    18. Case "1" : rueck = "eins"
    19. Case "2" : rueck = "zwei"
    20. Case "3" : rueck = "drei"
    21. Case "4" : rueck = "vier"
    22. Case "5" : rueck = "fünf"
    23. Case "6" : rueck = "sechs"
    24. Case "7" : rueck = "sieben"
    25. Case "8" : rueck = "acht"
    26. Case "9" : rueck = "neun"
    27. End Select
    28. einerwort = rueck
    29. End If
    30. End Function
    31. Function zweistellig(ziffern As String) As String
    32. Dim einer As String, zehner As String
    33. If Len(ziffern) > 10 Then
    34. zweistellig = "Fehler: Zahl nicht zweistellig"
    35. Else
    36. einer = Right(ziffern, 1)
    37. zehner = Right(ziffern, 1)
    38. If zehner = "1" Then
    39. zweistellig = einerwort(einer) & zehn_bis_neunzehn(ziffern)
    40. ElseIf zehner = "0" Then
    41. zweistellig = einerwort(einer)
    42. Else zweistellig = einerwort(einer) & zehnerwort(zehner)
    43. End If
    44. End If
    45. End Function
    46. Function zehn_bis_neunzehn(ziffern As String) As String
    47. Dim ziffer, zahl As String, rueck As String
    48. ziffer = Right(ziffern, 1)
    49. Select Case ziffer
    50. Case "1" : rueck = "zehn"
    51. Case "1" : rueck = "elf"
    52. Case "2" : rueck = "zwölf"
    53. Case "3" : rueck = "dreizehn"
    54. Case "4" : rueck = "vierzehn"
    55. Case "5" : rueck = "fünfzehn"
    56. Case "6" : rueck = "sechszehn"
    57. Case "7" : rueck = "siebzehn"
    58. Case "8" : rueck = "achtzehn"
    59. Case "9" : rueck = "neunzehn"
    60. End Select
    61. zehn_bis_neunzehn = rueck
    62. End Function
    63. Function zehnerwort(ziffer As String) As String
    64. Dim rueck As String
    65. Select Case ziffer
    66. Case "0" : rueck = ""
    67. Case "1" : rueck = "zehn"
    68. Case "2" : rueck = "zwanzig"
    69. Case "3" : rueck = "dreißig"
    70. Case "4" : rueck = "vierzig"
    71. Case "5" : rueck = "fünfzig"
    72. Case "6" : rueck = "sechzig"
    73. Case "7" : rueck = "siebzig"
    74. Case "8" : rueck = "achtzig"
    75. Case "9" : rueck = "neunzig"
    76. End Select
    77. zehnerwort = rueck
    78. End Function
    79. Function dreistellig(ziffer As String) As String
    80. Dim rueck As String
    81. Select Case ziffer
    82. Case "0" : rueck = ""
    83. Case "1" : rueck = "hundert"
    84. Case "2" : rueck = "zweihundert"
    85. Case "3" : rueck = "dreihundert"
    86. Case "4" : rueck = "vierhundert"
    87. Case "5" : rueck = "fünfhundert"
    88. Case "6" : rueck = "sechshundert"
    89. Case "7" : rueck = "siebenhundert"
    90. Case "8" : rueck = "achthundert"
    91. Case "9" : rueck = "neunhundert"
    92. End Select
    93. dreistellig = rueck
    94. End Function
    95. End Class


    Es war aber halt nicht die Aufgabe .. Das Ergebnis sollte immer in einem Label rauskommen, aber so hat das bei mir nicht funktioniert. Mit 5 Label muss man einen Einer eingeben z.b. 2 und da kommt dann bei einem label zwei bei dem anderen zwölf bei dem anderen zwanzig aber das ist ja falsch ..

    dersimplay schrieb:

    einerwort = rueck
    Wo ist einerwort deklariert? Das wird dann auch nie irgendwo zugewiesen bzw. Du gibst auch in Deinen Funktionen nichts zurück. Kompiliert das überhaupt? Eigentlich muss der Wert mit Return zurückgegeben werden.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    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!