AWK - Funções Aritméticas
AWK tem as seguintes funções aritméticas integradas -
atan2 (y, x)
Ele retorna o arco tangente de (y / x) em radianos. O exemplo a seguir demonstra isso -
Exemplo
[jerry]$ awk 'BEGIN {
PI = 3.14159265
x = -10
y = 10
result = atan2 (y,x) * 180 / PI;
printf "The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees
cos (expr)
Esta função retorna o cosseno de expr, que é expresso em radianos. O exemplo a seguir demonstra isso -
Exemplo
[jerry]$ awk 'BEGIN {
PI = 3.14159265
param = 60
result = cos(param * PI / 180.0);
printf "The cosine of %f degrees is %f.\n", param, result
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
The cosine of 60.000000 degrees is 0.500000.
exp (expr)
Esta função é usada para encontrar o valor exponencial de uma variável.
Exemplo
[jerry]$ awk 'BEGIN {
param = 5
result = exp(param);
printf "The exponential value of %f is %f.\n", param, result
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
The exponential value of 5.000000 is 148.413159.
int (expr)
Esta função trunca o exprpara um valor inteiro. O exemplo a seguir demonstra isso -
[jerry]$ awk 'BEGIN {
param = 5.12345
result = int(param)
print "Truncated value =", result
}'
Ao executar este código, você obtém o seguinte resultado -
Truncated value = 5
log (expr)
Esta função calcula o logaritmo natural de uma variável.
Exemplo
[jerry]$ awk 'BEGIN {
param = 5.5
result = log (param)
printf "log(%f) = %f\n", param, result
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
log(5.500000) = 1.704748
rand
Esta função retorna um número aleatório N, entre 0 e 1, tal que 0 <= N <1. Por exemplo, o exemplo a seguir gera três números aleatórios
Exemplo
[jerry]$ awk 'BEGIN {
print "Random num1 =" , rand()
print "Random num2 =" , rand()
print "Random num3 =" , rand()
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
Random num1 = 0.237788
Random num2 = 0.291066
Random num3 = 0.845814
sin (expr)
Esta função retorna o seno de expr, que é expresso em radianos. O exemplo a seguir demonstra isso -
Exemplo
[jerry]$ awk 'BEGIN {
PI = 3.14159265
param = 30.0
result = sin(param * PI /180)
printf "The sine of %f degrees is %f.\n", param, result
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
The sine of 30.000000 degrees is 0.500000.
sqrt (expr)
Esta função retorna a raiz quadrada de expr.
Exemplo
[jerry]$ awk 'BEGIN {
param = 1024.0
result = sqrt(param)
printf "sqrt(%f) = %f\n", param, result
}'
Ao executar este código, você obtém o seguinte resultado -
Resultado
sqrt(1024.000000) = 32.000000
srand ([expr])
Esta função gera um número aleatório usando o valor da semente. Usaexprcomo a nova semente para o gerador de números aleatórios. Na ausência de expr, ele usa a hora do dia como o valor da semente.
Exemplo
[jerry]$ awk 'BEGIN {
param = 10
printf "srand() = %d\n", srand()
printf "srand(%d) = %d\n", param, srand(param)
}'
Ao executar este código, você obtém o seguinte resultado−
Resultado
srand() = 1
srand(10) = 1417959587