nicht wiederholende, zufällige Reihenfolge

  • VB.NET

Es gibt 34 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    marius schrieb:

    dass die selbe Zahl nicht doppelt vorkommt?
    Hättest Du den Code verstanden, den Du da gepostet hast, hättest Du jetzt die Lösung, allerdings ohne LINQ.
    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!
    Bitte, helft mir doch einfach...

    Der RadioButton1 auf Form1 steht für normale Reihenfolge.
    Der RadioButton2 auf Form1 steht für gemischte Reihenfolge.

    Das hier steht unteranderem in einem Button auf Form2:

    VB.NET-Quellcode

    1. If Form1.RadioButton1.Checked = True Then
    2. Questionnumber += 1
    3. If Questionnumber > 14 Then
    4. Questionnumber = 1
    5. End If
    6. End If
    7. If Form1.RadioButton2.Checked = True Then
    8. Dim Rnd As New Random
    9. Questionnumber = Rnd.Next(1, 16)
    10. End If


    Leider kommt immer mal wieder die selbe Zahl für Questionnumber. Das gibt ja auch Sinn. Aber wie kann ich das verhindern?? ?(


    LG Marius

    marius schrieb:

    VB.NET-Quellcode

    1. Form1.RadioButton1
    1. Von wo aus greifst Du auf den RadioButton zu?
    2. Checked ist Boolean, da brauchst Du nicht auf = True zu testen.
    3. Wenn Du 2 Fälle hast (sortiert / unsortiert) genügt eine CheckBox.
    Also:

    VB.NET-Quellcode

    1. If CheckBox1.Checked Then
    2. ' etwas tun
    3. Else
    4. ' etwas anderes tun
    5. End If
    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!

    RodFromGermany schrieb:

    Wenn Du 2 Fälle hast (sortiert / unsortiert) genügt eine CheckBox.

    Ich will am Ende aber drei Möglichkeiten. sortiert, unsortiert und Prüfungssimulation, dh.: genaue Anzahl an unsortierten Fragen mit Auswertung am Ende.

    Mir geht es jetzt aber nur um das unsortiert, deshalb habe ich es nicht genauer erklärt, dass ich drei RadioButtons habe.

    Bei meiner Powerpointpräsentation hatte ich 2 Checkboxen, das finde ich hier aber nicht so gut.
    Solche unwichtigen Details hätte ich auch erst im 25. Post kund getan.
    Dann mach

    VB.NET-Quellcode

    1. If Form1.RadioButton1.Checked = True Then
    2. ' etwas tun
    3. ElseIf Form1.RadioButton2.Checked = True Then
    4. ' etwas anderes tun
    5. Else
    6. ' noch etwas anderes tun
    7. End If
    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!
    Prinzipiel könnte ich das doch aber auch mit 3 RadioButtons machen? Find ich schöner...

    VB.NET-Quellcode

    1. If Form1.RadioButton1.Checked = True Then
    2. ' etwas tun
    3. ElseIf Form1.RadioButton2.Checked = True Then
    4. ' etwas anderes tun
    5. ElseIf Form1.RadioButton3.Checked = True Then
    6. ' etwas ganz anderes tun
    7. Else
    8. ' noch etwas anderes tun z.B. bei Form1 eine MsgBox mit "Bitte wählen" oder so...
    9. End If


    LG Marius
    Stell konkrete Fragen zu Deinem Code und Dir wird geholfen.
    Wischi-waschi und Prosa ist heute nicht. :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!

    VB.NET-Quellcode

    1. Form1.RadioButton1
    Du hast noch nicht gesagt, von wo aus Du auf die RadioButton zugreifst.
    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!
    Genau 0,1 und 2.

    Du hast noch nicht gesagt, von wo aus Du auf die RadioButton zugreifst. Was meinst du damit?

    OK, dann jetzt nochmal, was mein Problem ist:

    Das ist mein Code von Form2:

    VB.NET-Quellcode

    1. Public Class Form2
    2. Dim Questionnumber As Integer
    3. Dim A, B, C, D As Boolean
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. Label5.Text = "Kann es losgehen?"
    6. A = False
    7. B = False
    8. C = False
    9. D = False
    10. End Sub
    11. Private Sub Select_Questions()
    12. Select Case Questionnumber
    13. Case 1
    14. Label5.Text = "A ist richtig"
    15. CheckBox1.Text = "Antwortmöglichkeit A"
    16. CheckBox2.Text = "Antwortmöglichkeit B"
    17. CheckBox3.Text = "Antwortmöglichkeit C"
    18. CheckBox4.Text = "Antwortmöglichkeit D"
    19. A = True
    20. B = False
    21. C = False
    22. D = False
    23. Case 2
    24. Label5.Text = "b ist richtig"
    25. CheckBox1.Text = "Antwortmöglichkeit A"
    26. CheckBox2.Text = "Antwortmöglichkeit B"
    27. CheckBox3.Text = "Antwortmöglichkeit C"
    28. CheckBox4.Text = "Antwortmöglichkeit D"
    29. A = False
    30. B = True
    31. C = False
    32. D = False
    33. Case 3
    34. Label5.Text = "c ist richtig"
    35. CheckBox1.Text = "Antwortmöglichkeit A"
    36. CheckBox2.Text = "Antwortmöglichkeit B"
    37. CheckBox3.Text = "Antwortmöglichkeit C"
    38. CheckBox4.Text = "Antwortmöglichkeit D"
    39. A = False
    40. B = False
    41. C = True
    42. D = False
    43. Case 4
    44. Label5.Text = "d ist richtig"
    45. CheckBox1.Text = "Antwortmöglichkeit A"
    46. CheckBox2.Text = "Antwortmöglichkeit B"
    47. CheckBox3.Text = "Antwortmöglichkeit C"
    48. CheckBox4.Text = "Antwortmöglichkeit D"
    49. D = True
    50. A = False
    51. B = False
    52. C = False
    53. Case 5
    54. Label5.Text = "a + b ist richtig"
    55. CheckBox1.Text = "Antwortmöglichkeit A"
    56. CheckBox2.Text = "Antwortmöglichkeit B"
    57. CheckBox3.Text = "Antwortmöglichkeit C"
    58. CheckBox4.Text = "Antwortmöglichkeit D"
    59. A = True
    60. B = True
    61. C = False
    62. D = False
    63. Case 6
    64. Label5.Text = "a + c ist richtig"
    65. CheckBox1.Text = "Antwortmöglichkeit A"
    66. CheckBox2.Text = "Antwortmöglichkeit B"
    67. CheckBox3.Text = "Antwortmöglichkeit C"
    68. CheckBox4.Text = "Antwortmöglichkeit D"
    69. A = True
    70. C = True
    71. B = False
    72. D = False
    73. Case 7
    74. Label5.Text = "a + d ist richtig"
    75. CheckBox1.Text = "Antwortmöglichkeit A"
    76. CheckBox2.Text = "Antwortmöglichkeit B"
    77. CheckBox3.Text = "Antwortmöglichkeit C"
    78. CheckBox4.Text = "Antwortmöglichkeit D"
    79. A = True
    80. D = True
    81. B = False
    82. C = False
    83. Case 8
    84. Label5.Text = "b + c ist richtig"
    85. CheckBox1.Text = "Antwortmöglichkeit A"
    86. CheckBox2.Text = "Antwortmöglichkeit B"
    87. CheckBox3.Text = "Antwortmöglichkeit C"
    88. CheckBox4.Text = "Antwortmöglichkeit D"
    89. B = True
    90. C = True
    91. A = False
    92. D = False
    93. Case 9
    94. Label5.Text = "b + d ist richtig"
    95. CheckBox1.Text = "Antwortmöglichkeit A"
    96. CheckBox2.Text = "Antwortmöglichkeit B"
    97. CheckBox3.Text = "Antwortmöglichkeit C"
    98. CheckBox4.Text = "Antwortmöglichkeit D"
    99. B = True
    100. D = True
    101. A = False
    102. C = False
    103. Case 10
    104. Label5.Text = "c + d ist richtig"
    105. CheckBox1.Text = "Antwortmöglichkeit A"
    106. CheckBox2.Text = "Antwortmöglichkeit B"
    107. CheckBox3.Text = "Antwortmöglichkeit C"
    108. CheckBox4.Text = "Antwortmöglichkeit D"
    109. C = True
    110. D = True
    111. A = False
    112. B = False
    113. Case 11
    114. Label5.Text = "a + b + c ist richtig"
    115. CheckBox1.Text = "Antwortmöglichkeit A"
    116. CheckBox2.Text = "Antwortmöglichkeit B"
    117. CheckBox3.Text = "Antwortmöglichkeit C"
    118. CheckBox4.Text = "Antwortmöglichkeit D"
    119. A = True
    120. B = True
    121. C = True
    122. D = False
    123. Case 12
    124. Label5.Text = "a + b + d ist richtig"
    125. CheckBox1.Text = "Antwortmöglichkeit A"
    126. CheckBox2.Text = "Antwortmöglichkeit B"
    127. CheckBox3.Text = "Antwortmöglichkeit C"
    128. CheckBox4.Text = "Antwortmöglichkeit D"
    129. A = True
    130. B = True
    131. D = True
    132. C = False
    133. Case 13
    134. Label5.Text = "b + c + d ist richtig"
    135. CheckBox1.Text = "Antwortmöglichkeit A"
    136. CheckBox2.Text = "Antwortmöglichkeit B"
    137. CheckBox3.Text = "Antwortmöglichkeit C"
    138. CheckBox4.Text = "Antwortmöglichkeit D"
    139. B = True
    140. C = True
    141. D = True
    142. A = False
    143. Case 14
    144. Label5.Text = "a + c + d ist richtig"
    145. CheckBox1.Text = "Antwortmöglichkeit A"
    146. CheckBox2.Text = "Antwortmöglichkeit B"
    147. CheckBox3.Text = "Antwortmöglichkeit C"
    148. CheckBox4.Text = "Antwortmöglichkeit D"
    149. A = True
    150. C = True
    151. D = True
    152. B = False
    153. Case 15
    154. Label5.Text = "alle sind richtig"
    155. CheckBox1.Text = "Antwortmöglichkeit A"
    156. CheckBox2.Text = "Antwortmöglichkeit B"
    157. CheckBox3.Text = "Antwortmöglichkeit C"
    158. CheckBox4.Text = "Antwortmöglichkeit D"
    159. A = True
    160. B = True
    161. C = True
    162. D = True
    163. End Select
    164. End Sub
    165. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    166. Button1.Enabled = False
    167. Button2.Enabled = True
    168. CheckBox1.Enabled = True
    169. CheckBox2.Enabled = True
    170. CheckBox3.Enabled = True
    171. CheckBox4.Enabled = True
    172. If Form1.RadioButton1.Checked = True Then
    173. Questionnumber += 1
    174. If Questionnumber > 14 Then
    175. Questionnumber = 1
    176. End If
    177. End If
    178. If Form1.RadioButton2.Checked = True Then
    179. Dim a(15) As Integer
    180. For i As Integer = 1 To 16
    181. a(i - 1) = i
    182. Next
    183. Dim r As New Random
    184. Dim b() As Integer = (From i As Integer In a Order By r.NextDouble Select i Take 6).ToArray
    185. Questionnumber = a
    186. End If
    187. Select_Questions()
    188. Button2.Text = "Prüfen"
    189. CheckBox1.Checked = False
    190. CheckBox2.Checked = False
    191. CheckBox3.Checked = False
    192. CheckBox4.Checked = False
    193. Label7.Text = ""
    194. End Sub
    195. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    196. If A = CheckBox1.Checked And B = CheckBox2.Checked And C = CheckBox3.Checked And D = CheckBox4.Checked Then
    197. Label7.Text = "richtig"
    198. Label7.ForeColor = Color.Green
    199. Else
    200. Label7.Text = "falsch"
    201. Label7.ForeColor = Color.Red
    202. End If
    203. Button1.Enabled = True
    204. Button2.Enabled = False
    205. A = False
    206. B = False
    207. C = False
    208. D = False
    209. Button1.Text = "weiter"
    210. End Sub
    211. End Class


    Ein Teil davon ist das da:

    VB.NET-Quellcode

    1. If Form1.RadioButton2.Checked = True Then
    2. Dim a(14) As Integer
    3. For i As Integer = 1 To 15
    4. a(i - 1) = i
    5. Next
    6. Dim r As New Random
    7. Dim b() As Integer = (From i As Integer In a Order By r.NextDouble Select i Take 6).ToArray
    8. Questionnumber = a
    9. End If


    Nur geht das da nicht, weil der Wert vom Thyp "1-dimensionales Array von Integer" kann nicht in "Integer" konvertiert werden:

    VB.NET-Quellcode

    1. Questionnumber = a


    Vom Ansatz her müsste das doch jetzt aber richtig sein oder?
    Also ich will, dass die Frafen in ungeordneter Reihenfolge abgefragt werden.
    LG Marius

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

    marius schrieb:

    was mein Problem ist:

    Dein Problem ist, dass dir die Grundlagen der Grundlagen fehlen, dein "Programm" für dich momentan weit außerhalb deiner Kenntnisse liegt und du das nicht einsehen willst oder kannst!

    VB.NET-Quellcode

    1. Questionnumber = a

    Questionnumber ist eine ZAHL. a sind viele Zahlen
    Hast du Mathe in der Schule?
    x = 1, 2, 7, 9, 12, 16 ... sieht komisch aus oder?


    VB.NET-Quellcode

    1. Dim b() As Integer = (From i As Integer In a Order By r.NextDouble Select i Take 6).ToArray

    Ich find's ja schön, wenn Leute meinen Code hilfreich finden, aber wenn sie ihn nur kopieren ohne auch nur den Hauch davon zu verstehen, dann wird das nix!

    VB.NET-Quellcode

    1. Case 1
    2. Label5.Text = "A ist richtig"
    3. CheckBox1.Text = "Antwortmöglichkeit A"
    4. CheckBox2.Text = "Antwortmöglichkeit B"
    5. CheckBox3.Text = "Antwortmöglichkeit C"
    6. CheckBox4.Text = "Antwortmöglichkeit D"
    7. A = True
    8. B = False
    9. C = False
    10. D = False

    Du willst 212 Fragen in deinem "Quiz". Und die willst du alle SO darstellen? Schneidest du den Rasen eines Fußballfeldes auch mit ner Nagelschere?

    picoflop schrieb:

    Schneidest du den Rasen eines Fußballfeldes auch mit ner Nagelschere?
    :thumbup: :thumbup: :thumbup:
    @marius: Überleg mal, ob es möglich ist, das ganze mit Fragen und Antworten in einer Datei, meinetwegen zunächst im Quellcode, drastisch zusammenzufassen.
    Bevor Du nicht programmierst, überleg Dir einen Algorithmus dafür.
    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!