Seite 1 von 1

Fehler bei Quad..

Verfasst: 06.04.2006 22:32
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

Fehler bei Beta 10 beseitigt..

Verfasst: 11.04.2006 11:45
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: