Page 1 sur 1
Pourquoi ce programme ne s'arrête pas?
Publié : jeu. 09/avr./2009 18:46
par africanos
salut à toutes et tous,
j'ai essayé ce petit bout de code :
est ce que quelq'un peut m'expliquer pourquoi il nes'arrête pas?
Merci pour la lecture et ausi pour la réponse.

Publié : jeu. 09/avr./2009 19:26
par Fig
bein, chez moi ça s'arrête, comprend pas...

Publié : jeu. 09/avr./2009 19:27
par Atomo
Ce code marche :
Le problème survient quand tu déclares le type après For.
Publié : jeu. 09/avr./2009 19:31
par venom
moi sa ne s'arrete pas non plus
comme sa oui :
@++
Publié : jeu. 09/avr./2009 19:41
par cha0s
le type Byte est limité a 127 donc quand tu fait next i et qu'il est a 127 il redescend a -128 par conséquent il reste dans la boucle.
Publié : jeu. 09/avr./2009 21:41
par africanos
Merci pour les réponses .
pour Atomo ,
même si la variable est déclarée avant
For , le problème persiste:
essayez ceci:
Pour venom ta version ne s'arrête pas ca tu n'a pas déclaré la variable i , or , a partir de la version 4.30, le type par défaut est le type integer (.i).
je pense que la réponse de chaOs est plus logique .
bonne programmation

Publié : jeu. 09/avr./2009 23:37
par Le psychopathe
africanos a écrit :Merci pour les réponses .
pour Atomo ,
même si la variable est déclarée avant
For , le problème persiste:
essayez ceci:
Pour venom ta version ne s'arrête pas ca tu n'a pas déclaré la variable i , or , a partir de la version 4.30, le type par défaut est le type integer (.i).
je pense que la réponse de chaOs est plus logique .
bonne programmation

cha0s a répondu pour le pourquoi alors je te conseil de faire comme ceci pour esquiver le problème :
Publié : ven. 10/avr./2009 10:24
par Le psychopathe
Ou encore une autre solution
Code : Tout sélectionner
i.b=0
For i=0 To 127
Debug Str(i)
if i = 127
break
endif
Next i
Publié : ven. 10/avr./2009 11:10
par djes
Le type char a été fait pour ça.
Publié : ven. 10/avr./2009 12:01
par Octavius
Ou encore :
Code : Tout sélectionner
i.b=0
For i=0 To 127
If i<0 : Break : EndIf
Debug Str(i)
Next i
Ceci dit, j'aime beaucoup cette astuce de boucle infinie qui permet de compter les incrémentations.
Publié : dim. 12/avr./2009 15:23
par brossden
Bonjour à tous
Juste entre nous pourquoi utiliser les Bytes ??
A notre époque quel PC n'a pas 1 Go de mémoire vive ?
Je comprend qu'il y trente ans on essayait de faire des économies d'octets, mais bon est-ce toujours d'actualité, sans compter que c'est source d'erreur et autres problèmes, mais bon c'est juste mon avis!
Joyeuses Pâques !
Publié : dim. 12/avr./2009 18:18
par djes
brossden a écrit :Bonjour à tous
Juste entre nous pourquoi utiliser les Bytes ??
A notre époque quel PC n'a pas 1 Go de mémoire vive ?
Je comprend qu'il y trente ans on essayait de faire des économies d'octets, mais bon est-ce toujours d'actualité, sans compter que c'est source d'erreur et autres problèmes, mais bon c'est juste mon avis!
Joyeuses Pâques !
+1
Publié : dim. 12/avr./2009 18:30
par Octavius
Je ne sais pas chez les autres, mais chez moi c'est une habitude de programmation. Quand j'ai appris (tout seul avec les tutos d'internet et du forum), j'ai bêtement suivi les recommandations, ne pas utiliser plus de mémoire que nécessaire. Même si c'est vrai qu'à l'échelle des RAM actuelles c'est un gain bien minime. Mais c'est aussi dans mon caractère d'être maniaque et économe. Et puisque j'utilise la commande 'EnableExplicit', je déclare toutes mes variables, donc ça ne me compte rien d'écrire '.b' à la place de '.l' ou '.i'. En fait dans mes programmes on retrouve tous les types de variable, et j'ai rarement des erreurs (et en plus c'est pas le genre d'erreurs trop difficiles à déboguer).