AWK - Fonctions arithmétiques

AWK a les fonctions arithmétiques intégrées suivantes -

atan2 (y, x)

Il renvoie l'arc tangente de (y / x) en radians. L'exemple suivant illustre ceci -

Exemple

[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
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees

cos (expr)

Cette fonction renvoie le cosinus de expr, qui s'exprime en radians. L'exemple suivant illustre ceci -

Exemple

[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
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

The cosine of 60.000000 degrees is 0.500000.

exp (expr)

Cette fonction est utilisée pour trouver la valeur exponentielle d'une variable.

Exemple

[jerry]$ awk 'BEGIN {
   param = 5
   result = exp(param);
   
   printf "The exponential value of %f is %f.\n", param, result
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

The exponential value of 5.000000 is 148.413159.

int (expr)

Cette fonction tronque le exprà une valeur entière. L'exemple suivant illustre ceci -

[jerry]$ awk 'BEGIN {
   param = 5.12345
   result = int(param)
   
   print "Truncated value =", result
}'

En exécutant ce code, vous obtenez le résultat suivant -

Truncated value = 5

log (expr)

Cette fonction calcule le logarithme naturel d'une variable.

Exemple

[jerry]$ awk 'BEGIN {
   param = 5.5
   result = log (param)
   
   printf "log(%f) = %f\n", param, result
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

log(5.500000) = 1.704748

rand

Cette fonction renvoie un nombre aléatoire N, compris entre 0 et 1, tel que 0 <= N <1. Par exemple, l'exemple suivant génère trois nombres aléatoires

Exemple

[jerry]$ awk 'BEGIN {
   print "Random num1 =" , rand()
   print "Random num2 =" , rand()
   print "Random num3 =" , rand()
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

Random num1 = 0.237788
Random num2 = 0.291066
Random num3 = 0.845814

sin (expr)

Cette fonction renvoie le sinus de expr, qui s'exprime en radians. L'exemple suivant illustre ceci -

Exemple

[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
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

The sine of 30.000000 degrees is 0.500000.

sqrt (expr)

Cette fonction renvoie la racine carrée de expr.

Exemple

[jerry]$ awk 'BEGIN {
   param = 1024.0
   result = sqrt(param)
   
   printf "sqrt(%f) = %f\n", param, result
}'

En exécutant ce code, vous obtenez le résultat suivant -

Production

sqrt(1024.000000) = 32.000000

srand ([expr])

Cette fonction génère un nombre aléatoire en utilisant la valeur de départ. Il utiliseexprcomme nouvelle graine pour le générateur de nombres aléatoires. En l'absence d'expr, il utilise l'heure du jour comme valeur de départ.

Exemple

[jerry]$ awk 'BEGIN {
   param = 10
   
   printf "srand() = %d\n", srand()
   printf "srand(%d) = %d\n", param, srand(param)
}'

En exécutant ce code, vous obtenez le résultat suivant:

Production

srand() = 1
srand(10) = 1417959587