Maths
Posted: Wed Jul 03, 2013 2:52 pm
Pourquoi PB est-il nul en math ?
Translation with Google Translation: Why PB is null in math?
Translation with Google Translation: Why PB is null in math?
Code: Select all
Global Nombre_Initial.q, NombreTest.q, NombreTest2.q
Global NombreChiffres, Reducteur, Valeur_Retenue, i
Global.s Code
Global Dim Valeur.q(9)
Global NewMap Retenue()
Declare Decomposer(Nombre.q)
Declare Reduire(Nombre.q, Retenue)
Procedure Decomposer(Nombre.q)
Nombre_Initial = Nombre.q
;Code.s = ""
NombreTest = Nombre_Initial
Retenue = 1
NombreChiffres = Len(Str(NombreTest))+1
Reducteur = Val(ReplaceString(Space(NombreChiffres)," ",Str(Retenue)))
code + "(" + Left(Str(NombreChiffres), 2) + "."
Debug "Nombre = " + Str(NombreTest)
Debug "Réducteur = " + Str(Reducteur)
Debug "Longueur = " + Str(NombreChiffres)
Debug Str(Reducteur) + " - " + Str(NombreTest) + " = " +Str(Reducteur-NombreTest)
NombreTest2 = NombreTest
Valeur(0) = NombreTest
For i = 9 To 1 Step - 1
Reducteur = Val(ReplaceString(Space(NombreChiffres-1)," ",Str(i)))
If Reducteur > NombreTest2
NombreTest2 = Reducteur - NombreTest2
Debug " " + Str(Reducteur) + " - " + Str(NombreTest) + " = " + Str(NombreTest2)
Else
NombreTest2 - Reducteur
Debug " " + Str(NombreTest) + " - " + Str(Reducteur) + " = " + Str(NombreTest2)
EndIf
Valeur(i) = NombreTest2
Retenue(Str(i)) = Valeur(i)
Next i
SortArray(Valeur(), #PB_Sort_Descending)
Debug "****************RETENUE****************"
Debug "Valeur retenue " + Str(Valeur(9))
For i = 0 To 9
If Retenue(Str(i)) = Valeur(9)
Retenue = i
Debug "Retenue = " + Str(Retenue)
EndIf
Next
Debug ""
Debug "Nombre initial = " + Str(Nombre_Initial)
reduire(Valeur(9), Retenue)
EndProcedure
Procedure reduire(Nombre.q, Retenue)
NombreTest = Nombre
Valeur_Retenue = Retenue
Debug ""
Debug "********Réduction********"
While NombreTest > 0
Debug "Nombre = " + Str(NombreTest)
NombreChiffres = Len(Str(NombreTest)) - 1
reducteur = Val(ReplaceString(Space(NombreChiffres+1)," ",Str(Valeur_Retenue)))
code + Str(Retenue) + ") "
Debug "Réducteur = " + Str(Reducteur)
;Debug "Longueur = " + Str(NombreChiffres)
Debug "Code = " + code
NombreTest - reducteur
Debug "Reste = " + Str(NombreTest)
Debug ""
Debug "********Fin de réduction********"
If NombreTest < 0
Debug "Reste " + Str(NombreTest)
Else
Decomposer(NombreTest)
EndIf
Wend
EndProcedure
Decomposer(4867201436872539)
;CallDebugger