Je suis en train de faire un programme en nspire basic qui réalise la division euclidienne step by step.
C'est plus compliqué que ce que je ne pensais, alors j'ai besoin de petits conseils...
voilà ce que j'ai fait pour l'instant :
- Code: Select all
Define LibPub div_euclid(av,b)=
Prgm
:Local az,dimap,av,a,ap,b,result,ach,dimach
:
:
:Disp av," ∣ ",b
:Disp " ∣————"
:
:
:result:=int(((av)/(b)))
:a:=av
:ap:=string(a)
:dimap:=dim(ap)
:dimap:=dimap-2
:dimap:=dim(ap)-dimap
:
:Loop
:If a<b Then
: Exit
:EndIf
:a:=approx(a)
:ach:=string(a)
:dimach:=dim(ach)
:a:=int(av*10^(−dimach+3))
:Disp a
:Disp "- ",b*int(((a)/(b)))
:Disp "——————"
:Disp a-b*int(((a)/(b)))
:If a-b*int(((a)/(b)))<b Then
: Exit
:EndIf
:Disp dimap,"ok"
:az:=mid(ach,dimap,1)
:Disp az,"ok"
:az:=expr(az)
:Disp az,"ok"
:a:=10*(a-b*int(((a)/(b))))+az
:Disp a
:dimap:=dimap+1
:EndLoop
:EndPrgm
Si vous arrivez à le déchiffrer (je ne respecte selon moi aucune syntaxe lisible ), vous pouvez voir que j'ai un petit problème concernant "l'abaissement" du chiffre suivant dans le nombre...
En fait, je veux utiliser mon reste pour ce faire, et faire ici 10*reste+az, az étant une variable qui contiendrait séparément du reste le chiffre "suivant".
cette variable doit bien sûr pouvoir évoluer, puisque le programme doit pouvoir marcher sur plusieurs étapes.
P.S.
J'imagine que tout n'est pas clair dans ma source , mais je règlerai les autres problèmes par moi même, et je propose de rester concentré sur ce problème précis pour ne pas allonger le topic
Merci !