Categoría: Programación

    Problema de redondeo con float en Golang

    Mientras escribía el artículo sobre FunnyStrings necesité usar la función de valor absoluto de Go y me crucé nuevamente con el viejo y conocido problema de redondeo de la aritmética de punto flotante en computadoras. Para resolver el problema mencionado necesitaba comparar los valores absolutos de diferencias entre caracteres. Para esto usé la función math.Abs() de la biblioteca estándar. Y sólo hay una versión que recibe float64 como tipo de entrada.

    Resolviendo FunnyStrings de HackerRank

    Cómo optimizar recorridos de arrays. Ejemplo práctico partiendo de un algoritmo que utiliza memoria y recorridos extra. Los programas de ejemplo están escritos en Go (Golang). Recorrer un array en forma eficiente es uno de los principales problemas de fondo en ejercicios de competencias de programación o en entrevistas laborales. Este es un ejemplo práctico paso a paso que parte de la solución más obvia hasta llegar a la más óptima.

    Cómo optimizar recorrido de arrays

    Recorrer un array en forma eficiente es uno de los principales problemas de fondo en ejercicios de competencias de programación o en entrevistas laborales. Este es un ejemplo práctico paso a paso que parte de la solución más obvia hasta llegar a la más óptima. Para eso tomamos un problema presentado en HackerRank como FunnyStrings. El enunciado dice que nuestro programa recibirá una cadena de texto y deberá determinar si es Funny creando una copia invertida, restando a cada caracter el caracter siguiente (en la cadena original y en la invertida) usando sus valores ASCII y tomando el resultado en valor absoluto.

    Jugando con threads en C++11

    Una buena noticia de C++11 es que se incorporó la biblioteca pthreads al nuevo estándar. Esto quiere decir que ya no es necesario implementar un encapsulamiento propio como hacíamos algunos años atrás. Este artículo (breve) ilustra el uso de la nueva clase threads y permite jugar un poco con el comportamiento del multitasking para comprender algunas particularidades que debemos tener en cuenta a la hora de crear aplicaciones concurrentes. Si te interesa este artículo te recomiendo leer también esta nota sobre problemas con float en Golang.