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
---