1. #1
    Avatar von exception
    Registriert seit
    27.03.2012
    Beiträge
    198
    Thanked 57 Times in 36 Posts

    Standard Problem mit Schleifen

    Hallo,
    hab jetzt sicher 1 Stunde herumprobiert aber ich finde den Fehler einfach nicht.
    Es geht um einen Code für eine WordMix-Anwendung.

    PHP-Code:
    Dim unmixedArr() As String //Gesplitetter Satz
        
    Dim unmixed As String String.Empty //Normaler satz aus loaded()
        
    Dim mixNumbers As String String.Empty //MixCombi in Zahlen
      
    Dim zahl As Integer
    Dim rnd 
    as Random

    Private Sub mix(ByVal satz As String)
            
    //Richtige Zahlencombi = mixNumbers

            
    unmixed ""
            
    mixNumbers ""
            
    realmix ""


            
    unmixed "Das ist ein Test!"
            
    unmixedArr unmixed.Split(" ")


           
    //Zahlenreihe für Mix erzeugen; Output = mixNumbers zB. 140235
            
    While Not mixNumbers.Length unmixedArr.Count
                zahl 
    rnd.Next(0unmixedArr.Count)
                If 
    Not mixNumbers.Contains(zahlThen
                    mixNumbers 
    mixNumbers Convert.ToString(zahl)
                
    End If
            
    End While



            
    //mixNumbers zeichenweise auslesen und mix ausgeben..
            
    For 0 To mixNumbers.Length 1
                Dim AC 
    As Integer Val(mixNumbers.ElementAt(x))
                
    realmix realmix unmixedArr(AC) & "(" ") "
                
    Console.Write(unmixedArr(AC) & "(" ") ")
            
    Next
            Console
    .Write(" - " mixNumbers vbCrLf)
        
    End Sub 
    Wie Ihr seht wird zuerst die Mix-Reihenfolge generiert und in der Variable mixNumber gespeichert. Danach
    wird mixNumbers zeichenweise ausgelesen und der Mix Satz für Satz ausgegeben.

    Das Problem:
    Für fast jeden Mix sind die richtigen Zahlen(mixNumbers) falsch. Der Mix wird zwar ohne Probleme ausgegeben aber die richtige Lösung die in mixNumbers steht stimmt nicht.

    Damit Ihr besser versteht was ich meine:


    Name:  screen733.png
Hits: 135
Größe:  27,0 KB

    In dem Fall wird der Mix und danach die mixNumbers augegeben.
    Ok, schauen wir in die erste Zeile.

    ein(0) ist(1) Das(2) Test!(3) - 2103
    Dieser Mix passt zum Beispiel.

    2te Zeile:
    ein(0) Das(1) Test!(2) ist(3) - 2031
    Und da haben wir das Problem. mixNumbers ist 2031 aber das stimmt
    nicht, sonst wäre ja "Test! ein ist Das" die richtige Lösung.

    Mehr brauch ich glaube ich nicht erklären. Einfach das Screen anschauen
    und Ihr solltet das Problem erkennen.

    Danke im voraus!

    MfG
    __________________
    Hab gerade gesehen das ich anscheinend vergessen habe das Screen mit reinzustellen.
    Hab's mal reineditiert, villeicht kann mir ja jetzt wer helfen..

  2. #2

    Registriert seit
    31.01.2011
    Beiträge
    26
    Thanked 211 Times in 94 Posts

    Standard Problem mit Schleifen

    Ich find auf die Schnelle jetzt auch keinen Fehler im Code. VB.Net-Code zu lesen ist sowieso gay (für mich).
    Hast du schon den Debug-Modus benutzt? Also Breakpoint an der ersten Stelle setzen und dann Zeile für Zeile debuggen..? <- So wirst du den Fehler mit Sicherheit finden.



    -------------------------------------------
    Hier kommt der Waynetrain! Er fährt mit deiner Story zum Whateverest !!!
    -------------------------------------------
    BILD ANZEIGEN [Warum wird das Bild nicht angezeigt?]

  3. #3
    Avatar von exception
    Registriert seit
    27.03.2012
    Beiträge
    198
    Thanked 57 Times in 36 Posts

    Standard Problem mit Schleifen

    Hallo,
    ich versteh echt die Welt nicht mehr.
    Ich habe den Code jetzt komplett neu und einfacher geschrieben aber ich hab
    noch immer genau das selbe Problem.

    PHP-Code:
    Module Module1
        Dim rnd 
    As New Random //Random
        
    Dim z As Integer //Zwischenspeicher für Random
        
    Dim wordcount As Integer 0  //counter für nummerierung
        
    Dim unmixed As String "Das ist ein Test!" //ungemixeter Satz
        
    Dim unmixedArr() As String unmixed.Split(" "//unmixed gesplittet
        
    Dim mixNumbers As String String.Empty  //zahlen combi für mix(richtige lösung)

        
    Private Sub mix()
            
    0
            wordcount 
    0
            mixNumbers 
    ""

            
    While mixNumbers.Length <= unmixedArr.Count 1
                z 
    rnd.Next(0unmixedArr.Count)

                If 
    Not mixNumbers.Contains(zThen
                    mixNumbers 
    mixNumbers z
                    Console
    .Write(unmixedArr(z) & "(" wordcount ") ")
                    
    wordcount += 1
                End 
    If

            
    End While

            
    Console.WriteLine(mixNumbers)
        
    End Sub

        Sub Main
    ()
            For 
    0 To 10
                mix
    ()
            
    Next
            Console
    .ReadLine()
        
    End Sub
    End Module 
    Hier wieder ein Screen:

    Name:  newal.png
Hits: 139
Größe:  38,5 KB

    Selbsterklärend...

    Ich habe dieses Debugging mit Breakpoint jetzt ehrlich gesagt nicht ausprobiert aber
    das kann nicht sein das ich/wir den Fehler in diesem Mini Code nicht finden. Das lustige
    ist ja das ich schon einen funktionierenden Code hatte, dann hab ich irgendwas verändert
    und jetzt bekomm ich's einfach nicht mehr hin. Ich bin den Code sicher schon 100 mal Zeile
    für Zeile durchgegangen und find den Fehler einfach nicht.

    MfG

  4. #4

    Registriert seit
    09.11.2011
    Beiträge
    121
    Thanked 129 Times in 46 Posts

    Standard Problem mit Schleifen

    PHP-Code:
    Dim mixNumbers As String String.Empty  //zahlen combi für mix(richtige lösung) 
    Da ist dein Denkfehler. Dein Array (unmixedArr) sieht immer so aus:
    [0] -> Das
    [1] -> ist
    [2] -> ein
    [3] -> Test!

    PHP-Code:
    rnd.Next(0unmixedArr.Count
    Gehen wir ein Szenario mal durch:
    z ist 3 -> Test!
    z ist 1 -> ist
    z ist 0 -> Das
    z ist 2 -> ein

    Dein Satz sieht dann so aus: Test!(0) ist(1) Das(2) ein(3)
    Die Lösung wäre (korrekt) 2130, bei dir ist es aber 3102, weil du einfach die Zahlen (Index) deiner Variable mixNumbers zuweist.
    ~>
    PHP-Code:
    mixNumbers mixNumbers 
    Zitat Zitat von exception
    In dem Fall wird der Mix und danach die mixNumbers augegeben.
    Ok, schauen wir in die erste Zeile.

    ein(0) ist(1) Das(2) Test!(3) - 2103
    Dieser Mix passt zum Beispiel.
    Dies passt, da das 1. Wort ein (vom Satz aus mit den Klammern) im Array an der 2. Stelle steht, das Wort ist an der 1. Stelle, das Wort Das an 0. Stelle (nullbasiert) und das Wort Test! an 3. Stelle.

    Zitat Zitat von exception
    2te Zeile:
    ein(0) Das(1) Test!(2) ist(3) - 2031
    Und da haben wir das Problem. mixNumbers ist 2031 aber das stimmt
    nicht, sonst wäre ja "Test! ein ist Das" die richtige Lösung.
    Schau:
    ein ist im Array an der 2. Stelle, daher ist bei der Lösung (mixNumbers) zuerst eine 2 zu sehen. Das Wort Das ist an der 0. Stelle, daher auch die 0 als zweite Ziffer (Key).

    MfG

  5. #5
    Avatar von exception
    Registriert seit
    27.03.2012
    Beiträge
    198
    Thanked 57 Times in 36 Posts

    Standard Problem mit Schleifen

    Hallo und Sorry das ich diesen alten Thread nochmal hochpushe.

    Folgendes Problem:
    Ich hatte es mittels Brainys Erklärung schon vor längerer Zeit geschafft alles
    zum laufen zu bringen. Leider Gottes habe ich die Projektmappe irgendwie verloren
    und jetzt bekomm ich's wieder nicht hin. Anscheinend ist es noch zu früh
    Lustig ist ja das ich den Code schon 2 mal zum funktionieren brachte aber wie gesagt
    hab ich die verdammte Projektmappe verloren XD

    Jetzt sitze ich schon wieder seit gut einer Stunde an diesem Snippet und finde den
    Fehler nicht

    Wäre schön wenn mir nochmal wer helfen könnte. xD

    //Edit:
    Das Problem ist im 1 bzw. 4 Post zu finden.

  6. #6
    Avatar von exception
    Registriert seit
    27.03.2012
    Beiträge
    198
    Thanked 57 Times in 36 Posts

    Standard Problem mit Schleifen

    Ich hab den Code jetzt zum 10ten mal neu geschrieben und habe noch immer das
    selbe Problem.

    PHP-Code:
        Sub Main()
            
    Dim rnd As New Random
            Dim z 
    As Integer 1337

            Dim satzArr
    () As String "Das ist ein Test!".Split(" ")
            
    Dim mix As String String.Empty
            
    Dim numbers As String String.Empty

            While 
    numbers.Length satzArr.Count
                z 
    rnd.Next(0satzArr.Count)

                If 
    Not numbers.Contains(zThen
                    numbers 
    numbers z
                    mix 
    mix satzArr(z) & "(" numbers.Length ") "
                
    End If
            
    End While

            
    Console.WriteLine(numbers)
            
    Console.WriteLine(mix)

            
    Console.ReadLine()
        
    End Sub 

  7. #7

    Registriert seit
    09.11.2011
    Beiträge
    121
    Thanked 129 Times in 46 Posts

    Standard Problem mit Schleifen

    Deine Variable numbers wird so nicht die Lösung des Rätsels sein, da du nur die Randomwerte (Index) da hinzufügst. (abgesehen davon, dass numbers vom Typ String ist und z ein Integer)

    MfG

  8. #8

    Registriert seit
    19.11.2011
    Beiträge
    2.128
    Thanked 1.936 Times in 1.180 Posts

    Standard Problem mit Schleifen

    Hey,

    falls das hier noch aktuell sein sollte, ich habs mal eben getippt.

    Code:
      Sub Main()
            Dim Answer As String = WordmixBreake("Das antibakterielle Laktosepulver löste bei ihm Akne aus.", "aus.(0) antibakterielle(2) löste(6) Das(3) ihm(7) bei(1) Akne(4) Laktosepulver(5)")
            Console.WriteLine("Antwort: " & Answer)
            Console.ReadLine()
        End Sub
    
        Private Function WordmixBreake(ByVal RightSentence As String, ByVal Mixed As String) As String
            Dim Mixxed As String() = Mixed.Split(CChar(" "))
            Dim An As String = String.Empty
            For Each p As String In RightSentence.Split(CChar(" "))
                An &= Regex.Match(Mixxed.SingleOrDefault(Function(c) Regex.Replace(c, "\((\d+)\)", String.Empty) = p), "\((\d+)\)").Groups(1).Value
            Next
            Return An
        End Function

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 05.01.2017, 09:31
  2. TAN Problem!!!
    Von Jack DanieLs im Forum Fragen & Probleme
    Antworten: 5
    Letzter Beitrag: 16.03.2013, 21:08
  3. [W-Lan] Problem!
    Von Microsoft im Forum Hardware
    Antworten: 3
    Letzter Beitrag: 22.07.2012, 13:28
  4. Skype-Problem: Problem mit dem Wiedergabegerät
    Von Scarface im Forum Audio & Video
    Antworten: 0
    Letzter Beitrag: 16.07.2012, 23:58
  5. [C#] Arrays und for-Schleifen
    Von Snees im Forum .Net
    Antworten: 4
    Letzter Beitrag: 19.11.2011, 18:09
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.