Step

Sujets variés concernant le développement en PureBasic
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Step

Message par pat »

Bonjour,

Faites ceci dans PB 5.42 :

For f.a=10 to 1 Step-1
Debug f
Next f

Vous aurez 10, 8, 6, 4, 2 et non 10 à 1.

C'est comme si ce n'était pas Step-1 mais Step-2

Maintenant à la place f.a faites f tout court. Cela marche parfaitement bien.
Et si maintenant vous faites Define f.a et dans la boucle For f, cela ne fonctionne pas non plus.

Je pense que c'est un bug PureBasic.
Si vous êtes d'accord avec ça, vous pouvez renseigner le site anglais (je suis particulièrement nul en Anglais pour faire ça moi-même).
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Step

Message par GallyHC »

Bonjour,

Je vais déjà renseigner ici en disant que j'ai fait le test sur PB 5.42 LTS (x32 et x64) avec ce code :

Code : Tout sélectionner

For f.a = 10 To 1 Step -1
  Debug f
Next f
Et j'obtient bien :

Code : Tout sélectionner

10
9
8
7
6
5
4
3
2
1
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Step

Message par falsam »

Idem pour moi. Pas de souci avec ce code. PB 5.42 (x86)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Step

Message par pat »

Affaire résolu.
Je vais quand même chercher à voir pour quoi chez moi cela ne fonctionne pas.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Step

Message par microdevweb »

Idem que Gally

#PB 5.42 64
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Step

Message par Ar-S »

+1 tout est ok
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: Step

Message par Shadow »

Désolé mais moi j'ai un résultat différent...
C'est curieux que ça fasse le résultat de Pat quand même.

Donc mon résultat est bien différent..... de Pat.
En gros tous ça pour dire -> Rien à signalé !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Step

Message par Micoute »

Quel plaisantin tu fais, Shadow !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Step

Message par pat »

Bonjour,

Ce n'est pas une plaisanterie.
En fait, faites ceci :

For f.a=10 To 1 Step-1
a=a+1
Next f
Debug a

Vous trouverez 5.
Même si vous faites : Define f.a et mettez For f=10 To Step-1 cela ne fonctionnera pas.
Retirer le .a et tout est correct.

Maintenant faites ceci : le même que ci-dessus mais avec For f=10 To 1 Step-1.
Debug a
Vous trouverez 10.

Donc il y a bien un bug.

Et ceci pour les versions de PB 5.31, 5.40 et 5.42.

A vous de vérifier !!!
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Step

Message par GallyHC »

Bonjour,

Donc avec ce code :

Code : Tout sélectionner

For i.a = 10 To 1 Step -1
  a + 1
Next i

Debug a
J'ai bien "5", donc il y a bien un problème. Par contre j'ai par acquis de conscience, j'ai fait :

Code : Tout sélectionner

For i.a = 10 To 1 Step -1
  a + 1
  Debug i
Next i

Debug a
et la j'ai bien :
10
9
8
7
6
5
4
3
2
1
10
Donc en gros ce problème survient si "aucun" retour dans le "For", comme un debug.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Step

Message par pat »

Mais cela revient à la normale si on met f à la place de f.a
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Step

Message par cage »

Bonjour,

Depuis le premier message et en essayant tous les exemples, j'ai toujours obtenu le bon résultat.

Impossible de reproduire le phénomène. Windows 10 / 64-bit + PB 5.42 LTS
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Step

Message par pat »

Je suis sous Vista 32 bits.
Donc cela semblerait fonctionner pour les 64 bits.
A faire le test pour ceux qui sont "encore" en 32 bits.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Step

Message par falsam »

Je ne comprends pas l’intérêt de faire une boucle for avec une variable incrémentale de de type ASCII

Code : Tout sélectionner

For i.a = 10 To 1 Step -1
Etre sur 1 byte au lieu de 4 bytes avec un type integer ? Est ce que ça a vraiment un sens ?
pat a écrit :Mais cela revient à la normale si on met f à la place de f.a
Retour à la normal effectivement mais là aussi, aucun sens. La boucle for ne sachant pas traiter un step de type float, autant utiliser un type integer.

En tenant compte de ce que je viens de dire ton code est fonctionnel avec un type integer

Code : Tout sélectionner

For i = 10 To 1 Step -1
  a + 1
Next
Debug a
Au fait, on peut simplifier ce code :wink:

Code : Tout sélectionner

For i = 1 To 10
  a + 1
Next
Debug a
Un Step en moins ^^
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Step

Message par pat »

A falsam,

Autant que je sache, le float c'est .f et non pas .a (ascii).
De plus, il est vrai qu'on peut faire soi-même sa boucle sans passer par un For/Next/Step mais c'est quand même pratique. Et si je choisis d'aller en régressant, c'est que dans mes codes j'ai besoin que cela se fasse ainsi.
Il n'est pas anormale de faire une boucle avec un .a mais si tu veux dire qu'il n'y a pas de bug, ceci n'engage que toi.
Répondre