Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Nombre de boucles et de If limités ?
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Nombre de boucles et de If limités ?

Posté le 06/06/2019 20:07

Bonjour !
J'ai remarqué, plusieurs fois, que si on exécutait un programme avec "trop" de boucles LpWhile ou de If, le programme indiquait une erreur syntaxe juste devant le Then ou le LpWhile... Est-ce bien à cause de ça ?

* Cette question ne sert que pour ma "culture générale", car en mettant par exemple en remplaçant par des conditions directes "⇒" le code fonctionne correctement.


1, 2 Suivante
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 06/06/2019 20:08 | #


à mon avis il doit manquer un ifend
plus il y en a plus c'est facile de ce tromper
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Lephenixnoir En ligne Administrateur Points: 21357 Défis: 149 Message

Citer : Posté le 06/06/2019 20:12 | #


Ça parraît bizarre, si on en imbrique trop l'erreur s'appelle Nesting ERROR si je me souviens bien.

Peux-tu proposer un exemple minimal ?
Mastermokemo Hors ligne Membre Points: 606 Défis: 5 Message

Citer : Posté le 06/06/2019 21:41 | #


Ben moi je sais que j'avais rencontré le problème en basic casio et j'en avais déduit qu'il y avait une limite.

Après je sais pas, j'avais vérifié plein de fois le nombre de if, then et ifend mais rien à faire
J'avais donc conclu que la limite se situait vers 9 boucles maximum.

J'ai peut-être faux mais ça ne me semble pas débile

EDIT : je viens de tester avec 25/30 boucles et ça marche donc je ne comprends pas. A mon avis il dois avoir un rapport avec le nombre total de caractères dans les boucles
Bon, dernier programme (je suppose) est en développement mais je ne vous en dis pas plus ... ... Sinon ... ça va bien vous ?
Lephenixnoir En ligne Administrateur Points: 21357 Défis: 149 Message

Citer : Posté le 07/06/2019 00:17 | #


Peut-être, comme Mactul suggère, une erreur de syntaxe qui s'est glissée dans le code.
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Citer : Posté le 07/06/2019 17:22 | #


Voici un exemple (pas le plus léger...) : il y a deux cas présent dans mon programme Bataille Corse. On ne va aller voir que 1 "problème" : recherchez "r=0 And Z=5" (r minuscule). Vous voyez que j'ai mis plusieurs fois ça (r=0 sur 7 lignes en condition directe). Enlevez tous les "r=0" et mettez une condition autour (avec If et IfEnd).
Pour voir l'erreur, il faut qu'un joueur dépose une image (ou un as) et que l'autre n'ait plus de chance (par ex : Roi 6 7 8)
Il n'y avait pas d'erreur avant mais bien maintenant

* désolé du temps que je vous prend si vous le faites...

En tout cas, un grand merci déjà pour vos réponses !

Ajouté le 07/06/2019 à 17:26 :
Et croyez-moi, il n'y a aucune erreur ou d'oubli de ma part
Un problème sans solution est un problème mal posé — Albert Einstein
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 07/06/2019 18:54 | #


Thebigdadboy a écrit :
Et croyez-moi, il n'y a aucune erreur ou d'oubli de ma part

J'ai une petite idée pour vérifier cela:
Lance le en C-basic, comme c'est bien mieux codé, si c'est vraiment Basic Casio le pb, ça devrais marcher
Si tu n'as pas C-Basic, envoie nous le programme qui bug, qu'on le teste
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Kikoodx En ligne Membre Points: 2834 Défis: 11 Message

Citer : Posté le 07/06/2019 19:40 | #


Thebigbadboy a écrit :
Et croyez-moi, il n'y a aucune erreur ou d'oubli de ma part

Voilà une phrase à ne jamais prononcer sur un forum, passe le code
Time is running out
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Citer : Posté le 07/06/2019 20:19 | # | Fichier joint


