Fehler bei Quad..

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
rasi
Beiträge: 10
Registriert: 10.04.2005 14:44

Fehler bei Quad..

Beitrag von rasi »

Habe folgenden Fehler entdeckt (Beta 9):
das Rechnen mit Quads in Ausdrücken funktioniert scheinbar nicht (hier am Beispiel mit Repeat .. Until).

Folgender Code wird fehlerhaft ausgeführt:

Code: Alles auswählen

Global counter.l
Global quad1.q
Global quad2.q

If OpenConsole() 
  EnableGraphicalConsole(1)
  ClearConsole()

  counter=0
  quad1=1
  quad2=0

  Repeat
    counter+1
    quad2+1
    
    ConsoleLocate(0,1) 
    PrintN("counter = "+Str(counter))
    
    Delay(1000)
  Until quad2 > quad1+quad1*3  ; quad1 muesste den Wert 4 haben -> Abbruch nach 5 Durchlaeufen

  ConsoleLocate(0,5) 
  PrintN("Anzahl der Durchlaeufe = "+Str(counter))

  Input()
EndIf
End
Normalerweise müßte die Schleife 5 mal durchlaufen werden,
hier wird die Schleife aber nach dem 1. Durchlauf beendet.
Mit Long Variablen tritt dieser Fehler nicht auf!


Hier noch ein Code mit Quads bei dem das ganze funktioniert:

Code: Alles auswählen

Global counter.l
Global quad1.q
Global quad2.q

If OpenConsole() 
  EnableGraphicalConsole(1)
  ClearConsole()

  counter=0
  quad1=1
  quad2=0
  
  quad1+quad1*3 ; hier wird die Abbruchbedingung vorher errechnet -> quad1 = 4
  
  Repeat
    counter+1
    quad2+1
    
    ConsoleLocate(0,1) 
    PrintN("counter = "+Str(counter))
    
    Delay(1000)
  Until quad2 > quad1

  ConsoleLocate(0,5) 
  PrintN("Anzahl der Durchlaeufe = "+Str(counter))

  Input()
EndIf
End
rasi
Beiträge: 10
Registriert: 10.04.2005 14:44

Fehler bei Beta 10 beseitigt..

Beitrag von rasi »

:lol:
Habe soeben die Beta 10 von PB4 ausprobiert.
Der oben beschriebene Fehler ist beseitigt.
:lol:

:allright: Hut ab und großes Kompliment an das PureBasic Entwicklerteam!! :allright:
Antworten