Page 1 of 1

Rendre un programme plus "beau/propre"

Unread postPosted: 20 Jun 2015, 18:29
by Amumu
Bonjour,

J'ai crée mon premier programme en TI basic et j'aimerai le rendre plus beau et faire une code plus propre, mais je rame parce que je ne trouve pas de réponses à mes questions, et je ne comprend pas encore tout du langage.

Vous n'êtes pas obligé de regarder mon programme pour répondre aux questions, mais ça peut vous aider à mieux comprendre mes questions. C'est un petit programme (pas fini) sur le modèle de Wilson.

Code: Select all
Define wilson(d,ca,p,tp)=
Prgm
:Request "Cout de passation et possession actuel demandé ? (0=Oui)",r
:If r=0 Then
:Request "Nombres de commandes  ou quantité commandé ? (0=Quantité)",ra
:If ra=0 Then
:Request "Quantité par commandes",qac
:((d)/(qac))→nac
:Else
:Request "Nombres de commandes",nac
:((d)/(nac))→qac
:EndIf
:ca*nac→clac
:((qac)/(2))*p*tp→cpac
:clac+cpac→ctac
:Disp ""
:Disp "Quantités commandés actuel",qac
:Disp "Nombres de commandes actuel",nac
:Disp "Cout de passation actuel",clac
:Disp "Cout de possession actuel",cpac
:Disp "Cout total actuel",ctac
:EndIf
:√(((2*ca*d)/(p*tp)))→qop
:((d)/(qop))→nop
:ca*((d)/(qop))→clop
:((qop)/(2))*p*tp→cpop
:clop+cpop→ctop
:Disp ""
:Disp "Quantités commandés optimales",qop
:Disp "Nombres de commandes optimales",nop
:Disp "Cout de passation optimale",clop
:Disp "Cout de possession optimale",cpop
:Disp "Cout total optimale",ctop
:EndPrgm


Exemple de ce que ça donne :

wilson(1000,50,20,0.08)
Cout de passation et possession actuel demandé ? (0=Oui) 0
Nombres de commandes ou quantité commandé ? (0=Quantité) 0
Quantité par commandes 100

Quantités commandés actuel 100
Nombres de commandes actuel 10
Cout de passation actuel 500
Cout de possession actuel 80.
Cout total actuel 580.

Quantités commandés optimales 250.
Nombres de commandes optimales 4.
Cout de passation optimale 200.
Cout de possession optimale 200.
Cout total optimale 400.


Voici mes questions :

- Peut on ne pas afficher Request ? je voudrais seulement l'avoir en fenêtre et non en réponse

- Lorsque ma fenêtre s'affiche pour demander de saisir une variable, le texte est coupé, tout ne s'affiche pas, il y a t'il un moyen de remédier à cela ? (j'ai essayé texte, mais ça met une étape en plus inutile)

- Il y a t'il un moyen plus propre pour passer une ligne que : Disp " "

Ensuite j'aimerai afficher les noms des variables lorsque j'appelle le programme wilson, je m'explique :
Au lieu de m'afficher wilson(), cela m'afficherai wilson(d,ca,p,tp)
Pour savoir dans quel ordre je dois rentrer mes valeurs, sans devoir jeter un œil sur le code.

Voilà, je tiens à m’excuser si mes questions sont pas clairs ou si elles ont déjà été posé (je n'ai pas trouvé, après c'est pas facile à formuler). Au pire sa centralise des questions dans le même thème.

Merci d'avance pour vos réponses !

Re: Rendre un programme plus "beau/propre"

Unread postPosted: 20 Jun 2015, 18:57
by Adriweb
Amumu wrote:Peut on ne pas afficher Request ? je voudrais seulement l'avoir en fenêtre et non en réponse

Oui: le manuel (reference guide) utilisateur indique : Request promptString, var[, DispFlag [, statusVar]]
Si tu mets donc 0 pour DispFlag, ça ne sera pas affiché par la suite :)

Amumu wrote:Lorsque ma fenêtre s'affiche pour demander de saisir une variable, le texte est coupé, tout ne s'affiche pas, il y a t'il un moyen de remédier à cela ? (j'ai essayé texte, mais ça met une étape en plus inutile)

Je crois pas que le multi-ligne fonctionne... tente ? Si non, il va falloir que tu fasses des petits Text successifs.

Amumu wrote:Il y a t'il un moyen plus propre pour passer une ligne que : Disp " "

Plusieurs Disp passent à la ligne tout seuls, étrange que tu aies besoin de faire ceci.

Amumu wrote:Ensuite j'aimerai afficher les noms des variables lorsque j'appelle le programme wilson, je m'explique :
Au lieu de m'afficher wilson(), cela m'afficherai wilson(d,ca,p,tp)
Pour savoir dans quel ordre je dois rentrer mes valeurs, sans devoir jeter un œil sur le code.

