Puede que se nos haya presentado alguna vez la necesidad de saber la dirección de un dispositivo desde nuestro programa, y no es plan de ponernos a ejecutar ifconfig o algún programa parecido para hallar la dirección.
Podemos hablar con ioctl() una función destinada a definir y obtener información de dispositivos. Hay cientos de llamadas, aquí comentaremos la llamada SIOCGIFADDR cuya función es la que comentábamos, obtener la dirección de un interfaz de red.
Podemos probar el [...]
Una serie donde analizan micro-expresiones faciales y corporales para pillar a los malos. Miénteme. Analizan al milímetro los gestos de la gente y por supuesto, leen su correo en Kmail, aunque, como tapadera (ya que son todos unos expertos informáticos) reciben los e-mails a través de la lista de correo KDE-Plasma:
En el minuto 9:15 del capítulo 9 de la segunda temporada podemos ver este pantallazo durante un momento
Es un ejemplo típico y nos muestra el uso de rand() con arrays para generar varios números aleatorios y no repetidos.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071/**
*************************************************************
* @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>
* http://totaki.com/poesiabinaria/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 [...]
Categories: C/C++, Clases particulares, algoritmos Tags: aleatorios, array, comparación, loteria, numeros, rand, semilla, srand, time
En esta serie, Person of Interest (Vigilados en español) protagonizada por Jim Caviezel y Michael Emerson, salen escritorios Gnome 2 por todas partes, con diferentes temas.
Aunque no se termina de ver claro, hay algunas veces que se perfila algo, es un escritorio muy personalizado que siempre tiene textos de terminal o en hexadecimal en movimiento (porque los mejores informáticos lo hacen así)… pero en la barra inferior, tiene un texto “Applications”, “Places”, “System”, os suena… [...]
En España, para identificar de forma única a cada ciudadano se utiliza el número del Documento Nacional de Identidad (DNI). Como es costumbre, en muchos datos numéricos, como este, un número de cuenta corriente, códigos ISBN, etc existe un algoritmo de verificación que comprueba que el número es válido. En este caso, la comprobación se realiza con la letra que acompaña el número.
El algoritmo es sencillo, puede que a la hora de implementarlo no nos [...]
Aunque GNOME2 ya está algo antiguo, aún lo uso en algún equipo viejo, y una cosa que yo utilizo muy a menudo es la redimensión de ventanas con Alt+Botón derecho del ratón (para mover también es muy rápido Alt+Botón izquierdo), aunque GNOME 2 trae por defecto la redimensión con Alt+Botón central lo que no me resulta muy cómodo a veces (sobre todo en portátiles cuando no hay botón central).
Para ello, aunque se puede hacer de [...]
Estos días a varios de mis alumnos les ha surgido la necesidad de probar la existencia de un archivo haciendo la llamada al sistema open(). Es bastante sencillo, sólo hay que probar si éste se ha podido abrir (como lectura, por ejemplo, para no tocar el fichero en la medida de lo posible).
Una vez se abre el fichero pueden ocurrir varias cosas:
que la llamada a open() no devuelva error. Por tanto el fichero existe
que la [...]
Categories: C/C++, Clases particulares, algoritmos Tags: close, enoent, enofile, exist, file, Linux, llamada, open, rdonly, sistema, unix
Hace más de un año que se estrenó la película, pero ahora es cuando decido incluirla aquí, que tengo capturas y tiempos concretos:
En el minuto 11 segundo 25 podemos ver el primer regalo… GNU/EMACS !!
y para los que no sepan lo que es capaz de hacer Emacs… ahora lo vemos ejecutando un juego en Emacs lisp: hanoi-unix:
Aunque sólo sale un instante… igual que sólo sale durante un solo frame…
¡ Ubuntu !
Luego, alrededor del minuto 21 [...]
Algo más matemático vuelvo cuando propongo lo siguiente. Vamos a calcular un seno con la serie de MacLaurin. Ésta es la fórmula, extraída de Wikipedia.
Y este el algoritmo en C:
1234567891011121314151617181920212223242526272829303132#define PI 3.141592653588
unsigned factorial(int n)
{
if (n<1)
return 1;
return n*factorial(n-1);
}
double senoTaylor(double n)
{
double t=0;
int i;
short signo=(n>=0);
n=fabs(n); /* Calculamos el valor absoluto */
while (n>PI) /* Reducimos el ángulo, de dos en dos cuadrantes*/
[...]
Para inaugurar la nueva sección de Algoritmos de este blog, empezaré presentando una función para calcular años bisiestos (lo podemos encontrar en Wikipedia en bastantes más lenguajes, pero, ¿por qué aquí no?
1234function bisiesto(int year)
{
return (a%4==0) && ( (a%100!=0) || (a%400==0) );
}
Es decir, cada 4 años hay un año bisiesto, no cuando el año es múltiplo de 100, aunque sí cuando es múltiplo de 400.
Esta función, podemos utilizarla para validar fechas:
123456789101112short valida_fecha(short d, short m, [...]
Últimos comentarios