rendered paste body# Nb[i] | Div
# Nbsous[i] \ Result
# Reste[i] \
# Nbsous[i+1] \
# Reste[i+1] \
# reste
#division_posee Nb[i] Div Niveau_de_calcul
Affiche () {
Ntexte=0
for Ntexte in 0 1 2 3 4
do
echo ${texte[Ntexte]}
done
echo ${Result[1]}
}
Formattexte () {
# écriture de la 1ere ligne
texte[0]=echo -e "\033[4m${Nb[1]}\033[0m"
niveau=2
while (( "$niveau" <= "$Ncalcul" ))
do
texte[$niveau]=${Nb_sous[niveau]}
niveau=$(( $niveau + 1 ))
done
}
Nb_chiffres () {
# trouve le nombre de chiffre du nombre à diviser
level=0
a=0
while [[ $a -le ${Nb[Ncalcul]} ]]
do
level=$(($level + 1))
let "a=10**$level"
done
}
Part_a_diviser () {
# Détermine la partie à diviser
#echo level $level Nb ${Nb[$Ncalcul]}
level_act=$level
let "Nb_act[$Ncalcul]=${Nb[Ncalcul]}/(10**$level_act)"
#echo ${Nb_act[Ncalcul]} / $Div
while [[ ${Nb_act[Ncalcul]} -lt $Div ]]
do
level_act=$(($level_act - 1))
let "Nb_act[$Ncalcul]=${Nb[Ncalcul]}/(10**$level_act)"
#echo ${Nb_act[Ncalcul]} / $Div
#echo ${Nb_act[$Ncalcul]}
done
}
calcul () {
Result[$Ncalcul]=$((${Nb_act[Ncalcul]}/$Div))
Nb_sous[$Ncalcul]=$((${Result[Ncalcul]}*$Div))
Reste[$Ncalcul]=$((${Nb_act[Ncalcul]}-${Nb_sous[Ncalcul]}))
result="$result${Result[Ncalcul]}"
let "Nb[$Ncalcul+1]=${Nb[Ncalcul]}+(${Reste[Ncalcul]}-${Nb_act[Ncalcul]})*(10**$level_act) "
}
Nb[1]=$1
Div=$2
Nb_initial=$1
Niveau_calcul=$3
virgule=0
reste=0
result=''
Ncalcul=1
echo -e "level \tNb_act \tresult \treste \tvirgule"
while [[ $virgule -lt $Niveau_calcul ]]
#[[ $Ncalcul -lt $Niveau_calcul ]]
do
echo $Div ${Nb[Ncalcul]}
if [[ $Div -lt ${Nb[Ncalcul]} ]] ; then #si divisable (pas de virgule)
Nb_chiffres
Part_a_diviser
calcul
else
if [[ virgule -eq 0 ]] ; then
result="$result."
#virgule=1
fi
virgule=$(( $virgule + 1 ))
let "(( Nb[$Ncalcul+1]=${Nb[((Ncalcul))]}*10 ))"
fi
echo -e "$Ncalcul\t${Nb_act[$Ncalcul]}\t${Result[$Ncalcul]}\t${Reste[$Ncalcul]}\t$virgule"
Ncalcul=$(( $Ncalcul + 1 ))
done
Ncalcul=$(( $Ncalcul - 1 ))
echo
echo "${Nb[1]} = $result*$Div+${Reste[Ncalcul]}/($Div*10E$virgule)"
#niveau=1
#while (( "$niveau" <= "$Ncalcul" ))
#do
#echo -e "$niveau\t\t${Nb_act[$niveau]}\t\t${Result[$niveau]}\t\t${Reste[$niveau]}"
#niveau=$(( $niveau + 1 ))
#done
# Affichage du calcul
#Formattexte
#Affiche