Une sorte d'autocompletion de ce genre, où il n'y aurait plus qu'a passer de champs en champs avec des
tab
...
Image
... ce serait fort utile, oui - mais pour le moment, ni TI ni les developpeurs Ndless n'ont mis la main à la pâte pour faire ceci (et côté Ndless, c'est pas évident du tout, sans doc...)

Amumu wrote:Voilà, je tiens à m’excuser si mes questions sont pas clairs ou si elles ont déjà été posé (je n'ai pas trouvé, après c'est pas facile à formuler). Au pire sa centralise des questions dans le même thème.

No problem :)

Re: Rendre un programme plus "beau/propre"

Unread postPosted: 20 Jun 2015, 21:08
by Amumu
Adriweb wrote:Oui: le manuel (reference guide) utilisateur indique : Request promptString, var[, DispFlag [, statusVar]]
Si tu mets donc 0 pour DispFlag, ça ne sera pas affiché par la suite :)


Je viens de me rendre compte que je n'ai pas précisé que j'utilisai une nspire cx cas... :#roll#:

J'ai trouvé sur le guide et je n'ai pas trouvé exactement ça, mais c'est dans le même esprit : Request,"texte",variable,0
L'emplacement de 0 est dans IndicAff, il permet d'afficher ou non dans l'historique : 0 pour ne pas l'afficher, 1 ou non mentionné pour l'afficher. Je l'ai trouvé pour Requeststr mais cela marche aussi pour Request.

Premier problème réglé, merci. :p

Adriwed wrote:Je crois pas que le multi-ligne fonctionne... tente ? Si non, il va falloir que tu fasses des petits Text successifs.


J'ai essayé apparemment non, je comprend pas pourtant quand un message d'erreur est affiché sur le Scratchpad il y a plusieurs phrases de marqué, la calculette est donc capable d'afficher une fenêtre avec un minimum de texte, mais il veut m'afficher que 3 mots par fenêtres pour mon programme, c'est pas juste.

Du coup j'ai coupé les phrases en deux, la première partie dans texte, puis la deuxième partie dans Request. C'est dommage sa rajoute une étape en plus, mais c'est la seule solution pour voir la phrase en entier.

Adriweb wrote:Plusieurs Disp passent à la ligne tout seuls, étrange que tu aies besoin de faire ceci.


Je crois que tu as mal compris je veux dire passer une ligne, pas revenir à la ligne. En tout cas sur le référence guide il y a un exemple de code avec marqué
justement : Disp " " Page 184. C'est peut être comme ça qu'on fait, même si c'est un peu moche. C'est pas trop grave de toute façon :D

Adriweb wrote:Une sorte d'autocompletion de ce genre, où il n'y aurait plus qu'a passer de champs en champs avec des tab ce serait fort utile, oui - mais pour le moment, ni TI ni les developpeurs Ndless n'ont mis la main à la pâte pour faire ceci (et côté Ndless, c'est pas évident du tout, sans doc...)


Oui, c'est ce que je voulais dire, j'ai regardé sur la ti89 de mon frère, il y avait au moins un affichage en dessous qui montrait dans quel ordre était mise les variables. Dommage en effet.

Merci en tout cas. :)

Re: Rendre un programme plus "beau/propre"

Unread postPosted: 22 Jun 2015, 18:50
by Loulou 54
Oui intéressant l'idée de l'auto-complétion. :)
Pour le passage à la ligne, tu peux utiliser le caractère de retour à la ligne. Tu l'obtiens avec le clavier par :nsre: dans une chaîne de caractère ou en concaténant char(10), si tu ne veut pas avoir le retour à la ligne dans le code du programme. :)

EDIT: notamment pour le problème de place (j'ai cru comprendre que la fin d'une ligne était coupée c'est ça ?) tu peux aussi utiliser le retour à la ligne pour résoudre ça sans avoir à insérer une autre boîte de dialogue avant.
Exemple :
Request "Salut cette phrase est bien trop longue pour tenir sur une ligne.",r
devient :
Request "Salut cette phrase est bien trop longue"&char(10)&"pour tenir sur une ligne.",r
ou :
Request "Salut cette phrase est bien trop longue
pour tenir sur une ligne.",r
en utilisant :nsre:

Re: Rendre un programme plus "beau/propre"

Unread postPosted: 22 Jun 2015, 18:57
by Loulou 54
Bon en fait je viens de tester, ça ne marche pas sur les "Request".... :'( Désolé !
Par contre tu peux retenir l'astuce pour les boîtes "Text", là ça fonctionne.