Je ne peux pas dire si le bogue est apparent sur tout les OS (Window,
Linux ou MacOS) mais puisque le type quad est disponible pour les 3
platformes il y a de forte chance qu'il soit présent sur les 3.
Exemple :
Index = 2
Beta(Index) = 51
Beta(Index + 1) = 76
Beta(Index) + Beta(Index + 1) = 68719476863
Apparement le simple fait de faire Beta(Index + 1) ou Beta(Index - 1)
provoque le problème. Il semble que la valeur 51 (2e index du tableau)
soit ajouter à la valeur correspondant à l'adresse de la valeur 76
(3e index du tableau) et non à sa valeur.
Le problème est apparent pour les opérations d'addition, soustraction,
multiplication, division ou de comparaison.
- Beta(Index) + Beta(Index + 1)
- Beta(Index) - Beta(Index + 1)
- Beta(Index) * Beta(Index + 1)
- Beta(Index) / Beta(Index + 1)
- Beta(Index) < Beta(Index + 1)
- Beta(Index) > Beta(Index + 1)
En revanche si le calcul d'indexation est fait au préalable dans une
variable, le problème disparaît :
IndexB = Index + 1
Beta(Index) + Beta(IndexB)
A+
Guimauve
PS. : Ce bogue à déja été rapporté sur le forum anglais.
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Bogue Tableau de quad (.q)
; Fichier : Bogue Tableau de quad.pb
; Version : 1.0.0
; Programmé par : Guimauve
; Date : 02-02-2007
; Mise à jour : 02-02-2007
; Codé avec PureBasic V4.02
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Structure Alpha
Tab.q[6]
EndStructure
Dim Beta.q(5)
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
For Index = 0 To 5
Test.Alpha\Tab[Index] = Index * 5
Beta(Index) = (Index * 25) + 1
Next
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Debug "Déboggue de la structure avec Step 2"
Debug ""
For Index = 0 To 5 Step 2
Debug "Test\Tab[" + Str(Index) + "] = " + StrQ(Test\Tab[Index])
Debug "Test\Tab[" + Str(Index + 1) + "] = " + StrQ(Test\Tab[Index+1])
Debug "Test\Tab[" + Str(Index) + "] + Test\Tab[" + Str(Index + 1) + "] = " + StrQ(Test\Tab[Index] + Test\Tab[Index + 1])
Debug Test\Tab[Index]
Debug Test\Tab[Index + 1]
Debug Test\Tab[Index] + Test\Tab[Index + 1]
Debug ""
Next
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Debug "Déboggue du tableau avec Step 2"
Debug ""
For Index = 0 To 5 Step 2
Debug "Beta(" + Str(Index) + ") = " + StrQ(Beta(Index))
Debug "Beta(" + Str(Index + 1) + ") = " + StrQ(Beta(Index + 1))
Debug "Beta(" + Str(Index) + ") + Beta(" + Str(Index + 1) + ") = " + StrQ(Beta(Index) + Beta(Index + 1))
Debug Beta(Index)
Debug Beta(Index + 1)
Debug Beta(Index) + Beta(Index + 1)
Debug ""
Next
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Debug "Déboggue du tableau avec Step -2"
Debug ""
For Index = 5 To 1 Step -2
Debug "Beta(" + Str(Index) + ") = " + StrQ(Beta(Index))
Debug "Beta(" + Str(Index - 1) + ") = " + StrQ(Beta(Index - 1))
Debug "Beta(" + Str(Index) + ") + Beta(" + Str(Index - 1) + ") = " + StrQ(Beta(Index) + Beta(Index - 1))
Debug Beta(Index)
Debug Beta(Index - 1)
Debug Beta(Index) + Beta(Index - 1)
Debug ""
Next
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<