#######################################################################################################################################
#                                                                                                                                     #
#         V E R I F I C A T I O N   D E S   D E C I M A L E S / C H I F F R E S   U T I L I S E S  :                                  #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirv/.CheckChiffresDecimales.01.$U' :                                                                          #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20240818102346).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  SETParam            _____FDecimalesDejaOBase      $NEXIST

$Z                  if                  ($?CheckChiffresDecimales == $EXIST) then
$Z                                      # Pour activer les editions, il faut au prealable faire :                                     #
$Z                                      #                                                                                             #
$Z                                      #                   setenv    CheckChiffresDecimales        $EXIST                            #
$Z                                      #                                                                                             #
$Z                                      # sous le '$CSH'...                                                                           #

$Z                                      set                 ScRiPtZ=$0

$Z                                      Techo               "SCRIPT=$ScRiPtZ"

$Z                                      set                 DeBuT_FiN=`echo $ScRiPtZ | $SE -e "s/^.*xxxx\.//" -e "s/\""$Z"'$//'`

$Z                                      echo                "Generation......... = {Debut_listG_$DeBuT_FiN,Fin_listG_$DeBuT_FiN}"
$Z                                      saut

$Z                                      set                 NoMbRe_ChIfFrEs_I=50
$Z                                      set                 NoMbRe_ChIfFrEs_O=10

#20240904084431____:$Z                                      set                 NChIfFrEs_I=$_____NIterations                         #

$Z                                      SIZE                $FiLeDeCiMaLeS
$Z                                      if                  ($Fsize == 0) then
$Z                                                          set                 KnL="@"
$Z   set                 NChIfFrEs_I=`$CA $FiLeDeCiMaLeS.1 | $R "$K_NL" "$KnL" | $SE -e 's/\.//' -e "s/\\//g" -e "s/$KnL//g" | $WCc`
$Z                                      # Cas ou '$FiLeDeCiMaLeS.1' est deja dans la bonne base...                                    #
$Z                                                          unset               KnL
$Z                                      else
$Z   set                 NChIfFrEs_I=`$CA $FiLeDeCiMaLeS | $GRE "^[$Alphabet_0_9]" | $xcp/substitue.01$X c01="[;\.]" s01="" | $WCc`
$Z                                      # Cas ou '$FiLeDeCiMaLeS.1' n'est pas dans la bonne base...                                   #
$Z                                      endif

$Z                                      unset               Fsize

$Z                                      set                 NChIfFrEs_O=`$CA $FiLeDeCiMaLeS.9 | $WCl`

$Z                                      echo                "_____FDecimales.... = $_____FDecimales"" (# $NChIfFrEs_I)"
$Z                                      echo                "FiLeDeCiMaLeS.1.... = $FiLeDeCiMaLeS.1"
$Z                                      echo                "FiLeDeCiMaLeS.9.... = $FiLeDeCiMaLeS.9"" (# $NChIfFrEs_O)"
$Z                                      saut

$Z                                      FilSTmpB            FCoNvErTiSsEuR

$Z                                      if                  ($_____FDecimalesDejaOBase == $NEXIST) then
#20240822101655____:$Z                                                          $CA                 $FiLeDeCiMaLeS           |     \  #
#20240822101655____:$Z                                                          $xcp/substitue.01$X c01="\\\n"     s01=""          \  #
#20240822101655____:$Z                                                                              c02=";"        s02=""    |     \  #
#20240822101655____:$Z                                                $xcg/head.01$X      nombre_caracteres=$NoMbRe_ChIfFrEs_I     \  #
#20240822101655____:$Z                                                                                        >> $FCoNvErTiSsEuR      #

$Z                                                          $CA                 $FiLeDeCiMaLeS                                    |     \
$Z                                                          $xcp/substitue.01$X c01="\\\n"          s01=""                              \
$Z                                                                              c02=";"             s02=""                        |     \
$Z                                                          $xcg/head.01$X      utiliser_caracteres=VRAI                                \
$Z                                                                              nombre_caracteres=$NoMbRe_ChIfFrEs_I                    \
$Z                                                                                                            >> $FCoNvErTiSsEuR
$Z                                      else
$Z                                                          echo                "ibase = 6\n""obase = 6\n""nombre = "                   \
$Z                                                                                                            >  $FCoNvErTiSsEuR.1
#20240822101655____:$Z                                                          $CA                 $_____FDecimales         |     \  #
#20240822101655____:$Z                                                          $xcp/substitue.01$X c01="\n"            s01=""     \  #
#20240822101655____:$Z                                                                                        >  $FCoNvErTiSsEuR.2    #
#20240822101655____:$Z                                                $CA       $FCoNvErTiSsEuR.1 $FCoNvErTiSsEuR.2          |     \  #
#20240822101655____:$Z                                                $xcp/substitue.01$X c01="\(nombre *= *\)\n" s01="\1"   |     \  #
#20240822101655____:$Z                                                $xcg/head.01$X      nombre_caracteres=$NoMbRe_ChIfFrEs_I     \  #
#20240822101655____:$Z                                                                                        >> $FCoNvErTiSsEuR      #

