Calcul factorielle en dash

Ce script calcul le factorielle du chiffre passé en paramètre

#!/bin/dash

#Test si la valeur est égale à 0 si oui on affiche 1 puis on sort
if [ "$1" -eq 0 ] ;
 then
      echo 1
      exit 0
fi

#On crée un compteur 
i=1

#on crée une valeur mul qui initialise la valeur qui précède

$1mul=`expr "$1" - 1 `

#Boucle tant que i < à la valeur qui est dans $1

while [ "$i" -lt "$1" ] ;
 do

#le premier if calcul la premiere valeur      
if [ "$i" -eq 1 ] ;
 then
              valeur=`expr "$mul" '*' "$1" `

#Ceci aura pour but de pas à la valeur inférieure à mul donc si $1 etait = 5 mul vaudra
#3 ici              
mul=`expr "$mul" - 1 `
      else
              valeur=`expr "$valeur" '*' "$mul" `
              mul=`expr "$mul" - 1 `
      fi
#On incrémente notre compteur      
i=`expr "$i" + 1 `doneecho "$valeur"

Une seconde méthode il existe plusieurs façon d’écrire un programme donc chacun peut avoir ça propre méthode reste à trouver la plus simple (Le but final étant que cela fonctionne)

#!/bin/dash

usage(){      echo "Usage :Syntaxe: ${0} [valeur décimal]"      
echo "\tExemple: ${0} 10"      
exit 1

}

chars=`echo "$1" |grep "[^0-9]"`
if [ "$#" -eq 0 ] ; 
then
      echo "Aucun paramètre"
      usage "$1"
elif [ "$#" -gt 1 ] ;
then
      echo "Trop de paramètres"
      usage "$1"el
if [ ! -z "$chars" ] ;
 then
      echo "N'accepte pas les caractères"
      usage "$1"
fi
i=valeur 
while [ "$i" -lt "$1" ] ; 
do
      i=`expr "$i" + 1`
      valeur=`expr "$valeur" '*' "$i" `
done
echo "$valeur"

Related posts

Leave a Comment