Besoin d'aide ti 86

Fermé
buty - 14 juin 2011 à 23:17
 buty - 16 juin 2011 à 22:06
Bonjour,
Je suis une maman programmeur.
Mafille possède une ti 86 et a besoin de faire n programme pour la suite de Syracuse; cela ne me paraît pas compliqué mais je ne connais pas la ti 86 et il semble qu'elle fonctionne à l'envers, elleexécute le then lorsque la condition est fausse et le else lorsqu'elle est vrai !!!!
Voici le programme :
input u
while u>1
if int(u/2)=u/2 (nombre pair)
then
u/2 ->u
else (nombre impair)
3*u+1->u
end
pause
disp u
end

j'entre le nombre 5, la calculette affiche 2.5,1.25,.625
j'entre le nombre 6, affichage : 19,9.5,4.75,2.375,1.1875,.59375
Donc elle divise le nombre impair qu'elle devrait multiplier et multplie le nombre pair !
Je ne comprends pas, merci de votre aide

Véronique



4 réponses

ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
Modifié par ccm81 le 15/06/2011 à 08:10
bonjour

je crois que le coupable est là
if int(u/2)=u/2
ce "=" est un test d"égalité et la TI85-86 (vieille machine) utilise pour ce test "==" du menu test
et avec 5 en entrée ça donne bien 16,8,4,2,1
bonne suite
0
Merci mais comment faudrait-il procéder pour éviter ce buG ,

Véronique
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
Modifié par ccm81 le 16/06/2011 à 14:34
re

mais il n'y a pas de bug chez la TI 86, c'est la syntaxe du langage TI (85-86)
tu écris ceci
if int(u/2)==u/2
où == provient du menu Test (touche 2 de la machine puis F1, là où tu as pris >)

RQ1. tu peux aussi mettre deux "=" de la touche STO, c'est un peu moins logique puisque ce "=" est bleu et s'obtient avec la touche ALPHA, comme un texte donc, mais ça fonctionne
RQ2. sur les générations de machines qui suivent, TI a abandonné ce "=" au clavier qui a posé, et qui apparemment pose encore, pas mal de confusions

bonne suite
0
OK MERCI BEAUCOUP? LE PROGRAMME FONCTIONNE CORRECTEMENT.
c'est assez déconcertant pour un (une) programmeur d'écrire un "=" qui ne veut rien dire puisque non compris par la machine, je n'aurai jamais trouvé seule !!!

Vive internet et merci à ceux qui se donnent la peine de répondre.

Véronique
0