Step X

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Step X

Message par kelly »

un for avec Step n'est possible que si le Step indique un chiffre et pas une variable !!! DOOOOMMAGE
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

ca a déjà été demandé maintes fois... y'a k'à espérer...

Dri
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Actuellement si j'écris

Code : Tout sélectionner

For i=1 To 10
  Debug i
Next 
Le step est par défaut égal à 1.


Ce qui serait bien c'est que si j'écris

Code : Tout sélectionner

For i=10 To 1
   Debug i
Next 
Le step devienne -1 par défaut.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Je crois que ce n'est pas ce que l'on demande. Ce qui serais bien pratique que selon certaines criconstances on puisse Stepper en fonction de la valeur d'une Variable. Comme ceci :

Code : Tout sélectionner

For Compteur = Min To Max Step Increment
    ; on fait quelque chose
Next
J'ai déja été confronté à un problème du genre et la seule façon de s'en sortir c'est de faire comme suit :

Code : Tout sélectionner

Procedure RemplirTableau(Increment.l)
  
  If Increment = 2
    
    For Compteur = 0 To 100 Step 2
      MonTableau(Compteur) = Compteur * Increment
    Next
    
  ElseIf Increment = 3
    
    For Compteur = 0 To 100 Step 3
      MonTableau(Compteur) = Compteur * Increment
    Next
    
  ElseIf Increment = 4
    
    For Compteur = 0 To 100 Step 4
      MonTableau(Compteur) = Compteur * Increment
    Next
    
  EndIf 
  
EndProcedure 
Mais ça aurait été bien plus simple de pouvoir mettre la variable Increment après le Step

A+
Guimauve
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Guimauve a écrit :Je crois que ce n'est pas ce que l'on demande. Ce qui serais bien pratique que selon certaines criconstances on puisse Stepper en fonction de la valeur d'une Variable.
Oui moi aussi j'aimerais bien utiliser une variable pour le step , mais ce n'est pas ce que je demande :)

Mais en plus de pouvoir utiliser une variable pour le step , je demande d'avoir le step par défaut à -1 si on veut décrémenter.
Il me semble que certains BASIC fonctionnent comme ça ?
ou je me trompe ? c'est pas si important ce truc , c'est juste une idée.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

C'est vrai que si l'argument de début est plus grand que l'argument de fin le compilateur pourrait implicitement mettre le Step à -1.

Personnlement, j'ai jamais eu un problème du genre mais qui sait pour l'avenir.

A+
Guimauve
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Bah ya toujours la solution

Code : Tout sélectionner

i = 1
max = 1000
while i < max
  ; blabla
  ; i = i * 2
wend
:wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

c'est pas une rustine qu'on veut mais une maj du for/next :mad:

Dri tusors:
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Methode beaucoup plus estetique et moins grosse :

Au lieu de :

Code : Tout sélectionner

For i=15 to 858 Step 17
...
...
next
On peux mettre :

Code : Tout sélectionner

i=15
stp=17
Repeat
...
...
i+stp
Until i>858;+++++++++++++++
[/code]
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Oui mais quand tu as 2 0000 steps on fait comment ? :D
Est beau ce qui plaît sans concept :)
Speedy Galerie
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

On peut modifier la variable dans une boucle for next, j'avais déjà utiliser ce procédé pour la supression d'élément dans un ListIcon.

En voici un exemple:

Code : Tout sélectionner

Stepi=7

For i=0 To 63
;--------------- 
  ;/ le code ici
  Debug i
;--------------- 
  i=i+Stepi-1
Next i
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Frenchy Pilou a écrit :Oui mais quand tu as 2 0000 steps on fait comment ? :D

Code : Tout sélectionner

i=15 
stp=20000
Repeat 
... 
... 
i+stp 
Until i>858;+++++++++++++++ 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

i=15
stp=20000
Repeat
...
...
i+stp
Until i>858;+++++++++++++++
ton exemple est completement faux :D

i va passer de 15 a 20015

et ta boucle attend que i soit > que 858 !!!!

elle aura meme pas eu le temps de faire un tour :D
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Dobro a écrit :
i=15
stp=20000
Repeat
...
...
i+stp
Until i>858;+++++++++++++++
ton exemple est completement faux :D

i va passer de 15 a 20015

et ta boucle attend que i soit > que 858 !!!!

elle aura meme pas eu le temps de faire un tour :D
MDR (tu n'as qu'a la tester, tu verras qu'elle fait 1 seul tour)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

bah ca c'est évident... le propre de la boucle repeat c'est d'être exécutée au moins une fois... Et là même avec un while ca devrait passer à vue de nez...

Dri
Répondre