Page 1 of 1

Probleme algorithme d'euclide sur ti89

Unread postPosted: 20 Jun 2015, 14:02
by yayadu132
Bonjour j'ai rentré le programme de l'algorithme d'euclide qu'on a vu en cours cette année mais il ne marche pas sur ma ti89 alors qu'il marche sur ma ti83+, voila mon programme :
Code: Select all
algeucl()
Prgm
Prompt a,b
While b ≠ 0
iPart(a/b) sto q
a-bq sto  r
b sto a
r sto b
EndWhile
Disp a
EndPrgm

Voila et en fait une fois que j'ai rentré les valeurs de a et b un message d'erreur s'affiche en me disant que "le test n'a pas donné de résultat VRAI ou FAUX"
Merci beaucoup je me débrouille en programmation sur la ti83+ mais j'avais pas essayé sur ti89 et je comprend pas pourquoi ca ne marche pas

Re: Probleme algorithme d'euclide sur ti89

Unread postPosted: 20 Jun 2015, 14:17
by Hamza.S
explique le rôle de la variable q je ne te vois pas l'utiliser après

Re: Probleme algorithme d'euclide sur ti89

Unread postPosted: 20 Jun 2015, 14:20
by yayadu132
Ca correspond au quotient de la division euclidienne il me semble et je lui assigne une valeur à la ligne qui comme par iPart mais je l'utilise à la ligne d'après pour calculer le reste non ?

Re: Probleme algorithme d'euclide sur ti89

Unread postPosted: 20 Jun 2015, 14:26
by Hamza.S
essaies avec celui là
Code: Select all
(a,b)
Prgm
Local r,q
While b≠0
iPart(a/b)→q
a-b*q→r
b→a
r→b
EndWhile
Disp a
EndPrgm

Re: Probleme algorithme d'euclide sur ti89

Unread postPosted: 20 Jun 2015, 14:38
by yayadu132
Merci ça marche ! D'où venait le problème ?

Re: Probleme algorithme d'euclide sur ti89

Unread postPosted: 20 Jun 2015, 15:36
by Hamza.S
le problème venait de la ligne a-b*q→r tu n'avais pas mit le signe multiplication or sur les 68k et Nspire si tu écris bq il considère que c'est une seul variable alors que sur les z80 bq c'est 2 variable qui sont multiplié

Re: Probleme algorithme d'euclide sur ti89

Unread postPosted: 20 Jun 2015, 19:48
by Hamza.S
amélioration :
il y a une fonction qui peut remplacer iPart(
intDiv( te donne directement ce que iPart( tire de ta division
Code: Select all
(a,b)
Prgm
Local r,q
ClrIO © pour supprimer les traces du dernier programme exécuté si elle est en français c'est EffES
While b≠0
intDiv(a,b)→q © iPart(a/b)→q  à la place de iPart( tu peux utiliser intDiv(
a-b*q→r
b→a
r→b
EndWhile
Disp a
EndPrgm