Tracks
/
AWK
AWK
/
Ejercicios
/
Informe simple
Informe simple

Informe simple

Ejercicio de aprendizaje

Introducción

Números y strings

AWK es un lenguaje muy pequeño y solo tiene unos pocos tipos de datos básicos. En esta lección veremos números y strings.

Números

Los números en AWK se implementan como números de punto flotante de doble precisión. No hay distinción entre enteros, números de punto flotante y dobles.

AWK entiende las constantes numéricas octales (que empiezan con 0) y las constantes numéricas hexadecimales (que empiezan con 0x o 0X).

Operaciones numéricas

Puedes usar los operadores aritméticos estándar +, -, *, /, %. El operador de exponenciación es ^. Hay algunas funciones numéricas integradas, como las funciones trigonométricas, la generación de números aleatorios y int(x) para truncar un número al entero más cercano entre x y cero.

Strings

Los strings de AWK son cadenas de caracteres. Especifica una constante de string usando comillas dobles.

Operaciones con strings

Solo hay una operación con strings: la concatenación. La concatenación no tiene un operador especial; basta con poner dos strings uno al lado del otro para concatenarlos:

BEGIN {
    hw = "Hello" "World"
    print hw
}
# => HelloWorld
Note

print es una sentencia, no una función. print no requiere paréntesis.

AWK tiene una gran cantidad de funciones para manipular strings. Las iremos conociendo en profundidad a medida que avancemos por el track.

Conversión entre números y strings

No hay operadores explícitos para convertir entre números y strings. AWK hace esto de forma implícita según el contexto del programa. Esto hace que trabajar con los valores de los campos de entrada sea muy sencillo: por lo general, AWK simplemente hace lo que quieres que haga.

  • print x + y convertirá los valores de las variables x y y a números gracias a la operación numérica +.
  • print x y convertirá los valores de las variables x y y a strings gracias a la operación de concatenación.

Si quieres ser explícito, 0 + x da la representación numérica de x y "" x da la representación como string de x.

De strings a números

La forma en que AWK convierte un string a un número puede resultar confusa. Una manera sencilla de pensarlo es que AWK lee «caracteres numéricos» desde el principio del string hasta que encuentra un carácter que «no es un número». Algunos ejemplos son:

  • "2.5" se convierte en el número 2.5;
  • "1e3" se convierte en el número 1000 (notación científica);
  • "456abc" se convierte en el número 456 (como a no es un «numeral», la conversión se detiene ahí).
  • "abc789" se convierte en el número 0 (no hay números al principio del string).

Instrucciones

Estás ayudando a un amigo a generar un informe a partir de las lecturas que tomó en distintos rincones de su jardín. Lamentablemente, tu amigo guardó los datos en un formato extraño. Cada lectura es un conjunto de campos separados por comas. Sin embargo, guardó los números de dos dígitos repartidos en dos columnas.

número del campo significado
1 número de ID
2 ubicación
3 primera lectura, valor de las decenas
4 primera lectura, valor de las unidades
5 segunda lectura, valor de las decenas
6 segunda lectura, valor de las unidades

Para una fila de entrada como 101,house,4,2,5,4

  • la primera lectura es 42,
  • la segunda lectura es 54.

Tarea 1: Genera el informe

Tu tarea es encontrar el promedio de las dos lecturas y mostrar los resultados de cada fila en el siguiente formato

#<id>, <label> = <average>

Como el promedio de 42 y 54 es 48, el resultado de la fila de ejemplo debería ser:

#101, house = 48
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
AWK Exercism

¿Todo listo para empezar Informe simple?

Regístrate en Exercism para aprender y dominar AWK con 3 conceptos92 ejercicios y mentoría humana real, todo gratis.