Salut,
tout d'abord joyeux noël à tous!
Je viens de commencer a apprendre a programmer ma Ti-85, je crois que le language c'est le Basic-TI, et j'ai un probleme avec le minuscule programme que j'ais fait. Voila deja son principe: donner sous forme de fraction un nombre N. Je sais que cette fonction existe deja mais elle ne marche pas quand le numérateur est une racine, genre racine(2)/2.
Etant donner que je suis en terminale S on tombe souvent sur des nombres comme ca. Mais voila mon programme fonctionne parfaitement, sauf que pour certains nombres comme racine(7)/2, le programme ne me répond pas racine(7)/2 mais racine(28)/4, je sais ca équivaut au meme, mais la calculatrice met plus de temps a trouver et des fois pour des grandes valeurs ca devient vrément embetant. Voici mon programme (il est tout bébéte):
Si vous pouviez me dire pourquoi mon programme bug, car pour la plupart des autre valeurs il me donne bien le resultat attendu, alors que quand je rentre N=racine(8)/9 il met une heure a répondre: racine(2888)/171. En plus, quand N=cos(pi/4) il me donne racine(50)/10 alors que pour N=racine(2)/2, il me donne bien racine(2)/2.
(ca ne viens pas de ma calculette car sur l'emulateur c'est pareil)
Je sais très bien que mon programme est vrément pas fini, mais j'attend d'abord de résoudre ce problème avant de le pofiné.
Merci bien a tous.
Message édité par wasalto le 25-12-2006 à 18:10:56
Je vois que les TI85 ne sont pas mortes (avec ce bon vieux ZShell)
C'est peut-être un problème de précision. Essaie de remplacer le while comme ceci:
:While fpart(1/D) < epsilon
où epsilon est une variable valant par exemple 0.000000001 (à régler selon les résultats).
Sinon, l'algo me parait bon.
Si ce n'est pas la précision, affiche tous les résultats intermédiaires pour voir où est le problème
Eh oui, ca existe encore les TI-85. Enfin bon je suis pas spécialement content de ne pas avoir de 89, mais on fait avec ce qu'on a...
Pour en revenir a mon problème, j'ai essayé de faire comme tu a dis, ie remplacé !=0 par <epsilon, mais ca ne marche carrément pas, meme pour epsilon=1E-100, le résultat qu'il me donne est complétement faux.
Merci quand meme pout ton aide, si quelqu'un a une autre solution...
Excuse moi pour ma réponse (très) tardive.
Alors j'ai affiché les résultas intermédiaires pour 1/D, et bizzarement pour racine(7)/2, comme pour racine(28)/4, mon programme trouve bien 2 pour 1/D, mais il ne s'arréte pas et continu de chercher un autre entier (4). Vrément très bizzard. ..
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.