MIS PROYECTOS

Idioma / Language: Español  English



- PHILOSOPHERS

   Este proyecto se basa en el problema de los filosofos, uno o mas filosofos se sientan en una mesa redonda, donde hay un bol de espaguetis en el centro de ella. Los filosofos solo pueden dormir, pensar y comer.
   Hay tenedores en la mesa, tantos como filosofos, cada filosofo para comer denerá coger el tenedor de la derecha y de la izauierda y cuando termine de comer los soltará.
   El programa necesita estos argumentos: nb_philosophers, die, eat, sleep, [must_eat]
  • Nb_philosophers: es el número de filósofos, pero también el número de tenedores.
  • Die (en milisegundos): si un filósofo no empieza a comer en time_to_die milisegundos desde el comienzo de su ultima comida o desde el principio de la simulación, este morirá.
  • Eat (en milisegundos): es el tiempo que tiene un filósofo para comer.Durante ese tiempo, tendrá los tenedores ocupados.
  • Sleep (en milisegundos): es el tiempo que tiene un filósofo para dormir.
  • Must_eat (argumento opcional): si todos los filósofos comen al menos must_eat veces, la simulación se detendrá. Si no se especifica, la simulación se detendrá con la muerte de un filósofo.

  • - FDF

       Este proyecto trata de la creación de un simple modelo de estructura alámbrica con una representación en 3D de un paisaje uniendo varios puntos (x, y, z)
       El programa debe estar mostrado en proyección isométrica.
       Las coordenadas del paisaje están almacenadas en un archivo .fdf pasado como parámetro a tu programa.
       Ese archivo será correcto si unicamente tiene valores numéricos. Cada número representa un punto en el espacio:
  • La posición horizontal corresponde a la coordenada 'X'.
  • La posición vertical corresponde a la coordenada 'Y'.
  • El valor corresponde a su altitud.
  • También podrás utilizar teclas específicas para:
  • Cambiar de proyección
  • Hacer zomm
  • Trasladar la figura
  • Rotar la figura

  • - PUSH_SWAP

       Push_swap es un proyecto de algoritmia simple y muy efectivo: tienes que ordenar datos. Tienes a tu disposición un conjunto de valores int, dos stacks y un conjunto de instrucciones para manipular ambos.
       El objetivo tras la ejecucion del progrma es que el stack esté ordenado de menor a mayor y que se haya impreso por pantalla cada movimiento de ambos stacks.
       Estos son los movimientos:
  • sa : swap a - intercambia los dos primeros elementos encima del stack a.
  • sb : swap b - intercambia los dos primeros elementos encima del stack b
  • ss : swap a y swap b a la vez
  • pa : push a - toma el primer elemento del stack b y lo pone encima del stack a.
  • pb : push b - toma el primer elemento del stack a y lo pone encima del stack b.
  • ra : rotate a - desplaza hacia arriba todos los elementos del stack a una posición.
  • rb : rotate b - desplaza hacia arriba todos los elementos del stack b una posición,
  • rr : rotate a y rotate b.
  • rra : reverse rotate a - desplaza hacia abajo todos los elementos del stack a una posición.
  • rrb : reverse rotate b - desplaza hacia abajo todos los elementos del stack b una posición.
  • rrr : reverse rotate a y reverse rotate b

  • - MINITALK

       Este programa es una conexión de comunicación en la forma de un cliente y un servidor.
       El servidor debe lanzarse primero, tras lanzarse debe mostrar su PID.
       El cliente tomará como parámetros:
  • El PID del servidor.
  • La string que debería mandarse.
  •    El cliente debe comunicar la string pasada como parámetro al servidor. Una vez la string se haya recibido, el servidor debe mostrarla.

    - PRINTF

       Este proyecto es una réplica de la función 'printf' para poder utilizar mi propia función a la hora de mostrar valores por pantalla.
       Se implementa las siguientes conversiones:
       • %c Imprime un solo carácter.
       • %s Imprime una string (como se define por defecto en C).
       • %p El puntero void * dado como argumento se imprime en formato hexadecimal.
       • %d Imprime un número decimal (base 10).
       • %i Imprime un entero en base 10.
       • %u Imprime un número decimal (base 10) sin signo.
       • %x Imprime un número hexadecimal (base 16) en minúsculas.
       • %X Imprime un número hexadecimal (base 16) en mayúsculas.
       • % % para imprimir el símbolo del porcentaje.

    - Get_Next_Line

       Get_Next_Line es un proyecto o función muy útil ya que es capaz de de devolver linea por linea el texto de un archivo.
       También tiene la parte bonus que funciona exáctamente igual pero puedes pasarle más de un archivo para leer.
       Para ejecutar el GNL deberás de hacer una función main donde le pasarás el file descriptor "get_next_line(int fd)".

    - Libft

       Con este programa aprendí a realizar mi primera librería con funciones básicas de C que me han servido mucho en proyectos posteriores.
       Algunas de estas funciones utiles pueden ser el atoi, split, substr, putchar, funciones de memoria o funciones de listas.

    - Otros proyectos

       A parte de los proyectos que estan aquí publicados he realizado algunos otros como pueden ser:
       
  • Born_to_be_root: Trata de crear y configurar una maquina virtual y aprender a realizar acciones que puedan ser útiles para su uso.
  •    
  • Proyectos en html: Los cuales podrian ser esta página web, un juego de futbol con utilidades básicas del lenguaje y ejercicios específicos para aprender dicho lenguaje.
  •    
  • SQL y JS: Tengo un certificado de nociones básicas de hambos lenguajes, útiles sobre todo a la hora de entender un programa escrito en dicho lenguaje.