Voili voilou (en fichier joint le programme qui a une "erreur" sur ma Graph 75 USB 2 OS 2.05)
Un problème sans solution est un problème mal posé — Albert Einstein
Sentaro21 Hors ligne Membre Points: 862 Défis: 0 Message

Citer : Posté le 08/06/2019 09:21 | #


The lowercase letter r for 286 line of BATCORSE (by BIDE) is correctly [ALPHA]+[X^2].
then,
The Dsz command jumps over the next command when it becomes 0.
Dsz <r>
If <r>=0:Then

<r>-1-><r>
If <r>=0:Then

I think this changed will work.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 08/06/2019 12:16 | #


haa oui, évite les Dsz et Isz
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Citer : Posté le 08/06/2019 17:04 | #


Et bien, effectivement, en remplaçant le "Dsz r" par "r-1⇒r", le programme fonctionne. (Je me suis dit : ouais ! Je gagne un octet en faisant ça )
Je ne savais vraiment pas que ça pouvait sauter un commande juste après si le résultat était 0...
Merci énormément pour votre aide (une fois de plus, on a la preuve que Basic Casio c'est de la nullité )

Ajouté le 08/06/2019 à 17:05 :
Ah oui, dernière chose : il n'y a que des problèmes quand le résultat d'un Isz ou Dsz vaut 0 ?
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 21357 Défis: 149 Message

Citer : Posté le 08/06/2019 17:20 | #


Oui. C'est fait exprès pour sortir des boucles. La boucle ci-dessous se termine automatiquement quand C tombe à 0 :

While ...
Dsz C
WhileEnd
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Citer : Posté le 08/06/2019 20:14 | #


Je croyais que pour sortir d'une boucle on utilisait plutôt "Break"... Enfin merci bien !

Un problème sans solution est un problème mal posé — Albert Einstein
Kirafi Hors ligne Membre Points: 2175 Défis: 10 Message

Citer : Posté le 10/06/2019 11:19 | #


Matcul a écrit :
évite les Dsz et Isz

Je ne suis pas d'accord, il faut les utiliser au maximum car ils boostent les performances du programme Basic.

Astuce pour éviter le saut automatique du Dsz à zéro : Ajouter une instruction "vide" après.
Je crois qu'il suffit juste d'un deux-point en plus " : " après le Dsz :

Dsz r::
If r ≥ 0:Then


Teste et dis-nous .
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Citer : Posté le 10/06/2019 13:19 | #


En effet, avec " Dsz r:: " le programme fonctionne sans erreur.
Je vais donc privilégier les Isz et Dsz car ils prennent moins d'octets et sont plus rapides / efficaces.
Merci bien
Un problème sans solution est un problème mal posé — Albert Einstein
Kirafi Hors ligne Membre Points: 2175 Défis: 10 Message

Citer : Posté le 10/06/2019 14:06 | #


Et bien, comme quoi mes souvenirs sont encore corrects haha, bon courage pour la suite .
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Lephenixnoir En ligne Administrateur Points: 21357 Défis: 149 Message

Citer : Posté le 10/06/2019 14:33 | #


Est-ce que c'est toujours plus rapide avec les deux-points du coup ? :o
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Citer : Posté le 10/06/2019 19:41 | #


De toute façon, un centième de seconde en plus ou pas, cela ne change pas tellement
Alors autant prendre ce qui pèse le moins
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 21357 Défis: 149 Message

Citer : Posté le 10/06/2019 19:42 | #


Ça se joue à un octet du coup. Pas mal !
Thebigbadboy Hors ligne Maître du Puzzle Points: 277 Défis: 16 Message

Citer : Posté le 10/06/2019 19:44 | #


À 2 octets non ?
Dsz vaut un octet, r et : aussi (donc 3 octets)
Au lieu de r-1→r (5 octets)
Un problème sans solution est un problème mal posé — Albert Einstein
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 68 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd