Autorisation : Membre
Nb de messages : 4
Inscrit le : Lun 02 Déc 2013, 22:55
Posté le : Mar 03 Déc 2013, 18:51
Bonjour à tous,
J'ai acheté ma première TI 82 hier, je n'ai pas perdu de temps pour tester le coté programmation.
Je vous présent mon premier programme, il permet de calculer les différentes valeurs physique d'un moteur asynchrone triphasé.
Soit, la puissance, la tension l'intensité ou le coefficient de puissance.
Code
*Les lignes commençants par // ne sont pas à copiées.
** sqrt = signe de racine carré, phi = lettre phi.
// j'initialise mes variables.
0->I:0->U:0->P:0->phi:
Prompt I,U,P,phi
//Je stock les valeurs dans des variables pour calculer.
I->A:U->B:P->C:phi->D
//je calcul et stock la raciné carré de 3.
sqrt(3)->E
//Je demande quelle valeur on veut calculer
Menu("","CALC P",1,"CALC U",2,"CALC I",3,"CALC phi",4
//Pour le choix 1, Calcul de la puissance.
Lbl 1
(B*A*D*E)->C
//Pour le choix 2, calcul de la tension.
Lbl 2
((C/(A*D*E)->B
//Pour le choix 3, calcul de l'intensité
Lbl 3
((C/(B*D*E)->A
//Pour le choix 4, calcul du coeff de puissance.
Lbl 4
((C/(A*B*E)->D
//J'affiche les résultats sous forme de liste
Output(1,1,A
Output(2,1,B
Output(3,1,C
Output(4,1,D
Stop
Seulement quelques choses m'embêtent,
Par exemple je ne peut pas utilisé la fonction racine carré directement dans ma ligne ou je calcul sinon elle me sort le résultats sans en avoir prit compte, je stock sa valeur dans une variable avant du coup. Est ce normal ?
Secondement lorsque je fait:
Code
Output(1,1,A
Par exemple, j'aimerais que ça affiche "U = ..." et pas seulement la valeur. C'est possible ?
J'espère ne pas avoir trop fait de fautes ?
Merci pour la lecture,
Flo.
EDIT : J'ai vu que vous aviez un nouveau site + forum, je dois faire une copie de ce topic dessus ?
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 03 Déc 2013, 19:35
Il s'agit ici d'étudier des réseaux et récepteurs triphasés, mais pas forcément des machines asynchrones dont aucune formule réservée n'apparaît ici.
Tu n'as vraiment pas besoin d'utiliser des variable intermédiaires.
Tu peux utiliser Input pour afficher PHI mais stocker ailleurs.
Input "PHI:",D
Tu n'as pas besoin d'initialiser des variables que tu affectes par saisie ou calcul avant leur usage.
Je ne comprend pas ton problème à propos de sqrt() et E.
Il est possible que tu ais mal saisis les calculs.
C/(A*D*E->B
C/(A*D*sqrt(3->B EDIT : Selon ton modèle, parenthèse et priorité de calcul à vérifier.
Superposes tout ce que tu veux avec plusieurs Output. La seule difficulté pourrait être de placer de façon variable mais ici tu es fixe.
Code
Output(1,1,"U=
Output(1,3,A
Non tu n'as pas obligation de poster dans le nouveau forum mais ce serait préférable. EDIT: je veux dire de poster là-bas au prochain sujet
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 03 Déc 2013, 19:51
Bonjour,
On peut continuer sur ce topic pas besoin de créer un doublon là bas (mais c'est pas plus mal si tu postes là bas la prochaine fois, on essaye de centrer un max sur le nouveau site)
Commenter ses codes c'est bien, ça permet aux autres de comprendre plus facilement ce qu'on fait (par exemple que tu calcules l'intensité etc), mais il ne faut pas non plus abuser des commentaires (dire que tu initialises les variables n'est pas très utile par e. Petite remarque sans trop d'importance.
Ton code a un défaut: quand on demande à calculer P, il va tout calculer, mais ne calculer que phi quand on demande phi, I et phi si on demande I, et enfin I, U et phi si on demande juste U.
Il faudrait, après le calcul, se rendre directement à l'affichage.
Stop à la fin du prgm est inutile.
Citer
Par exemple je ne peut pas utilisé la fonction racine carré directement dans ma ligne ou je calcul sinon elle me sort le résultats sans en avoir prit compte, je stock sa valeur dans une variable avant du coup. Est ce normal ?
Non. Tu dois certainement oublier de fermer la parenthèse de la racine, ou un autre truc du genre.
Sauf erreur, phi n'est pas sur une 82 théta oui par contre, tu dois peut être confondre?
Pour afficher "U=" suivi de la valeur de A, il suffit de faire:
Output(1,1,"U=
Output(1,3,A
Et aussi une dernière chose: tu demandes toutes les valeurs (I, U, P et phi), y compris celle à calculer, c'est déroutant ^^
En plus tu les initialises avant (ce qui est inutile puisque la valeur que tu leur aura affecté (0 ici) sera écrasée par la saisie de l'utilisateur...)
Voici ce que j'aurais fait (je laisse phi comme tu l'avais mis):
Code
//On demande quelle valeur calculer
Menu("","CALC P",1,"CALC U",2,"CALC I",3,"CALC phi",4
//Calcul de la puissance.
Lbl 1
Prompt I,U,phi //On demande les valeurs
UIphisqrt(3->C //La multiplication est inplicite quand on ne travaille pas sur 2 nombre (on note 34*23 mais 34M (au lieu de 34*M), ABCD au lieu de A*B*C*D)
Goto A //On va à l'affichage
//Calcul de la tension.
Lbl 2
Prompt I,P,phi
P/(Iphisqrt(3->B
Goto A
//Calcul de l'intensité
Lbl 3
Prompt U,P,phi
P/(Uphisqrt(3->B
Goto A
//Calcul du coeff de puissance.
Lbl 4
Prompt I,U,P
P/(IUsqrt(3->B
//Résultats (on affiche tout)
Lbl A //Edit: rajouté après le rappel de Linka plus bas
Output(1,1,"I=
Output(2,1,"U=
Output(3,1,"P=
Output(4,1,"phi= //Saisis la lettre que tu appelle phi directement
Output(1,3,I
Output(2,3,U
Output(3,3,P
Output(4,3,phi
Autorisation : Membre
Nb de messages : 4
Inscrit le : Lun 02 Déc 2013, 22:55
Posté le : Mar 03 Déc 2013, 20:19
Salut Linkakro et M@thieu41,
Tout d'abord, merci pour vos remarques j'en prend note
Pour ma défense (si ça compte ^^) je l'ai écrit aujourd'hui pendant mes heures de cours, c'est vrai que j'aurais pu penser un peu plus logique, comme le coup du menu avant de commencer à demander les valeurs...
Je prend note pour les commentaires également je vais alléger merci
Pour cette histoire de racine carrée, effectivement je ne devais pas être attentif mais les résultats sont bons quand j'utilise la fonction dans le programme... Inattention de ma part désolé.
Pareil pour les variables intermédiaires, je pensais que ça fonctionnerais pas, en réalité je me suis inspiré d'un autre programme pour des torseurs et le codeur s'en était servi. Je vais faire le ménage, en plus ça fera de la place dans la mémoire.
Merci pour ton bout de code M@thieu, c'est vachement plus clair ! Je vais m'en servir je te dirais si il fonctionne (mais je te fais confiance ^^)
Et bien vu à vous deux pour l'affichage, j'ai pas du tout pensé à faire deux instructions pour afficher le texte et l'instruction...
Je posterais mon prochain topic sur l'autre site alors, et du coup peut être ce programme une fois terminé ?
EDIT: Bien vu c'est théta... J'ai toujours du mal avec cet alphabet
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 03 Déc 2013, 22:11
Citer
Pareil pour les variables intermédiaires, je pensais que ça fonctionnerais pas, en réalité je me suis inspiré d'un autre programme pour des torseurs et le codeur s'en était servi. Je vais faire le ménage, en plus ça fera de la place dans la mémoire.
Si tu postes un double de quoi que ce soit, pense quand même à mentionner un lien pour retrouver la source.
(voire même d'ici vers là bas mais c'est beaucoup moins attendu)
m@thieu41 tu as oublié le Lbl A !
Plaçons avant les affichages.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 03 Déc 2013, 22:35
Oups désolé en fait le Lbl A manquait déjà dans le post de flog73. edit: ha non j'avais raison la première fois, je mélange tout, merci m@thieu41 pour le rappel ensuite
Si tu (flog73) trouve le programme torseur en question je ne suis pas contre mais je ne te presse pas à le faire, fais comme comme tu as envie.
Je me plongeais surtout dans la nostalgie quand j'ai posé la question. Et puis un tout petit peu de pub aussi.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 04 Déc 2013, 14:28
Juste concernant le Lbl A tu (linka) dis qu'il n'était déjà pas présent sur le prgm de flog73 mais puisqu'il n'y avait pas de Goto A, bah ça ne gênait pas. C'est quand j'ai rajouté les Goto A que j'ai oublié le Lbl A.