π
<-
Chat plein-écran
[^]

[Résolu] Optimisation de CE X-Pander

[Résolu] Optimisation de CE X-Pander

Message non lude Astarus » 19 Juin 2020, 16:16

Bonjour !

CE XPander est un programme en Basic de critor qui permet de rechercher une valeur exacte au dernier nombre enregistré dans la variable Rep.
Ce programme se compose de plusieurs sous programmes qui se lancent pour effectuer les calculs à l'aide de l'instruction prgm. J'ai voulu optimiser cet aspect et j'ai réussi à regrouper ces programmes en un seul. Ma version de CE XPander se compose maintenant de 2 programmes :

CEXP : c'est le programme à lancer. Il se contente de lancer le programme CEXPAND2 et affiche l'éventuel résultat. Voici le code.

Code: Tout sélectionner
Rep→N
0→dim(L₆
0→dim(L₄
0→⌊E(1
0→⌊D(1
{0,5,0,1→⌊M
a+b
Output(9,1,"Presser une touche pour abandonner…
N
prgmCEXPAND2
Output(10,1,"                         
Rep


CEXPAND2 : c'est ce programme qui fait tous les calculs. Je ne joint pas le code, ce machin fait 43Ko...

Quand je lance CEXP, tout se passe bien. Le programme affiche "Presser une touche pour abandonner..." ainsi qu'un indicateur d'avancement du programme (0%, 20%,...)

J'ai voulu intégrer CE XPand à un autre programme (appelons-le TEST). J'ai donc simplement recopié le code de CEXP dans TEST, auquel j'ai juste ajouter un Lbl et une pause pour afficher le résultat, ce qui nous donne :

Code: Tout sélectionner
Lbl 2Z
EffÉcran
Rep→N
0→dim(L₆
0→dim(L₄
0→⌊E(1
0→⌊D(1
{0,5,0,1→⌊M
a+b
Output(9,1,"Presser une touche pour abandonner…
N
prgmCEXPAND2
Output(10,1,"                         
Rep
Pause
Goto 2T


Comme on peut le constater, je n'ai pas touché aux instructions de CEXP. Et pourtant, quand je lance CE XPander via TEST, cela ne marche pas.
Il m'affiche bien "Presser une touche pour abandonner...", puis le programme est en pause. Si on appuie sur entrer, on retourne au programme TEST...

Je ne comprends pas cette réaction, alors que je n'ai pas touché à CEXP. Je précise que CEXPAND2 n'appelle à aucun moment CEXP avec l'instruction prgm, ce qui aurait pu être la cause du problème. Si quelqu'un a une idée, je l'en remercie d'avance.
Dernière édition par Astarus le 20 Juin 2020, 17:53, édité 1 fois.
Tous mes programmes ici.

Image
Avatar de l’utilisateur
AstarusProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 90.6%
 
Messages: 37
Inscription: 26 Oct 2019, 17:02
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: MP*

Re: CE XPANDER optimisé mais...

Message non lude Ti64CLi++ » 19 Juin 2020, 16:35

Parce que le programme CEXPAND2, d'après ce que je comprends retourne la valeur exacte dans Rep.
Or, quand tu appelles Rep sans commande d'affichage, cette valeur n'est pas affichée mais retourné dans Rep justement, c'est ce que fait la ligne N avant l'appel au programme CEXPAND2. La valeur de Rep est la valeur de N après cela.
Tu as le choix entre utiliser une fonction d'affichage comme Disp ou Output, ou stopper le programme après Rep pour que la valeur soit retournée.
Mais d'après ce que je comprends, ton programme ne se termine pas à cet endroit, donc il te suffit de rajouter un Disp devant le Rep après prgmCEXPAND2
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: CE XPANDER optimisé mais...

Message non lude Astarus » 20 Juin 2020, 13:05

Bonjour Ti64CLi++ !

J'avais oublié le fonctionnement exact de cette commande, donc ta réponse m'a permis de mieux comprendre comment fonctionne CEXP. Malheureusement, le problème ne vient pas de là. J'ai ajouté le Disp devant Rep. Maintenant, quand je lance le tout via TEST, cela m'affiche "Presser une touche pour abandonner... 0%" puis quasi-immédiatement il me donne la valeur de Rep. Vu qu'il ne s'agit pas de celle entrée au début du programme - à chaque fois je teste avec la valeur approchée de sin(pi/8) retournée par la calculatrice, le programme me retourne 93 - il y a donc eu calcul.... Mais cela s'affiche trop vite pour que CEXPAND2 ait pu effectué tous les calculs (la preuve puisque 93 n'a rien à voir avec la valeur exacte de sin(pi/8)...). Donc j'ai l'impression qu'il faudrait répéter CEXP pour lancer plusieurs fois CEXPAND2. Or il n'y a PAS UN Repeat dans ces deux programmes. Tout cela me laisse perplexe.
Tous mes programmes ici.

Image
Avatar de l’utilisateur
AstarusProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 90.6%
 
Messages: 37
Inscription: 26 Oct 2019, 17:02
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: MP*

Re: CE XPANDER optimisé mais...

Message non lude Ti64CLi++ » 20 Juin 2020, 13:30

Est ce que ton nouveau code de ton programme CEXP est celui ci :
Code: Tout sélectionner
Lbl 2Z
EffÉcran
Rep→N
0→dim(L₆
0→dim(L₄
0→⌊E(1
0→⌊D(1
{0,5,0,1→⌊M
a+b
Output(9,1,"Presser une touche pour abandonner…
N
prgmCEXPAND2
Output(10,1,"                         
Disp Rep
Pause
Goto 2T
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: CE XPANDER optimisé mais...

Message non lude Astarus » 20 Juin 2020, 13:48

Oui.
Tous mes programmes ici.

Image
Avatar de l’utilisateur
AstarusProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 90.6%
 
Messages: 37
Inscription: 26 Oct 2019, 17:02
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: MP*

Re: CE XPANDER optimisé mais...

Message non lude Hamza.S » 20 Juin 2020, 13:57

Que renvoie ton programme CEXPAND2 ?
Juste après la ligne prgmCEXPAND2, pourquoi ne pas récupérer directement ton résultat et le stocker sur la bonne variable ?
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.5%
 
Messages: 4461
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: CE XPANDER optimisé mais...

Message non lude Astarus » 20 Juin 2020, 14:05

CEXPAND2 stocke la réponse sous forme de chaîne de caractères dans Chn0, c'est donc CEXPAND2 qui se charge de l'affichage de cette chaîne. La valeur de Rep (on veut donc en déterminer la valeur exacte) ne change pas et est affichée à la fin par CEXP, mais c'est surtout esthétique.
Tous mes programmes ici.

Image
Avatar de l’utilisateur
AstarusProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 90.6%
 
Messages: 37
Inscription: 26 Oct 2019, 17:02
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: MP*

Re: CE XPANDER optimisé mais...

Message non lude Astarus » 20 Juin 2020, 14:13

J'ai supprimé les lignes Output et Disp pour y voir plus clair. Le résultat est le même. J'ai "Presser une touche pour abandonner... 0%" puis le programme est en pause, je fais entrer et je reviens à TEST... J'ai dit une bêtise la valeur de Rep est bien modifiée. En l'occurence, Rep vaut 93 une fois que j'ai quitté le programme... Si seulement critor passait par là ! :whistle:
Tous mes programmes ici.

Image
Avatar de l’utilisateur
AstarusProgrammeur
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 90.6%
 
Messages: 37
Inscription: 26 Oct 2019, 17:02
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: MP*

Re: CE XPANDER optimisé mais...

Message non lude Ti64CLi++ » 20 Juin 2020, 14:14

Donc quand tu lances CEXPAND2 avec la valeur arrondie dans Rep, CEXPAND2 te stocké la valeur exacte dans Chn0 et s'occupe lui même de l'afficher ?
Mais du coup quel est le problème exact ? CEXPAND2 n'affiche pas la valeur exacte ?
À mon avis c'est que il stocke la valeur exact dans Chn0, puis la retourne comme Rep.
Tente de faire Disp Chn0 avant ton Disp Rep, juste après l'appel au programme CEXPAND2 ;)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: CE XPANDER optimisé mais...

Message non lude Hamza.S » 20 Juin 2020, 14:26

Si CEXPAND2 n'a pas de commande d'affichage, rien ne s'affichera.
Quelle est la dernière ligne du programme CEXPAND2 ?
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.5%
 
Messages: 4461
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1400 utilisateurs:
>1379 invités
>17 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)