Archivo para Enero, 2010

Números aleatorios avanzados en c

Por Jose | 7 de Enero de 2010 a las 14:54 |

Despues de ver cómo generar números aleatorios en javascript, veremos ahora como generar números aleatorios en c y números aleatorios entre dos números. Para ello contamos con dos funciones en C para su correcto funcionamiento:

void srand(unsigned int semilla);
int rand(void);

void srand48(long int semilla);
double drand48(void);

En realidad son cuatro funciones, son análogas, srand y rand son para el manejo de enteros y srand48 y drand48 para el manejo de números reales.
La función rand genera un número aleatorio, pero si hacemos un programa que genere por ejemplo diez números aleatorios, cada vez que ejecutemos el programa vamos a obtener

Elegir un buen titulo

Por Borja | 5 de Enero de 2010 a las 22:07 |

Uno de los factores  más importantes en el posicionamiento en buscadores, tanto en google como yahoo y bing es el título de la página web. Un buen título no sólo tiene que ayudar a determinar al buscador cual es el contenido de la página sinó que tiene que atraer al usuario a hacer click en él. Puedes tener la mejor página del mundo, pero un título inadecuado para esa búsqueda puede hacer que los resultados no sean todo lo satisfactorios que debería.

Convertir entero a cadena en c

Por Jose | 5 de Enero de 2010 a las 18:08 |

En el post anterior vimos como convertir una cadena a entero, ahora veremos lo contrario.
Igual que atoi nos convierte una cadena en un entero, la función itoa nos convierte un entero en una cadena. El problema de esta función es que no es estándar, y por lo tanto no estará disponible en todos los compiladores o sistemas, por lo tanto vamos a hacer una pequeña “trampa” para emular dicha función.
Para la “trampa” emplearemos la función sprintf:


int sprintf(char *cadena, const char *formato, ...);

Esta función es parecida a printf, pero en vez de mandar a la salida estándar el resultado, lo almacena en la variable ‘cadena’. A continuación vamos a ver un sencillo ejemplo:

Convertir cadena a entero en c

Por Jose | 5 de Enero de 2010 a las 17:48 |

Es muy común convertir en número entero a una cadena en c, por ejemplo desde datos leidos en ficheros de texto o la conversión de los argumentos pasados al programa. Por suerte, c nos proporciona dos funciones para este propósito, atoi y strtol:


int atoi (const char *cadena)
long int strtol(const char *cadena, char *basura, int base)

Tanto atoi como strtol dada una cadena la convierten a un entero, devolviendo el número y en caso de error devuelven el número 0. A strtol hay que indicarle la base a la que queremos convertir el número, en la mayoría de los casos la base será 10.

Pero bien, tenemos que saber qué es una cadena errónea para esas funciones:

Arrays bidimensionales dinámicos en C

Por Jose | 4 de Enero de 2010 a las 18:25 |

A veces nos encontramos resolviendo un problema en C, Pascal u otro lenguaje y necesitamos almacenar datos que cambian dinámicamente en cada ejecución, como un programa que se encargue de realizar operaciones con matrices, o cargar una foto en memoria para rotarla.
Si no queremos “perder” nuestro tiempo más de uno lo que hace es declarar un array bidimensional estático lo suficientemente grande para que “funcione”, pero no es la solución. Lo adecuado es declarar un array dinámico en tiempo de ejecución, veámoslos.