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.