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.

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

    Hallo liebe community,

    ich habe mich versucht die letzten Tage mit VB auseinanderzusetzen aber so recht ist mir das nicht gelungen.

    Ich habe eine Aufgabe meiner Universität bekommen. Es ist eine Art von "Diagrammbaum", welches in einer Konsolenanwendung in Visual Basic umgesetzt werden soll.

    Die Variablen müssen als Boolesche Werte deklariert sein, es dürfen max. 5 Abfragen stattfinden, es gilt die Richtlinie
    Option Explicit On, Option Strict On, Imports System.Console,Imports Microsoft.VisualBasic. In dieser Aufgabe geht es wohl um If-Funktionen und die booleschen Operatoren.

    Anbei ein Screenshot:

    Ich bin am verzweifeln, da ich das Ding demnächst abgeben muss und einfach nicht voran komme.

    Ich komme nur soweit, dass ich die Variablen als boolean deklariere und mit ein bis zwei If Abfragen ein kleines Stück des Diagrams entlang gehen kann.

    Ich bitte um dringende Hilfe.

    Danke für jegliche Hilfe.

    Niklas :S

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

    Hallo und Willkommen!

    Mit deine Frage ist leider schlecht - hier hält man sich i.a. ziemlich zurück, wenn man das Gefühl bekommt, annerer Leuts Hausaufgaben zu machen :/

    hey, aber vlt. dabei helfen:
    Also ich kann noch gar keine Aufgaben stellung erkennen. Ein hingeklatschtes Diagramm ist keine Aufgabe.

    Eine Aufgabe ist, wenn man weiß, was wo eingegeben wird, und was dann dabei rauskommen soll.
    Ich bin nicht darauf aus, dass mir jemand die Arbeit macht, lediglich bin ich auf Denkanstöße aus :-). Welche Boolesche Operatoren etc. hier von Nöten wären...

    Es geht darum, in einer Konsolenanwendung sozusagen danach zu fragen "Sind Sie Unternehmungslustig?" Dann hat man die Möglichkeit mit Ja oder Nein zu antworten. Wenn Nein, dann geht es den linken Weg weiter, wenn ja den rechten und so weiter, bis man am Ende sozusagen von der Konsole gesagt bekommt was man machen soll.

    War das verständlich? :S Wenn nicht versuche ich es noch mal anders zu erläutern.
    wie gesagt: es gibt noch gar keine Aufgabe, daher sind auch keine "boolschen Operatoren" (was stellst du dir eiglich darunter vor?) vonnöten.

    was soll das Programm tun? das ist meine frage.

    ah - da isses ja - hab ich das grad überlesen, oder hast du editiert?

    also zuerst brauchst du was, womit du was ausgeben kannst, und wo der User was eingeben kann.

    Hier täte reichen, wenn das Programm anhält und wartet, bis der User 'Y', 'N' oder iwas anneres eingibt.

    Bei iwas annerem könnte man dann beenden wegen Fehleingabe - das ist das einfachste.

    Kannst du schon was ausgeben und eingeben?
    Editiert :D

    Ich war jetzt soweit, dass ich

    VB.NET-Quellcode

    1. Dim Unternehmungslustig As Boolean
    2. Dim Freunde As Boolean
    3. Dim Geldausgabe As Boolean
    4. Dim Aktiv As Boolean
    5. Console.WriteLine("Unternehmungslustig?")
    6. If Console.ReadLine = "Ja" Then
    7. Unternehmungslustig = True
    8. ElseIf Console.ReadLine = "Nein" Then
    9. Unternehmungslustig = False
    10. End If
    11. Console.WriteLine("Freunde?")
    12. If Console.ReadLine = "Nein" Then
    13. Freunde = False
    14. ElseIf Console.ReadLine = "Ja" Then
    15. Freunde = True
    16. End If
    17. If Unternehmungslustig And Freunde = False And Console.ReadLine = "Nein" Then
    18. Console.WriteLine("Geldausgabe?")
    19. End If
    20. Console.ReadLine()


    Soweit war ich jetzt. Aber irgendwo stimmt das nicht

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

    doch, dassis gut.

    einfacher ist Console.ReadKey, weiler da nur eine Taste drücken muss.


    Nun noch unsere Forum-Software kennenlernen, denn da kommen viele verschachtelte Ifs bei raus, und da ist die richtige Einrückung des Codes lebenswichtig: Bitte VB-Tag benutzen - aber richtig
    .. es ist doch klar das du immer den zustand einlesen musst und dann erst vergleichen : hier mal ein kleines Beispiel :

    VB.NET-Quellcode

    1. Sub Main()
    2. Dim Unternehmungslustig As Boolean
    3. Dim Freunde As Boolean
    4. Dim Geldausgabe As Boolean
    5. Dim Aktiv As Boolean
    6. Console.WriteLine("Unternehmungslustig?")
    7. Dim readdata As String = Console.ReadLine
    8. If readdata.ToLower = "ja" Then
    9. Unternehmungslustig = True
    10. ElseIf readdata.ToLower = "nein" Then
    11. Unternehmungslustig = False
    12. End If
    13. Console.WriteLine("Freunde?")
    14. readdata = Console.ReadLine
    15. If readdata.ToLower = "ja" Then
    16. Freunde = True
    17. ElseIf readdata.ToLower = "nein" Then
    18. Freunde = False
    19. End If
    20. If Unternehmungslustig = False And Freunde = False Then
    21. Console.WriteLine("Geldausgabe?")
    22. readdata = Console.ReadLine
    23. If readdata.ToLower = "ja" Then
    24. Geldausgabe = True
    25. ElseIf readdata.ToLower = "nein" Then
    26. Geldausgabe = False
    27. End If
    28. End If
    29. Console.ReadLine()
    30. End Sub
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise
    ich hab keine Ahnung, was ihr hier mit do loop wollt.
    Und auch mit den Variablen - die sind unnötig, und verwirren nur - mach sie weg.
    Es braucht nur für jede Raute im Diagramm eine If-Abfrage zu geben.
    Die unteren Ebenen des Diagramms, da sind die If-Abfragen ineinander verschachtelt.
    Das ganze braucht ziemlich genau doppelt so viele Zeilen, wies Kästchen im Diagramm hat - weil für jede Raute muss man ja die Frage ausgeben, und dann je nach antwort weiter verzweigen.

    naja - kann man auch mit den Variablen machen. Da fragt man halt die 4 Fragen ab, und ermittelt das Ergebnis in einem abgetrennten Schritt.

    VB.NET-Quellcode

    1. Private Unternehmenslustig As Boolean
    2. Private Freunde As Boolean
    3. Private Geldausgaben As Boolean
    4. Private aktiv As Boolean
    5. Sub Main()
    6. Console.WriteLine("Hallo! Ich werde dir einige Fragen stellen die du mit Ja (y) oder Nein (beliebige Taste) beantworten musst.")
    7. Console.WriteLine("Bist du Unternehmungslustig?")
    8. Dim input As Char = Console.ReadKey.KeyChar
    9. Unternehmenslustig = input = "y"
    10. Zeile()
    11. Console.WriteLine("Nächste Frage! Hast du Freunde?")
    12. InputText(input)
    13. Freunde = input = "y"
    14. Zeile()
    15. Console.WriteLine("Nächste Frage! Gibst du gerne Geld aus?")
    16. InputText(input)
    17. Geldausgaben = input = "y"
    18. Zeile()
    19. Console.WriteLine("Letzte Frage, bist du aktiv?")
    20. InputText(input)
    21. aktiv = input = "y"
    22. Zeile()
    23. Console.WriteLine(Unternehmenslustig)
    24. Console.WriteLine(Freunde)
    25. Console.WriteLine(Geldausgaben)
    26. Console.WriteLine(aktiv)
    27. Console.ReadLine()
    28. End Sub
    29. Private Sub InputText(ByRef inp As Char)
    30. inp = Console.ReadKey.KeyChar
    31. End Sub
    32. Private Sub Zeile()
    33. Console.WriteLine(Environment.NewLine)
    34. End Sub


    Jetzt muss du nur noch abfragen und dementsprechend den Ergebniss Text liefern.
    (Es gibt 24 versch. Möglichkeiten)

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

    Hier ist der Quellcode nur falls du nicht mehr weiter kommst :
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Dim Unternehmungslustig As Boolean
    4. Dim Freunde As Boolean
    5. Dim Geldausgabe As Boolean
    6. Dim Aktiv As Boolean
    7. Console.WriteLine("Unternehmungslustig?")
    8. Dim readdata As String = Console.ReadLine
    9. If readdata.ToLower = "ja" Then
    10. Unternehmungslustig = True
    11. ElseIf readdata.ToLower = "nein" Then
    12. Unternehmungslustig = False
    13. End If
    14. Console.WriteLine("Freunde?")
    15. readdata = Console.ReadLine
    16. If readdata.ToLower = "ja" Then
    17. Freunde = True
    18. ElseIf readdata.ToLower = "nein" Then
    19. Freunde = False
    20. End If
    21. Console.WriteLine("Aktiv?")
    22. readdata = Console.ReadLine
    23. If readdata.ToLower = "ja" Then
    24. Aktiv = True
    25. ElseIf readdata.ToLower = "nein" Then
    26. Aktiv = False
    27. End If
    28. Console.WriteLine("Geldausgabe?")
    29. readdata = Console.ReadLine
    30. If readdata.ToLower = "ja" Then
    31. Geldausgabe = True
    32. ElseIf readdata.ToLower = "nein" Then
    33. Geldausgabe = False
    34. End If
    35. If Unternehmungslustig = True Then
    36. If Freunde = True Then
    37. If Geldausgabe = True Then
    38. If Aktiv = True Then
    39. Console.WriteLine("miete eine Jet")
    40. Else
    41. Console.WriteLine("Kino")
    42. End If
    43. Else
    44. If Aktiv = True Then
    45. Console.WriteLine("besuche freundet")
    46. Else
    47. Console.WriteLine("FH Kino")
    48. End If
    49. End If
    50. Else
    51. If Geldausgabe = True Then
    52. If Aktiv = True Then
    53. Console.WriteLine("Casino")
    54. Else
    55. Console.WriteLine("Kino")
    56. End If
    57. Else
    58. If Aktiv = True Then
    59. Console.WriteLine("asta Party")
    60. Else
    61. Console.WriteLine("Kino")
    62. End If
    63. End If
    64. End If
    65. Else
    66. If Freunde = True Then
    67. If Geldausgabe = True Then
    68. If Aktiv = True Then
    69. Console.WriteLine("Sit in")
    70. Else
    71. Console.WriteLine("Videofilm")
    72. End If
    73. Else
    74. If Aktiv = True Then
    75. Console.WriteLine("zusammenlegen")
    76. Else
    77. Console.WriteLine("starrt euch gegenseitig an")
    78. End If
    79. End If
    80. Else
    81. If Geldausgabe = True Then
    82. If Aktiv = True Then
    83. Console.WriteLine("Kaufe wind xp und installiere es")
    84. Else
    85. Console.WriteLine("kreuzug durch ebay und co")
    86. End If
    87. Else
    88. If Aktiv = True Then
    89. Console.WriteLine("deine scripte und bücher starren dich an")
    90. Else
    91. Console.WriteLine("keien freunde kein Geld gehe schlafen")
    92. End If
    93. End If
    94. End If
    95. End If
    96. Console.ReadLine()
    97. End Sub
    98. End Module
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise
    Danke, wenn ich es bis heute Nacht nicht selber geschafft habe, werde ich darauf zurückkommen.

    Nur mal so als Frage: Ist es überhaupt möglich, das ganze so zu lösen wie ich es weiter oben angefangen habe? Oder bin ich auf sowas wie readdata.Lower etc angewiesen?