1
Salut @ tous !!

Un copain m'a demandé si je pouvais lui faire un certain programme, capable, en outre, de calculer des surfaces à partir de nombre de pièces donné à l'exécution du programme. Bref, j'ai fait le code, ça marche... Mais voila: le programme ne fait faire en fait que des calculs de surfaces pour des pièces qui doivent être rectangulaires ! J'aimerai alors avoir un menu, lors de la demande des propriétés de la pièce qui demande quelle est sa forme, pour ensuite aller rediriger la personne au bon endroit du programme (lbl et goto ??) te revenir puis passer à la pièce suivante ...

Savez-vous comment faire sans utiliser trop de lbl et de goto (sachant que les variables "théta",A,B,D,E,I,T,S sont utilisées) ?


P.S. : pour le calcul de surface (des pièces rectangulaires), j'ai utilisé une boucle While, (while I>="théta", I étant l'indice associé avec "A", le nombre de pièces) avec des input pour demander la longueur et la largeur. -> Voir code

Merci de vos réponses !!

Voici le prog' :


Lbl 1
Effvar IEffvar thetaEffvar AEffvar BEffvar S
Menu [...] (surfaces -> SU)
Lbl SU
ClrHome
Imput "nbr de piece(s)",theta
If theta=0:Goto 1
Disp "","Terrasse comprise
Output(6,1,"0:Non 1:Oui
imput C
If C>1 ou C<0:Goto1
If C=1
Then
ClrHome
Disp "Terrasse :","Longueur:
Imput D
Disp "","Largeur:
Imput E
DE -> T
End
While I<theta-C
I+1 -> I
ClrHome
Disp "piece n°
Output(1,9,I
Disp "","Longueur :
Imput D
Disp "","Largeur :
Imput E
S+DE -> S
End
ClrHome
Disp "Surface totale :
Output(2,1,S
Output(2,9,Metres²
Output(4,1,"Terrasse :
Output(5,1,T
Output(5,9,"Metres²
Pause


avatarhttps://tiplanet.org - TI-Planet.org Cofounder & coadmin
https://inspired-lua.org - Lua Programming on the TI-Nspire
2
-il te faut utiliser l'instruction menu(. Cf le manuel ( education.ti.com, sinon zFAQ=>lien vers les manuels. )

-pour la boucle ce serait plus naturel d'utiliser un for(I,1,theta
3
ok merci d'avoir répondu, mais en fait, je sais me servir d'un menu (j'en fait pour chacun de mes progs') mais c'était juste pour savoir si il faut absolument avoir des lbl et des goto en graaaaaand nombres ^^ et pour savoir comment vous feriez, vous, pour demander la forme (menu, imput, autres ??)

pour le for(I,1,theta, c'était dans la 1ere version du prog et ca marchait pas mal sauf qu'après, il fallait au total plus de ligne, donc l'effet et le même avec un while et une incrémentation, mais en moins d'octet !!
avatarhttps://tiplanet.org - TI-Planet.org Cofounder & coadmin
https://inspired-lua.org - Lua Programming on the TI-Nspire
4
Pour demander la forme de la pièce, je ferais comme Very: un menu ou plusieurs suivant des thèmes.
5
-Disons que c'est le plus simple et le plus intuitif, mais qu'effectivement y'a pleins d'autres solutions..
-pour les octets ça ne dépend pas de la taille 'visuelle': chaque instruction comme While ou For prend exactement un octet. ( schématiquement, tout ce que tu peut obtenir 'd'un coup' à partir des menu de la calculette prend 1 octet )
Donc:

For(I,1,theta
...
End

7+taille(...) octets

0->I
While(I<theta
1+I->I
...
End

13+taille(...) octets

Bref t'y gagnes à la foi en taille et en lisibilité..


6
ok merci !!
wink

p.s. : c'est bon, la partie de choix des formes est programmée !!!
avatarhttps://tiplanet.org - TI-Planet.org Cofounder & coadmin
https://inspired-lua.org - Lua Programming on the TI-Nspire
7
Qui plus est, l'instruction For( est plus rapide que While( pour la même utilisation. (logique; elle est faite pour ça...)
8
./7> avec Ti tout n'est pas toujours logique pourtant grin
Selon mes banchmarks j'avais noté – à ma grande joie j'aime bien les for – que même un for(I,1,1E99..End était plus rapide qu'un While(1)... End.
Ils ont du programmer ça comme des pieds. (ou s'y prennent bizarement pour tester les conditions booléenes. )
9
lol