Seite 1 von 1

Select bei Quad

Verfasst: 03.06.2008 20:58
von Josef Sniatecki
Ich weiß nicht ob jemand diesen Fehler schon gemeldet hat, oder in den neuen PureBasic-Versionen dieser Fehler schon behoben wurde:

Wenn ich eine Quad Variable beim "Select" benutze, dann wählt mir mein Programm immer den ersten Fall/Case aus.

Code: Alles auswählen

Global MyQuadVar.q
MyQuadVar=Random(100)

Select MyQuadVar
  Case 0
    Debug "Null!!!"
  Case 1
    Debug "One! Juhu!!!"
  Default
    Debug "Any! Yes!!!!!"
EndSelect
Kann vieleicht jemand erklären wieso, oder liegt das jetzt wirklich nur an einem Fehler von PureBasic.

Verfasst: 03.06.2008 21:14
von ts-soft
Debugger-Ausgabe hat geschrieben:Any! Yes!!!!!

Verfasst: 03.06.2008 21:32
von ZeHa
Wird wohl an der RandomSeed liegen...

Code: Alles auswählen

Global MyQuadVar.q 


For i = 1 To 100
  MyQuadVar=Random(5) 

  Select MyQuadVar 
    Case 0 
      Debug "Null!!!" 
    Case 1 
      Debug "One! Juhu!!!" 
    Default 
      Debug "Any! Yes!!!!!" 
  EndSelect
Next i 
Debugger-Ausgabe hat geschrieben: Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Null!!!
One! Juhu!!!
Any! Yes!!!!!
One! Juhu!!!
One! Juhu!!!
Null!!!
Null!!!
Null!!!
One! Juhu!!!
Any! Yes!!!!!
Any! Yes!!!!!
Null!!!
One! Juhu!!!
Null!!!
Any! Yes!!!!!
Null!!!
Any! Yes!!!!!
Null!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
One! Juhu!!!
Null!!!
Any! Yes!!!!!
Any! Yes!!!!!
Null!!!
One! Juhu!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
One! Juhu!!!
One! Juhu!!!
Any! Yes!!!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
Any! Yes!!!!!
Null!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Null!!!
Null!!!
Any! Yes!!!!!
Any! Yes!!!!!
Null!!!
Null!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
One! Juhu!!!
One! Juhu!!!
One! Juhu!!!
Any! Yes!!!!!
Null!!!
Any! Yes!!!!!
Null!!!
Any! Yes!!!!!
Null!!!
Any! Yes!!!!!
One! Juhu!!!
Any! Yes!!!!!
Null!!!
Any! Yes!!!!!
One! Juhu!!!
One! Juhu!!!
Null!!!
One! Juhu!!!
Any! Yes!!!!!
Und wieder mal wurde ein vermeintlicher "Bug" als "da hat der Programmierer nicht richtig aufgepaßt" entlarvt...

@ Josef: Ist jetzt nix gegen Dich persönlich, aber wenn ich sehe, wie oft irgendeiner daherkommt und einen "Bug" entdeckt hat, der kein Bug ist, dann finde ich das fast schon respektlos den Entwicklern der Programmiersprache gegenüber. Okay, PB ist eine relativ "kleine" Sprache und vielleicht sind da Bugs etwas (!) wahrscheinlicher als bei "großen" Sprachen wie C++ oder Java, aber letztendlich ist es nie verkehrt, erstmal einen normalen Thread der Marke "da funktioniert irgendwas nicht so wie ich es mir vorstelle" zu eröffnen. Im Übrigen tritt exakt der gleiche "Bug" auf, wenn Du normale Longs verwendest statt Quads. Das hättest Du zumindest auch mal testen können.

Ach ja zum Thema RandomSeed: Einfach mal in der Hilfe nachschauen ;)

Verfasst: 03.06.2008 22:49
von Kaeru Gaman
also, mal wieder kein echter käfer....

*verschieb*

Verfasst: 03.06.2008 22:59
von ts-soft
Bild

Verfasst: 03.06.2008 23:02
von Josef Sniatecki
OK. Damit wurde mir mal geholfen.

RandomSeed

Verfasst: 04.06.2008 19:29
von Josef Sniatecki
Und noch was:

Ich habe mir einen Preprozessor programmiert, der mir automatisch wichtige Templates einbindet. In diesen wird wirklich von mir "RandomSeed" genutzt. In C++ wird ja nicht automatisch die Reihenfolge der Zufallszahlen zufällig festgelegt. Und dies wollte ich einfach in PureBasic übernehmen.

Bei Änderungen der Zahl nach dem "RandomSeed" kommen wirklich immer wieder andere Fälle aus dem "Select" vor.

Danke für die Erinnerung an diesen Befehl.

Da habe ich mich wohl blamiert. :mrgreen:

Verfasst: 04.06.2008 19:47
von ZeHa
Naja, es ist ja nicht verwerflich, Fehler zu machen. Und die Sache mit RandomSeed ist ja jetzt auch nicht sooo selbstverständlich (warum sollte es sowas auch geben, sind ja schließlich "Zufallszahlen" ;) ). Also von daher, kein Problem :)

Mich hat es nur gestört daß es als PB-Bug hingestellt wird, und das passiert leider recht oft ;) und in vielen Fällen handelt es sich halt nicht um einen Bug, sondern nur um falsche Anwendung :mrgreen: