|
Posté le 08-08-2017 à 21:53 | #
|
Il est possible d'enlever la contrainte en mettant un commentaire quelconque juste après Isz (ou Dsz).
Comme ça on incrémente/décrémente plus rapidement sans que ce soit un bug potentiel |
|
|
Posté le 08-08-2017 à 21:54 | #
|
Le commentaire ralentit le code par contre ! As-tu comparé la vitesse des deux méthodes du coup ? Ce serait dans quel rapport de vitesse ? |
|
|
Posté le 08-08-2017 à 22:00 | #
|
Pour 2000 itérations :
- Isz sans commentaire : 1950 ms
- Isz avec 'a juste après : 2050 ms
- Incrémentation normale (I+1->I) : 2330 ms
- Incrémentation normale avec 4 lignes de commentaires : 4380 ms
À +/- 50ms.
Donc les commentaires ralentissent le code, mais un petit commentaire tel que 'a ne fera pas grand chose comparé au temps passé à chercher pourquoi ça bug quand I atteindra 0. |
|
|
Posté le 08-08-2017 à 22:01 | #
|
Voilà, ça c'est ce dont on a besoin dans la référence Basic ! |
|
|
Posté le 13-08-2017 à 00:13 | #
|
Et pourquoi Casio c'est dis que quand Isz atteint 0 ils fallait sauter la ligne suivante ? Est-ce un comportement standard ? |
|
|
Posté le 13-08-2017 à 00:20 | #
|
Ceci est pure spéculation, peut être que cake pourra confirmer :
Dans les anciennes calculatrices il n'y avait aucun opcode avec 2 octets. Si tu regardes ici : https://bible.planet-casio.com/simlo/chm/v20/fxCG20_OPCODES.htm tu verras que ça inclue :
- La double flèche (⇒), l'assignement (→), Goto, Lbl, Isz, Dsz
Mais pas :
- If, While, For, Break, etc
Du coup, au lieu de faire :
For 1->I To 100
A◢
Next
Il fallait faire :
100->I
Lbl 1
A◢
Dsz I
Goto 1
Et les instructions Isz/Dsz devaient sauter l'instruction suivante, comme office de Break.
Après, pourquoi ils n'ont pas directement mis les If/For/While, aucune idée. |
|
|
Posté le 10-07-2018 à 23:11 | #
|
Il semblerait que ces commandes ne fonctionnent pas dès lors que les variables manipulées sont des nombres complexes.
1+i →A
//Done
Isz A
//provoque Error Ma
Assez dommage, si vous voulez mon avis. Il y a bien sûr toujours des alternatives. |
|
|
Posté le 11-07-2018 à 07:39 | #
|
Je tiens à précisé que les liste ne peuvent pitre incrémentées de cette manière :
Isz List 1[20] //renvoie une erreur |
|
|
Posté le 11-07-2018 à 11:07 | #
|
Comme indiqué dans la description...
Permet d'incrémenter de 1 une variable A à Z
Les commandes Isz et Dsz ne s'appliquent effectivement qu'aux variables alphanumériques |
|