Este es un repositorio del curso fundamentos de programación, el curso de algoritmos y estructuras de datos y del curso análisis y diseño de algoritmos de la Unidad Profesional Interdisciplinaria de Ingeniería campus Tlaxcala del IPN, esta dirigido a estudiantes y profesionales que esten interesados en el desarrollo de sistemas, sistemas embebidos y en aprender algoritmos y estructuras de datos, COMPLETAMENTE EN ESPAÑOL para la mejor compresión y el gusto de los hispanohablantes
Herramientas que necesita para usar este repositorio y cómo instalarlo
Un compilador para C/C++ y el editor de texto de tu preferencia
Si estas en Linux o MacOS ya tienes instalado un compilador para el lenguaje C, pero si estas en Windows te recomiendo seguir este Tutorial de @FaztTech para descargar MinGW y usarlo con VS Code
ADVERTENCIA: Este repositorio no esta pensado en usarse con Windows por temas especificos que son el uso de Make, las aplicaciones de Consola usan Ncurses, el manejo de hilos es para sistemas posix por lo cuál no funciona en windows, las librerías de libcurl solo funcionan en Unix, el script para instalar las herramientas es un script de bash por lo tanto sólo funciona para un sistema Unix y por último la librería GTK es para crear aplicaciones gráficas del escritorio GNOME y es una sección para ayudar al escritorio de Linux🤷♂️ , si estas en windows y si te interesan esos temas te recomiendo usar WSL y WSLg
Este repositorio esta enumerado por la jerarquía de temas que debes seguir para aprender C y un poco de su ecosistema (Linux, Gnome, Makefiles, Networking y Sistemas embebidos), todo el código esta comentado en ESPAÑOL así que por favor LEE antes de copiar y pegar, asegurate de saber que estás haciendo, si solo copias y pegas el daño te lo haces a ti y por último se escribieron post en su blog sobre temas más complejos de comprender, espero que te ayude para aprender y/o repasar algún tema
00.- Sources; en esta carpeta encontraras las fuentes de las imagenes y gifs que se usan en el repositorio
01.- Básicos del lenguaje C
- Hola mundo en C
- Directivas del procesador
- Suma de variables
- Operaciones aritméticas
- Variables y tipos de datos
- Conversión de datos en C
- Condicionales
- Uso de casos en C
- Break y Continue
- Vectores
- Matrices
- Bucles
- Funciones
- Estructuras
- Punteros
- Cadenas
02.- Matemáticas básicas
- Fundamentos de la libería math.h
- Binario a decimal
- Números primos
- Números narcicistas
- Número palindrome
- Triángulo de Pascal
- Grados a radianes
- Radio y circunferencia
- Distancia entre dos puntos
- Conjetura de Collatz
- Raíz cuadrada Newton
- Valor absoluto
- Suma de matrices
- Resta de matrices
- Multiplicación de matrices
- Matriz transpuesta
03.- Memoría dinámica
- Memoría estática
- Memoría pseudo estática
- Memoría dinámica
- Malloc y Realloc
- Callos y Free
- Strings dinámicos
- Matrices dinámicas
- Funciones dinámicas
- Estucturas dinámicas
04.- Hilos en lenguaje C
05.- How To (¿Cómo?)
- Medir tiempo de ejecución
- Generar números pseudoaleatorios
- Función para intercambiar valores
- Invertir números
- Invertir vector
- Invertir cadena
- Obtener el largo de una cadena
- Imprimir pirámide
- Imprimir círculo
06.- Algoritmos Dr. Esaú 1
07.- Make
08.- Aplicaciones de consola
09.- Recursión
10.- Algoritmos
11.- Estructuras de datos
12.- Algoritmos Dr. Esaú 2
13.- Redes en lenguaje C
- Cliente web en C
- Servidor web en C
- Dirección del cliente
- Issues
- Servidor multihilos en C
- Muchos hilos escuchando socketts
- Libcurl
- Barra de progreso
- Red final
14.- Métodos numéricos
15.- Librería gráfica GTK para GNOME
- VS Code - Visual Studio Code.
- Language C - El lenguaje C de Dennis Ritchie.
- UPIIT - Unidad Profesional Interdisciplinaria de Ingeniería campus Tlaxcala.
Escrito con ❤️ por Jonas Lara estudiante de ingeniería en IA en la UPIIT para quien sea que este interesado.