martes, 11 de julio de 2017

Aritmética simple

Los operadores aritméticos ordinarios se listan en la siguiente tabla:

Tabla 34-3: Operadores aritméticos
Operador Descripción
+ Adición
- Sustracción
* Multiplicación
/ División entera
** Exponenciación
% Módulo (resto)

La mayoría son autoexplicativos, pero la división entera y el módulo requieren una explicación.

Como la aritmética del shell sólo opera con enteros, los resultados de la división son siempre números enteros:

[me@linuxbox ~]$ echo $(( 5 / 2 ))
2

Esto hace que la determinación del resto de una división sea más importante:

[me@linuxbox ~]$ echo $(( 5 % 2 ))
1

Usando los operadores división y módulo, podemos determinar que 5 dividido entre 2 da como resultado 2, con un resto de 1.

Calcular el resto es útil en bucles. Permite que una operación se realice en intervalos especificados durante la ejecución del bucle. En el ejemplo siguiente, mostramos una línea de números, destacando cada múltiplo de 5:

#!/bin/bash

# modulo : demonstrate the modulo operator

for ((i = 0; i <= 20; i = i + 1)); do
    remainder=$((i % 5))
    if (( remainder == 0 )); then
        printf "<%d> " $i
    else
        printf "%d " $i
    fi
done
printf "\n"

Cuando se ejecuta, el resultado es el siguiente:

[me@linuxbox ~]$ modulo
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>

No hay comentarios:

Publicar un comentario