[resolu] For i ... to ... décroissant ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

[resolu] For i ... to ... décroissant ?

Message par Ar-S »

Code : Tout sélectionner

For i = 100 To 90
  Delay (500)
  Debug "Num : "+Str(i)
  i-1
Next i
MessageRequester("plop","plop")
en gros je fais un programme qui doit insérer une image à une position donnée.
Un repertoire contient
1.jpg, 2.jpg, 3.jpg etc
NbreTotal=3

L'utilisateur veut insérer une image donnée en 2eme position par exemple.
choixutilisateur=2

Donc le soft compte le nombre d'images total et tente de renommer les images ainsi :
renamefile(str(i)+".jpg",str(i+1)+".jpg")

Vous comprendrez qu'il faut donc commencer par la dernière image..
Donc je fais un

Code : Tout sélectionner

for i = NbreTotal to choixutilisateur
renamefile(str(i)+".jpg",str(i+1)+".jpg")
i-1
next
Je viens de découvrir que For ... To ne fonctionnait pas en décroissant ??
Hallucine-je ? On est obligé de passer par une liste ou un tableau ?
Dernière modification par Ar-S le jeu. 31/mars/2011 15:53, modifié 1 fois.
~~~~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
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: For i ... to ... décroissant ?

Message par flaith »

step -1 ?

Code : Tout sélectionner

For i = 3 To 0 Step -1
  Debug i
Next
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: For i ... to ... décroissant ?

Message par Ar-S »

arrgh je viens de trouver..
effectivement, simplement ça..
On croit qu'on connait les fonction de base et en ré-ré-ré-ré-ré-ouvrant la doc, la solution saute au visage.
Merci tout de même

code corrigé :

Code : Tout sélectionner

for i = NbreTotal to choixutilisateur step-1
renamefile(str(i)+".jpg",str(i+1)+".jpg")
next

P.S : c'est tout de même un peu bête de devoir utiliser step-1. Pb et surtout For/To pourraientt gérer l'ordre décroissant simplement que ce serait pas plus mal ;)
En tout cas ça m'aura pris pas mal de temps pour ce truc tout con.
~~~~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
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: [resolu] For i ... to ... décroissant ?

Message par case »

non car tu peux avoir besoin d'un step -2 ou en cas de nombres a virgule flottante un step -0.25 et ça aucun langage de programmation ne pourra jamais le deviner.
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [resolu] For i ... to ... décroissant ?

Message par Ar-S »

Et si on ajoutait i-1 avant le next ? enfin l'important c'est que ça fonctionne.
Je ne l'oublierai pas. :)
~~~~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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [resolu] For i ... to ... décroissant ?

Message par Backup »

8O Step fait partie du Basic depuis les debuts ! ( 1964 ) :roll:
tout les basics integrent ça :
C64,Zx81,MO5,TO7,TO9,TI99/4a, Apple 2e, ORIC ATMOS, ...etc

si on commence a changer ça, c'est plus du basic , autant se mettre au C

deja qu'on a pas la possibilités en PureBasic de mettre des variables flottantes... meme des variables tout court.. (j'ai demandé ça il y a plus de 10 ans... j'attends toujours ...)

ceci :

Code : Tout sélectionner

a.f=2.2
b.f=10.5
c.f=0.05

For i = a.f To b.f Step c.f
    Debug i
Next i

est un code normal en basic , pourtant Purebasic ne sait pas faire .. :roll:

( je sais qu'on peut faire autrement .... )

mais n'empeche... :roll:
Répondre