diff --git a/README.md b/README.md index f04bc0b..9640e22 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,8 @@ ee41f2901353c16738932a090a82a2e8a631e3c6526ac6a0325ee29bb99eb2af rechercheDoubl 3bc9fd6d5d92c84c6b7672ee1db4e9f97c3bf34eb9176c6ca393a29e2bb9b311 ronan@quennec.fr.gpg 0694b4cff027ac727eaad1ce9cac481c10d542d3375f03a220bd7a0312d7800a syllabes.sh df2dfd675abb0742ff838fe0467776f3c1d06c6829bfd905dbd663356640c18a syllabes.sh.asc -c30a4343a66aeef47c6bd6a9dfefa3e0d618e8c960a64878d643bdb3378eb936 functions.inc -afa9d91fac7b8317c47d18f054f512107cd5034de4c69b5672962e6b1d564103 functions.inc.asc +5946130e2b8ec21c03af713705264f5d2be6312263a0c83fea56145a975144f0 functions.inc +8a25429706cee8d2de47cee059b25cfebc58ec63b205c75b9d0e6907e50a7c1b functions.inc.asc 5b745b2c7897c0c07bd33d7467adb837588bd412d4eea107b758586e2c0522b2 fibonacci.php 2b917506ec9732c1272df4345a16bfecd0dce54754fd7c40eb7830a3653a4818 fibonacci.php.asc d41722d8fb508f584b063d7bf0e8d1c19a119d62deba46245f8afdd4766ef391 fibonacci.py diff --git a/functions.inc b/functions.inc index 1c529c9..0b7d253 100644 --- a/functions.inc +++ b/functions.inc @@ -87,7 +87,7 @@ is_array(){ typeset VAR=("$@") if empty ${VAR[*]}; then return 1 - elif [ ${#VAR[*]} -ge 1 ]; then + elif [ ${#VAR[*]} -gt 1 ]; then return 0 else return 1 @@ -396,10 +396,137 @@ trim(){ # # RETOUR # ====== - # Retourne la valeur sans les espaces à gaucheet à droite et le code retour 0. + # Retourne la valeur sans les espaces à gauche et à droite et le code retour 0. # typeset VAR="$1" VAR=$(ltrim "$VAR") VAR=$(rtrim "$VAR") echo "$VAR" && return 0 } + +gettype(){ + # Retourne le type de la variable. + # + # Les typespouvant être retournés (Par ordre de détermination) + # 0 - empty + # 1 - booléen + # 2 - integer + # 3 - double + # 4 - array + # 5 - string + # + # EXECUTION + # ========= + # gettype "$var" + # + # RETOUR + # ====== + # Retourne le type de la variable et le code retour 0. + # + if empty "$1"; then + echo "empty" + elif is_bool "$1"; then + echo "boolean" + elif is_int "$1"; then + echo "integer" + elif is_float "$1"; then + echo "double" + elif is_array "$@"; then + echo "array" + else + echo "string" + fi + return 0 +} + +abs(){ + # Retourne la valeur absolue du nombre "$var". + # + # EXECUTION + # ========= + # abs "$var" + # + # RETOUR + # ====== + # Retourne la valeur absolue et le code retour 0. + # Ou 0 et le code retour 1 en cas d'erreur + # + if is_numeric "$1"; then + typeset VAR=$(sed "s/^-//g" <<< "$1") + echo "$VAR" && return 0 + fi + echo 0 && return 1 +} + +ceil(){ + # Retourne la valeur arrondie à l'entier supérieur + # + # EXECUTION + # ========= + # ceil "$var" + # + # RETOUR + # ====== + # Retourne la valeur arrondie à l'entier supérieur et le code retour 0. + # Ou 0 et le code retour 1 en cas d'erreur + # + if is_numeric "$1"; then + typeset VAR=$(sed "s/\.0*$//g" <<< "$1") + typeset ENT=$(intval "$VAR") + if [ $(calcul "$VAR<0") -eq 1 ]; then + VAR="$ENT" + fi + if is_float "$VAR"; then + VAR=$(calcul "$ENT+1") + fi + echo "$VAR" + return 0 + fi + echo 0 && return 1 +} + +floor(){ + # Retourne la valeur arrondie à l'entier inférieur + # + # EXECUTION + # ========= + # floor "$num" + # + # RETOUR + # ====== + # Retourne la valeur arrondie à l'entier inférieur et le code retour 0. + # Ou 0 et le code retour 1 en cas d'erreur + # + if is_numeric "$1"; then + typeset VAR=$(sed "s/\.0*$//g" <<< "$1") + typeset ENT=$(intval "$VAR") + if [ $(calcul "$VAR<0") -eq 1 ]; then + VAR=$(calcul "$ENT-1") + fi + if is_float "$VAR"; then + VAR="$ENT" + fi + echo "$VAR" + return 0 + fi + echo 0 && return 1 +} + +fmod(){ + # Retourne le reste de la division + # + # EXECUTION + # ========= + # fmod "$num1" "$num2" + # + # RETOUR + # ====== + # Retourne le reste de la division et le code retour 0. + # Ou 0 et le code retour 1 en cas d'erreur + # + if is_numeric "$1" && is_numeric "$2"; then + calcul "scale=0; $1%$2" + return 0 + fi + echo 0 && return 1 +} diff --git a/functions.inc.asc b/functions.inc.asc index 40b0f1f..2fd0151 100644 --- a/functions.inc.asc +++ b/functions.inc.asc @@ -1,11 +1,11 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 -iQEcBAABAgAGBQJV7URzAAoJEIgCKezOqEu6wscH/iiyzfQif5MltRLWy0I9q9CZ -UIKk0v73Xhj7Xh5NRtJp7r9hgk1kSwVPAvBXTJJDLNhNQ8xN5WodMFGQn701SPk2 -wEGBMaimPu3KtczeW7zcsIZOc10YQ/k1J6Ovkj/aUlKDX8FzbTLfmJWF+hjI7OcW -cYHwjzIK5WvPjzzfA8EsHxrsEhLI0LmVaLzcnGWuRGLLaG1ImzzB0VGycf2PHlQL -eoSjx8G0p7LDevHLNlndBPlHlpiEFDFgHX6OFhj6tJjcjwpWxcbOxOqhGuxZw/Nu -RLuI2TBh3iBu1s8rZNrX5gfrWqzWYZrYw1P7vkZWupNEqI77RlE6DtpgXCGiLJg= -=IW1q +iQEcBAABAgAGBQJV7bn2AAoJEIgCKezOqEu61a0H/jnt3r2nxnfvREpnPZqkBhc1 +/nISaHlUuiR78QFknpeCIE87fb9eumR66ddGyJf7GtsVeyFLgIzQQV51Hrp9SLKH +HHHBGo7OsNM1uXg0aNhicNksyHx7xvkjc8XQ7eR7BeajPIajhZAYJvuZPiepnUFJ +IPSdTE0jzjMSROyDetoAcRlwVYcwmtrCkL+g8QGy19E9XiTyfbZTeb8bOG0/x/DP +7faMTwPYrJ13Md7uCTGOFjxAFdHm+fI52H6Yt+y9a516GIgvhF+f2nVY5CKxy6Dn +yfvr98gx558MOsq/bzmgKJfIQV7p7v1Fn9ag7/W7qjk6whdNiwCtLw2tuA/yXew= +=8lQa -----END PGP SIGNATURE-----