Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Programación en C

Áreas de un círculo.

Recientemente ando desempolvando algunos conocimientos en lenguajes de programación. No porque el día a día me los exija, pero siempre es bueno la comprensión desde las entrañas de lo que adminisitras. Otro punto es que la programación mantiene al cerebro despierto y posibilida su mejor comprensión de las cosas. Este caso encontré unos apuntes cuando estudiaba la preparatoria hace poco más dee 10 años. En ese momento vimos algo de C. Más por melancólico que por sentido de la practicidad, subo uno de los códigos que encontré. Con algo de tiempo, iré subiendo más de mis apuntes, solo como parte de una memoria histórica de mi paso por las TI. El objetivo del código es ralizar ene cantidad de cálculos de áreas de círculos (hasta que la palabr FIN sea encontrada). Elegí este código por el uso de estructuras; tipos de datos que ya había olvidado y que gracias mi cuaderno las recordé. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

Acercándonos a GDB

Todo desarrollador, y curioso, debe saber la manera obtener los estados de su aplicación a efectos de corregir errores, o simplemente para buscar la mejora en sus prácticas de codificación. Como administrador del sistema operativo, también es útil conocer un poco de ésto, ya que nos permite dilucidar causas de problemas y, eventualmente, corregirlos por la propia mano. Para eso se inventaron los debuggers .  Linux tiene mucho de su código desarrollado en C y C++, así que cualquier conocimiento que ganemos sobre este lenguaje, nos hará más aptos para su dominio. En la búsqueda de más información me encontré con un documento muy práctico para comenzar con algunos conceptos y ejemplos. Por tales motivos lo comparto con los incautos que lleguen aquí. Download PDF

Euler 10 - solucionado

Hoy me dispuse a vencer mi gran reto, por darle un nombre, y es el problema número 10 de projecteuler.net, el cual dice lo siguiente: /* * The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. * * Find the sum of all the primes below two million. * */ Sabiendo eso me puse manos a la obra y saqué mi primer "cosa", la cual hace lo que tiene que hacer, pero no en el tiempo que debería. Tarda minutos en hacerlo, aunque ya vi una forma de eficientarlo, siendo por problemas de tiempo uno de esos tantos pendiendes que me aquejan. Dejo el código, y en algún momento publicaré su mejora: /* * The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. * * Find the sum of all the primes below two million. * Resultado: 142913828922, 142913828922 * Tiempo:real    92m6.960s *        user    91m43.731s *         sys    0m0.019s * */ #include int lim = 20000...

Divide y vencerás

Este quizá sea un dicho bélico, aplicandose cuando el volumen del enemigo es muy considerable, tanto que para poder someterlo o extinguirlo sea necesario reducirlo apequeñas fracciones.  Una filosofía que no sé hasta que punto sea atinada, sin embargo, su esencia puede ser llevada al mundo de la informática, entre otras muchas disciplinas. Hace mucho tiempo, cuando me dedicaba a intentar resolver problemas matemáticos de un sitio especialmente dispuesto a ello me encontré una dificultad que me volvió loco. En primer instancia, por mi falta de habilidad/práctica para desarrollar...pero en especial, me rehusé a utilizar un lenguaje de programación que permitiera resolver el problema sin astucia alguna. Ya estamos empezando a hablar de un problema, eso significa que vamos casi a la mitad de este post y me llena de felicidad comentar que por fin he hallado la solución. No la he inventando yo, pero al final la he entendido y aprehendido para lo que venga. El problema, como quien dice...

Hilos en C con pthread

Esta vez les compartiré un poco el funcionamiento básico de los hilos en POSIX (caso particular de GNU/ Linux), pasando de la teoría a la práctica. Una buena referencia de qué es lo que estoy usando en este código es la liga de pthread . #include #include #include #define NUMERO_DE_HILOS 10 void *imprimir_hola_mundo(void *tid) {     /*Imprime el identificador del hilo y termina*/     printf("Hola mundo. Soy el hilo %d0\n", tid);     pthread_exit(NULL); } int main(int argc, char *argv[]) {     /*Se crean diez hilos*/     pthread_t hilos[NUMERO_DE_HILOS];     int estado, i;     for(i=0; i< NUMERO_DE_HILOS; i++) {         printf("Creando hilos en main %d0\n", i);         estado = pthread_create(&hilos[i], NULL, imprimir_hola_mundo, (void *)i);         if...

Resetear la terminal con C

Muchas veces el mal funcionamiento de una aplicación puede ocasionar que nuestra terminal se vea con caracteres raros, pudiendo resultar molesto.  Cuando estamos trabajando en una terminal local basta con abrir una nueva y asunto solucionado. La situación cambia cuando estamos en una sesión en un servidor remoto (y nos costaron muchos saltos poder llegar a éste), para colmo no existe el comando reset , el cual podría solucionarnos la vida. Si pudiera ser el caso, pueden usar un pequeño programa en C, el cual cumplirá las funciones de reset. #include int main() {     printf("P\033c");     printf("P\033[2j"); return 0; } Espero les ayude un poco al menos.