$Z                                                          $CA                 $_____FDecimales                                  |     \
$Z                                                          $xcp/substitue.01$X c01="\n"            s01=""                              \
$Z                                                                                                            >  $FCoNvErTiSsEuR.2
$Z                                                          $CA                 $FCoNvErTiSsEuR.1 $FCoNvErTiSsEuR.2               |     \
$Z                                                          $xcp/substitue.01$X c01="\(nombre *= *\)\n" s01="\1"                  |     \
$Z                                                          $xcg/head.01$X      utiliser_caracteres=VRAI                                \
$Z                                                                              nombre_caracteres=$NoMbRe_ChIfFrEs_I                    \
$Z                                                                                                            >> $FCoNvErTiSsEuR
$Z                                      endif

$Z                                      set       BaSe_I=`$CA $FCoNvErTiSsEuR | $GRE "^ibase" | $SE -e "s/^ibase *= *//"`
$Z                                      set       BaSe_O=`$CA $FCoNvErTiSsEuR | $GRE "^obase" | $SE -e "s/^obase *= *//"`
$Z                                      set       NoMbRe_I=`$CA $FCoNvErTiSsEuR | $GRE "^nombre" | $SE -e "s/^nombre *= *//"`
$Z                                      # Le fichier '$FCoNvErTiSsEuR' contient le nombre a convertir par '$BC'...                    #
$Z                                      set       PoInT_Ou_ViRgUlE=`echo "$NoMbRe_I" | $GRE "[.,]"`

$Z                                      set       NoMbRe_O1=`$CA  $FiLeDeCiMaLeS.1 | $xcg/head.01$X uc=VRAI nc=$NoMbRe_ChIfFrEs_O`
$Z                                      # Le fichier '$FiLeDeCiMaLeS.1' contient le resultat complet de la conversion par '$BC'...    #
$Z                                      set       NoMbRe_O1=`echo "$NoMbRe_O1" | $SE -e "s/ //g"`

$Z                                      set                 NoMbRe_O9=`$HEA -$NoMbRe_ChIfFrEs_O $FiLeDeCiMaLeS.9`
$Z                                      # Le fichier '$FiLeDeCiMaLeS.9' contient le resultat de la conversion par '$BC'               #
$Z                                      # eventuellement prive de sa partie entiere et du point decimal...                            #
$Z                                      set                 NoMbRe_O9=`echo "$NoMbRe_O9" | $SE -e "s/ //g"`

$Z                                      set                 NChIfFrEs_I=`echo "$NChIfFrEs_I" | $SE -e 's/\(.\)\(......\)$/\1.\2/'`
$Z                                      set                 NChIfFrEs_O=`echo "$NChIfFrEs_O" | $SE -e 's/\(.\)\(......\)$/\1.\2/'`

$Z                                      set                 NChIfFrEs_I=`echo "$NChIfFrEs_I" | $SE -e 's/\(.\)\(...\)$/\1.\2/'`
$Z                                      set                 NChIfFrEs_O=`echo "$NChIfFrEs_O" | $SE -e 's/\(.\)\(...\)$/\1.\2/'`

$Z                                      set                 MeSsAgE_C="Conversion du nombre"

$Z                                      set                 MeSsAgE_I="$NoMbRe_I... de $NChIfFrEs_I chiffres -base $BaSe_I-"

$Z                                      if                  ("$NoMbRe_O1" == "$NoMbRe_O9") then
$Z                                 set       MeSsAgE_O="en $NoMbRe_O1... de $NChIfFrEs_O chiffres -base $BaSe_O-"
$Z                                      else
$Z                                 set       MeSsAgE_O="en $NoMbRe_O1..., soit $NoMbRe_O9... de $NChIfFrEs_O chiffres -base $BaSe_O-"
$Z                                      endif

$Z                                      if                  ($_____SupPartieEntiere == $EXIST) then
$Z                                                          set                 M_PE_1="sans"
$Z                                      else
$Z                                                          set                 M_PE_1="avec"
$Z                                      endif

$Z                                      set                 M_PE_2="la partie entiere"

$Z                                      if                  ("$PoInT_Ou_ViRgUlE" == "$K_VIDE") then
$Z                                                          echo      "$MeSsAgE_C entier $MeSsAgE_I $MeSsAgE_O $M_PE_1 $M_PE_2."
$Z                                      else
$Z                                                          echo      "$MeSsAgE_C decimal $MeSsAgE_I $MeSsAgE_O $M_PE_1 $M_PE_2."
$Z                                      endif

$Z                                      FilSTmpE            FCoNvErTiSsEuR

$Z                                      saut

$Z                                      set                 NoM_ImAgeS=`echo $DeBuT_FiN | $R "_" "."`

$Z                                      PushdC              $xiMi

$Z                                      ls                                                                                        |     \
$Z                                      $GRE                "^$NoM_ImAgeS"                                                        |     \
$Z                                      $SE                 -e "s/\""$D"'$//'                                                     |     \
$Z                                      $SE                 -e "s/^/$Prompt""Pcreation /"

$Z                                      PopdC

$Z                                      saut
$Z                                      exit
$Z                                      # Et on arrete la...                                                                          #
$Z                                      #                                                                                             #
$Z                                      # On rappelle le 20240904084431 que tous les fichiers '$FiLeDeCiMaLeS*' sont conserves        #
$Z                                      # puisque le :                                                                                #
$Z                                      #                                                                                             #
$Z                                      #                   FilSTmpE  FiLeDeCiMaLeS                                                   #
$Z                                      #                                                                                             #
$Z                                      # n'est finalement pas execute...                                                             #
$Z                  else
$Z                  endif



Copyright © Jean-François COLONNA, 2024-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2024-2024.