Publi

  • Cómo convertirte en un señor del tiempo en C/C++ desde cero (Parte 1)

    Dr_Who_(316350537)

    El control del tiempo es una parte importante de la programación en muchas aplicaciones actuales. Desde la detección del cumpleaños de nuestros usuarios, hasta la medida del tiempo de reacción ante un estímulo en investigación, pasando por la monitorización de un sistema. Estas son algunas de las aplicaciones que podremos encontrar, aunque no las únicas. En esta serie de posts quiero hacer un recorrido por algunas necesidades básicas de tiempo que podemos tener en nuestros programas en lenguaje C desde un punto de vista práctico, y desde cero.… Leer artículo completo

  • Comparativa de acceso rápido y seguro a un elemento de un array unidimensional [PHP]

    477292813_c913243065_o

    Nota: Si usas algún Framework PHP, lo más seguro que estas funciones no te sirvan, ya que muchos Frameworks suelen tener cosas parecidas, más o menos completas que hacen lo mismo. Si eres de los que trabajan «a pelo», estás creándote tu propio framework, tal vez te interese todo esto.

    Acceso simple a un elemento de un array

    Esto es una tarea sencilla en PHP, sólo tenemos que poner entre corchetes la clave a la que queremos acceder y podremos acceder a su valor:

    1
    2
    3
    <?php
    $miArray['precio']=12.34;
    echo $miArray['precio'];

    Aunque, el problema viene cuando dicha clave no existe, veremos una notificación de PHP indicando que el índice especificado no existe:

    PHP Notice: Undefined index: precio in /home/pruebas/test.php on line 3
    PHP Stack trace:
    …..

    Leer artículo completo
  • Introducción a Timer y TimerTask en Java.

    Los timers son una herramienta muy útil para lanzar una tarea cada cierto tiempo, por ejemplo, si estamos conectados a un servidor, podemos enviar información de estado para no desconectarnos, o lanzar una tarea a una hora determinada, o incluso puede servir para crear una animación (ya que con el tiempo va variando aquello que hayamos dibujado, o va cambiando el fotograma).
    El ejemplo más sencillo de un timer puede ser lo siguiente:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import java.util.Timer;
    import java.util.TimerTask;

    class TimerEx {
        public static void main(String arglist[]) {
        Timer timer;
        timer = new Timer();

        TimerTask task = new TimerTask() {
            int tic=0;

            @Override
            public void run()
            {
                if (tic%2==0)
                System.
    Leer artículo completo
  • Magia en Bash 50 ejemplos en una sola linea (o dos)

    Bash es una de las herramientas más potentes que tenemos a nuestro alcance, aunque no sólo de bash trata el artículo, sino de trucos para consola, one-liner como dirían muchos (aunque habrá algunos two-liners) que podemos utilizar y pueden hacernos la vida un poco más fácil:

    Cadenas de texto

    Trim

    Es una herramienta que utilizaremos para recortar nuestra cadena basándonos en los a la ìzquierda y a la derecha, en este caso nos basaremos en los espacios, que es uno de sus usos más comunes (así podemos obtener la cadena limpia tanto por delante como por detrás.… Leer artículo completo

  • Obtener la fecha y hora formateada en C

    Es un código muy simple, aunque tal vez si estáis empezando os resulte muy útil para que vuestros programas sean capaces de decir la hora o hacer alguna operación con la fecha

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <time.h>
    #include <stdio.h>

    int main()
    {
      time_t t;
      struct tm *tm;
      char fechayhora[100];

      t=time(NULL);
      tm=localtime(&t);
      strftime(fechayhora, 100, "%d/%m/%Y", tm);
      printf ("Hoy es: %s\n", fechayhora);
    }

    La forma de utilizar strftime() es pasando los siguientes parámetros:

    • Un array de char o char* donde almacenaremos la cadena de caracteres resultante
    • El tamaño máximo de caracteres que podemos ocupar, es decir, el tamaño reservado para la variable anterior
    • El formato en el que queremos presentar los datos, con algunas palabras clave que indicarán dónde va cada uno de los datos, los más importantes son:
      • %s : Número de segundos desde la época: 1 de Enero del 1970 a las 00:00
      • %d : Día del mes (del 01 al 31)
      • %m : Mes (del 01 al 12)
      • %Y : Año (con 4 cifras.
    Leer artículo completo
  • Algoritmos: generar números aleatorios para la lotería

    Es un ejemplo típico y nos muestra el uso de rand() con arrays para generar varios números aleatorios y no repetidos.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    /**
    *************************************************************
    * @file loteria.c
    * @brief Saca números aleatorios para la lotería
    * Basado en el sorteo de la primitiva, hay que sacar 7 números
    * del 1 al 49, sin repetir
    *
    * @author Gaspar Fernández <blakeyed@totaki.com>
    * https://poesiabinaria.net/algoritmos/
    *************************************************************/


    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>       /* para time() */


    int numero_aleatorio(int desde, int hasta)
    {
      return desde+rand()%(hasta-desde+1);
    }

    short numero_repetido(int numeros[7], int n)
    {
      int i=0;

      while (i<n)
        {
          /* Si un número sacado anteriormente es igual al número
             en la posición n, decidido, está repetido.
    Leer artículo completo
  • Cronometrando en C

    cronometro
    Puede que queramos hacer una comparativa de cuánto tarda nuestro código en ejecutarse, o que tengamos varios algoritmos y queramos saber cuál es el más rápido. O que estemos haciendo un programa que mida el tiempo de reacción de un usuario en una cierta tarea. Aquí vemos ejemplos con diferentes precisiones.

    Minutos

    Este método viene bien para ver el tiempo transcurrido en un proceso que puede durar varios minutos. Si algo tarda 20 minutos, suele darnos igual segundo arriba, segundo abajo.… Leer artículo completo