Unwissenheit meinerseits bei Konsolenanwendung, True/false Werten im Bezug auf ein Flussdiagram, bitte um Hilfestellung

  • VB.NET

Es gibt 36 Antworten in diesem Thema. Der letzte Beitrag () ist von gulasch13.

    Das .ToLower bewirkt nur dass die Zeichenfolge in kleinbuchstaben konvertiert wird, so wird beim vergleichen immer die Kleinbuchstaben des jeweiligen Textes geprüft, damit die Groß-/Kleinschreibung keinen Unterschied macht.
    Ansonsten müsstest du 2x mit If Abfragen nämlich

    VB.NET-Quellcode

    1. If Console.ReadKey.Keychar = "y" OrElse Console.ReadKey.Keychar = "Y" Then
    2. ...
    naja du hast einen kleine denk fehler drin und zwar das :

    VB.NET-Quellcode

    1. If Console.ReadLine = "Ja" Then
    2. Unternehmungslustig = True
    3. ElseIf Console.ReadLine = "Nein" Then
    4. Unternehmungslustig = False
    5. End If

    du fragst 2 mal einen wert des Users ab :)
    viel besser wäre es z.b so :

    VB.NET-Quellcode

    1. dim st as string = Console.ReadLine
    2. If st= "Ja" Then
    3. Unternehmungslustig = True
    4. ElseIf st = "Nein" Then
    5. Unternehmungslustig = False
    6. End If

    ansonnsten muss du nur die if´s verschachteln :) z.b so

    VB.NET-Quellcode

    1. if Geld = true then
    2. if braucheipod = true then
    3. messagebox.show("Kaufe IPoD")
    4. else
    5. messagebox.show("Kaufe keinen IPoD")
    6. end if
    7. else
    8. if braucheipod = true then
    9. messagebox.show("habe nicht genug Geld für einen Ipod")
    10. else
    11. messagebox.show("habe nicht genug Geld für einen Ipod aber ich will ihn auch nicht haben :)")
    12. end if
    13. end if
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise

    VB.NET-Quellcode

    1. If Console.ReadLine = "Ja" Then
    2. Unternehmungslustig = True
    3. ElseIf Console.ReadLine = "Nein" Then
    4. Unternehmungslustig = False
    5. End If


    Das hier würde übrigens nicht funktionieren. Da erstmal ausgelesen wird was eingegeben wurde und wenn das nicht "Ja" ist wird auf die Nächste Eingabe des Users gewartet.


    Spoiler anzeigen

    VB.NET-Quellcode

    1. Module Module1
    2. Private Unternehmenslustig As Boolean
    3. Private Freunde As Boolean
    4. Private Geldausgaben As Boolean
    5. Private aktiv As Boolean
    6. Sub Main()
    7. Console.WriteLine("Hallo! Ich werde dir einige Fragen stellen die du mit Ja (y) oder Nein (n) beantworten musst.")
    8. Console.WriteLine("Bist du Unternehmungslustig?")
    9. Dim input As Char = Console.ReadKey.KeyChar
    10. Unternehmenslustig = input = "y"
    11. Zeile()
    12. Console.WriteLine("Nächste Frage! Hast du Freunde?")
    13. InputText(input)
    14. Freunde = input = "y"
    15. Zeile()
    16. Console.WriteLine("Nächste Frage! Gibst du gerne Geld aus?")
    17. InputText(input)
    18. Geldausgaben = input = "y"
    19. Zeile()
    20. Console.WriteLine("Letzte Frage, bist du aktiv?")
    21. InputText(input)
    22. aktiv = input = "y"
    23. Zeile()
    24. If Unternehmenslustig AndAlso Freunde AndAlso Geldausgaben AndAlso aktiv Then
    25. Console.WriteLine("Miete einen Jet und Lade alle Freunde nach Hause ein")
    26. ElseIf Not Unternehmenslustig AndAlso Not Freunde AndAlso Not Geldausgaben AndAlso Not aktiv Then
    27. Console.WriteLine("Keine Freunde! Kein Geld! Passiv! Geh schlafen!!!!")
    28. ElseIf Unternehmenslustig AndAlso Freunde AndAlso Geldausgaben AndAlso Not aktiv OrElse Unternehmenslustig AndAlso Not Freunde AndAlso Geldausgaben AndAlso Not aktiv Then
    29. Console.WriteLine("Kino")
    30. ElseIf Not Unternehmenslustig AndAlso Not Freunde AndAlso Not Geldausgaben AndAlso aktiv Then
    31. Console.WriteLine("Deine Skripte und Bücher starren dich an!")
    32. ElseIf Unternehmenslustig AndAlso Freunde AndAlso Not Geldausgaben AndAlso Not aktiv OrElse Unternehmenslustig AndAlso Not Freunde AndAlso Not Geldausgaben AndAlso Not aktiv Then
    33. Console.WriteLine("FM Kino")
    34. ElseIf Unternehmenslustig AndAlso Freunde AndAlso Not Geldausgaben AndAlso aktiv Then
    35. Console.WriteLine("Besuche Freunde")
    36. ElseIf Unternehmenslustig AndAlso Not Freunde AndAlso Geldausgaben AndAlso aktiv Then
    37. Console.WriteLine("Ab ins Casino mit dem Monatslohn in der Tasche")
    38. ElseIf Unternehmenslustig AndAlso Not Freunde AndAlso Not Geldausgaben AndAlso aktiv Then
    39. Console.WriteLine("Asia Party")
    40. ElseIf Not Unternehmenslustig AndAlso Freunde AndAlso Geldausgaben AndAlso Not aktiv Then
    41. Console.WriteLine("Videofilm ausleihen")
    42. ElseIf Not Unternehmenslustig AndAlso Not Freunde AndAlso Geldausgaben AndAlso Not aktiv Then
    43. Console.WriteLine("Mache einen Kreuzzug durch amazon.de und ebay.com")
    44. ElseIf Not Unternehmenslustig AndAlso Freunde AndAlso Not Geldausgaben AndAlso Not aktiv Then
    45. Console.WriteLine("Start euch gegenseitig an")
    46. ElseIf Not Unternehmenslustig AndAlso Freunde AndAlso Not Geldausgaben AndAlso aktiv Then
    47. Console.WriteLine("Zusammen lernen")
    48. ElseIf Not Unternehmenslustig AndAlso Not Freunde AndAlso Geldausgaben AndAlso aktiv Then
    49. Console.WriteLine("Kaufe und installiere ein Win XP System")
    50. ElseIf Not Unternehmenslustig AndAlso Freunde AndAlso Geldausgaben AndAlso aktiv Then
    51. Console.WriteLine("BIT IN")
    52. End If
    53. Console.ReadLine()
    54. End Sub
    55. Private Sub InputText(ByRef inp As Char)
    56. inp = Console.ReadKey.KeyChar
    57. End Sub
    58. Private Sub Zeile()
    59. Console.WriteLine(Environment.NewLine)
    60. End Sub
    61. End Module

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

    gulasch13 schrieb:

    es dürfen max. 5 Abfragen stattfinden
    4 Abfragen sind vonnöten.
    Insgesamt musst Du folgende Möglichkeiten realisieren:
    j j j j
    j j j n
    j j n j
    j j n n

    j n j j
    j n j n
    j n n j
    j n n n

    n j j j
    n j j n
    n j n j
    n j n n

    n n j j
    n n j n
    n n n j
    n n n n

    Mach Dir eine Function mit einem Ausgabetext als Parameter, die ein Boolean zurückgibt, wie geantwortet wurde.
    -------

    gulasch13 schrieb:

    Dringend HILFE! benötigt
    ist ein absolut treffender Thread-Titel.
    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!

    ErfinderDesRades schrieb:

    4-dimensionalen Daten-Würfel
    Sa kullern doch gleich wieder die Daten-Tränen. :D
    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!
    @gulasch13:: Der Titel ist sehr gut, "True/false Werten im Bezug auf ein Flussdiagram" hätte genügt.
    Was macht Dein Problem?
    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!
    Besteht immer noch.. Ich versuche im Moment die geposteten Lösungsansätze zu verstehen.

    Das ich 4 Abfragen benötige ist mir dank deiner Darstellung klargeworden.

    Bloß an der Umsetzung scheitert es noch.

    Ich war zuerst der Meinung, dass ich einfach für jede "Raute" einfah eine If Abfrage machen kann, nach dem Motto "Wenn Unternehmungslustig "Ja", dann "Hast du Freunde". "Wenn Freunde "Ja", dann "Geld ausgeben?"... und so weiter. Aber nur mit verschachtelten If Abfragen habe ich das bis jetzt noch nicht hinbekommen.

    Reicht es theoretisch wenn ich If Anweisungen schreibe mit "And" also dass ich sozusagen sage, dass wenn Geldausgabe and Freunde False ist, dass dann das und das passiert? Wenn ja müsste ich nur noch wissen wie man das in Visualstudio schreibt :S .

    VB.NET-Quellcode

    1. If Geldausgabe AndAlso Freunde =False
    ...würde man das so in der Art schreiben?

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

    Ich war zuerst der Meinung, dass ich einfach für jede "Raute" einfah eine If Abfrage machen kann
    ist doch richtig.
    gugge post#19 - da ist das doch genau gemacht.

    ok, da ist die Datenerhebung von den If-Schachteleien getrennt, also erst werden die 4 Fragen gestellt, und die Antworten in Variablen gespeichert, und dann geht das mit die Ifse los.

    Das ist doch eine saubere und klare Lösung.
    Mein Gott bin ich doof...Danke an alle und danke noch mal für den Hinweis mit Post #19....Entschuldigt, dass ich eure Zeit geraubt habe. Ich denke nun ist es klar :)

    Es soll tatsächlich helfen die Augen aufzumachen :thumbsup:

    Eine letzte Frage habe ich aber noch:

    Im Post #19 wurde

    VB.NET-Quellcode

    1. dim readdata as string
    deklariert. Wenn die Aufgabe heißt dass alle abfragen boolean sein müssen, müsste ich dann readdata auch noch ändern oder zählt das nicht als abfrage?

    Danke euch :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „gulasch13“ ()

    und die Variante mit dem 4-dimensionalen Datenwürfel müsst ihr sogar ohne Expander aushalten :P

    VB.NET-Quellcode

    1. Module Module2
    2. Public Sub main()
    3. Dim results As String(,,,) = _
    4. {{{ _
    5. {"keien freunde kein Geld gehe schlafen", "deine scripte und bücher starren dich an"}, _
    6. {"kreuzug durch ebay und co", "Kaufe wind xp und installiere es"} _
    7. }, { _
    8. {"starrt euch gegenseitig an", "zusammen lernen"}, _
    9. {"Videofilm", "Sit in"} _
    10. }}, {{ _
    11. {"Kino", "asta Party"}, _
    12. {"Kino", "Casino"} _
    13. }, { _
    14. {"FH Kino", "besuche freundet"}, _
    15. {"Kino", "miete eine Jet"} _
    16. }}}
    17. Console.WriteLine(results(GetResponse("Unternehmungslustig?"), GetResponse("Freunde?"), GetResponse("Geldausgabe?"), GetResponse("Aktiv?")))
    18. Console.ReadKey()
    19. End Sub
    20. Function GetResponse(question As String) As Integer
    21. Console.WriteLine(question)
    22. Try
    23. Select Case Console.ReadKey.Key
    24. Case ConsoleKey.Y : Return 1
    25. Case ConsoleKey.N : Return 0
    26. Case Else : Throw New ArgumentException("ey! - die Taste gilt nicht!")
    27. End Select
    28. Finally
    29. Console.WriteLine()
    30. End Try
    31. End Function
    32. End Module

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ErfinderDesRades“ ()

    RushDen schrieb:

    In Post #24 ist übrigens auch mein Lösungsweg im Expander.

    Danke.

    Ich habe dir diesbezüglich eine kurze PN zukommen lassen.

    Danke an alle. Das Thema ist erfolgreich beendet. :thumbsup:

    Ich werde mich für zukünftige Fragen wieder an euch wenden. Ob ihr es wollt oder nicht :D

    Danke.

    Niklas

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