Re: [ssfr] utilisation de bc

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


On Tue, Jul 15, 2008 at 06:13:12AM -0400, Stephane Billiart wrote:
> le plus simple est de faire faire la comparaison par bc
> 	cond=$(echo "scale=6; sqrt($1*$1 + $2*$2)<=2" | bc -l)
> 	[ "$cond" = "1" ] && echo "OK"

je vais encore revenir avec du "zsh, c'est bon, mangez-en": il est
possible d'etendre le contexte arithmetique:

# creer des fonctions qui renvoient des valeurs arithmétiques

math/sqrt () { (( $1 * $1 )) }
math/dans_cercle () {
((
    2.*(sqrt($1*$1 + $2*$2)) <= 2 
)) }

# ajouter ces fonctions au contexte arithmetique
# 1 1 signifie que ma fonction peut prendre de 1 a 1 arguments
functions -M sqrt 1 1 math/sqrt
# 2 2 signifie que ma fonction peut prendre de 2 a 2 arguments
functions -M dans_cercle 2 2  math/dans_cercle

# utiliser ces fonctions
print $[ sqrt(5) ]
print $[ dans_cercle(1,4) ]

(( dans_cercle(1,3) )) && echo ok
math/dans_cercle 1 4  && echo ok

cordialement,

-- 
Marc Chantreux
BibLibre, expert en logiciels libres pour l'info-doc
http://biblibre.com

---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/