Fundamentos de programación en C, por Nacho Cabanes
- 0. Conceptos básicos sobre programación
- 0.1. Lenguajes de alto nivel y de bajo nivel
- 0.2. Ensambladores, compiladores e intérpretes
- 0.3. Pseudocódigo
- 1. Toma de contacto con C
- 1.1 Escribir un texto en C
- 1.2. Mostrar números enteros en pantalla
- 1.3. Operaciones aritméticas básicas
- 1.4. Introducción a las variables: int
- 1.5. Identificadores
- 1.6. Comentarios
- 1.7. Datos por el usuario: scanf
- 2.1. Tipo de datos entero
- 2.2. Tipo de datos real
- 2.3. Operador de tamaño: sizeof
- 2.4. Operador de molde: (tipo) operando
- 2.5. Tipo de datos carácter
- 3. Estructuras de control - 3.1. Estructuras alternativas
- 3.2. Estructuras repetitivas (while, do-while, for)
- 3.3. Sentencia break: termina el bucle
- 3.4. Sentencia continue: fuerza la siguiente iteración
- 3.5. Sentencia goto
- 3.6. Más sobre diagramas de flujo. Diagramas de Chapin. (*)
- 3.7. Recomendación de uso de los distintos tipos de bucle
- 4. Entrada/salida básica
- 5. Arrays y estructuras - 5.1. Conceptos básicos sobre tablas
- 5.2. Cadenas de caracteres
- 5.3. Tablas bidimensionales
- 5.4. Arrays indeterminados
- 5.5. Estructuras
- 5.6 Ejemplo completo
- 5.7 Ordenaciones simples
- 6. Manejo de ficheros - 6.1. Escritura en un fichero de texto
- 6.2. Lectura de un fichero de texto
- 6.3. Lectura hasta el final del fichero
- 6.4. Ficheros con tipo
- 6.5 Leer y escribir letra a letra
- 6.6 Modos de apertura
- 6.7 Ficheros binarios
- 6.8 Ejemplo: copiador de ficheros
- 6.9 Acceder a cualquier posición de un fichero
- 6.10 Ejemplo: leer información de un fichero BMP
- 6.11. Ficheros especiales 1: la impresora
- 6.12. Ficheros especiales 2: salida de errores
- 6.13. Un ejemplo de lectura y escritura: TAG de un MP3
- 6.14. Evitar los problemas de "gets"
- Introducción a las funciones
- 7.2. Conceptos básicos sobre funciones
- 7.3. Parámetros de una función
- 7.4. Valor devuelto por una función
- 7.5. El valor de retorno "void". El valor de retorno de "main"
- 7.6. Variables locales y variables globales
- 7.7. Los conflictos de nombres en las variables
- 7.8. El orden importa
- 7.9. Algunas funciones útiles: Números aleatorios, Funciones matemáticas
- 7.10. Recursividad
- 7.11. Cómo interrumpir el programa
- 8. Cómo depurar los programas (*)
- 9. Punteros y gestión dinámica de memoria - 9.1. ¿Por qué usar estructuras dinámicas?
- 9.2. ¿Qué son los punteros?
- 9.3. Repasemos con un ejemplo sencillo
- 9.4. Aritmética de punteros
- 9.5. Punteros y funciones: parámetros por referencia
- 9.6. Punteros y arrays
- 9.7. Arrays de punteros
- 9.8. Punteros y estructuras
- 9.9. Parámetros de “main”
- 9.10. Estructuras dinámicas habituales 1: las listas enlazadas
- 9.11. Estructuras dinámicas habituales 2: los árboles binarios
- 9.12. Indirección múltiple
- 9.13. Un ejemplo: copiador de ficheros en una pasada
- 10.1. Llamadas al sistema: system
- 10.2. Temporización
- 10.3. Pantalla y teclado con Turbo C
- 10.4. Acceso a pantalla en Linux: curses.h
- 10.5. Juegos multiplataforma: SDL
- 11.1 Operaciones con bits
- 11.2 Directivas del preprocesador
- 11.3. Programas a partir de varios fuentes
- 11.4 Uniones y campos de bits
- 11.5. El operador coma
- 11.6. Enumeraciones
- 11.7. Definición de tipos
- Apartado pronto disponible (*)