SANTOS GONZÁLEZ, MANUEL / GARCIA TOME, ANTONIO (Ilustración)
INTRODUCCIÓN CAPÍTULO 1. ALGORITMOS Y PROGRAMAS INTRODUCCIÓN REPRESENTACIÓN DE LA INFORMACIÓN ALGORITMOS APLICACIÓN INFORMÁTICA Ciclos de Vida Metodologías Errores PROGRAMACIÓN Tipos de Programación Calidad Documentación RESUMEN CAPÍTULO 2. CONCEPTOS BÁSICOS DE LA METODOLOGÍA DE PROGRAMACIÓN TÉCNICAS PARA EL DISEÑO DE ALGORITMOS Diagramas de Flujo Pseudocódigo Tablas de decisión Diagrama de transición de estados Diagrama Jackson ESTRUCTURA DE UN PROGRAMA Tipos de datos Clasificación de las instrucciones Variables TÉCNICAS DE PROGRAMACIÓN Programación convencional Programación modular Programación estructurada Programación Orientada a Objetos SUBPROGRAMAS Las funciones La recursividad RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 3. C, UN LENGUAJE ESTRUCTURADO. EL COMPILADOR LENGUAJES DE PROGRAMACIÓN Tipos de lenguajes de programación Traductores del lenguaje Compiladores frente a intérpretes EL LENGUAJE C Historia del lenguaje C como lenguaje estructurado ESTRUCTURA DE UN PROGRAMA EN C Estructura general Directivas para el preprocesador Declaraciones globales Funciones de usuario y de librería LIBRERÍAS DE C LA COMPILACIÓN Y EL ENLAZADO Uso de un compilador en modo comando ¿Por qué crear programas para el modo comando? ENTORNO DE DESARROLLO Entorno de Desarrollo Integrado Instalación y requerimientos del IDE Uso básico del IDE Depuración de un programa RESUMEN EJERCICIOS PROPUESTOS CAPÍTULO 4. COMENZANDO A PROGRAMAR. ELEMENTOS BÁSICOS DEL LENGUAJE C INTRODUCCIÓN CARACTERES Y SINTAXIS DE C Comentarios Palabras clave Identificadores TIPOS DE DATOS Tipos de datos fundamentales Tipos de datos derivados Nombres de tipos: typedef DECLARACIÓN DE CONSTANTES DECLARACIÓN DE VARIABLES Ambito de las variables. Accesibilidad OPERADORES Y EXPRESIONES Operadores Expresiones PROGRAMACIÓN ESTRUCTURADA: FUNCIONES. LIBRERÍAS La función main() Librerías PRIMERAS FUNCIONES DE E/S POR CONSOLA Función getchar() Función putchar() Función printf() Función scanf() Función getch() y getche() Función gets() y puts() Función fflush (stdin) RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 5. SENTENCIAS DE CONTROL DE FLUJO INTRODUCCIÓN SENTENCIA IF/ELSE (SELECCIÓN) SENTENCIA SWITCH (SELECCIÓN) SENTENCIA WHILE (ITERACIÓN) SENTENCIA DO .. WHILE (ITERACIÓN) SENTENCIA FOR (ITERACIÓN) SENTENCIAS BREAK Y CONTINUE SENTENCIA GOTO RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 6. ESTRUCTURAS ESTÁTICAS INTRODUCCIÓN ARRAYS CADENAS DE CARACTERES. FUNCIONES ESTÁNDAR ESTRUCTURAS UNIONES ENUMERADOS PUNTEROS RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 7. FUNCIONES INTRODUCCIÓN DEFINICIÓN DE UNA FUNCIÓN LLAMADA A UNA FUNCIÓN DECLARACIÓN PROTOTIPO PASO DE ARGUMENTOS POR VALOR Y POR REFERENCIA PASO DE ARGUMENTOS A LA FUNCIÓN MAIN() PASO DE ARRAYS COMO ARGUMENTOS A UNA FUNCIÓN PUNTEROS A FUNCIONES LIBRERÍA DE FUNCIONES EN C ERRORES COMUNES RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 8. ESTRUCTURAS EXTERNAS. FICHEROS CONCEPTOS DEL TRABAJO CON FICHEROS Tipos de funciones de manejo de ficheros Tipos de acceso a ficheros OPERACIONES SOBRE FICHEROS Abrir un fichero Cerrar un fichero Tratamiento de errores TRATAMIENTO DE FICHEROS EN MODO SECUENCIAL Entrada / salida de caracteres Entrada / salida de cadenas Entrada / salida con formato Modo texto y modo binario Entrada / salida de registros TRATAMIENTO DE FICHEROS EN MODO ALEATORIO FUNCIONES DE MANEJO DE FICHEROS A BAJO NIVEL OTRAS FUNCIONES PARA EL MANEJO DE FICHEROS RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 9. ESTRUCTURAS DINÁMICAS ORGANIZACIÓN DE LOS DATOS EN MEMORIA CONCEPTO DE ESTRUCTURA DE DATOS DINÁMICA ASIGNACIÓN DINÁMICA DE MEMORIA Función malloc() Función calloc() Función realloc() Función free() ARRAYS DINÁMICOS LISTAS Inserción de elementos en una lista Recorrido y búsqueda en una lista Borrado de un elemento en una lista Ejemplo completo de lista enlazada Listas doblemente enlazadas Listas circulares PILAS COLAS ÁRBOLES Árboles binarios Árbol de expresión Árbol binario de búsqueda Borrado de un elemento RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 10. PROGRAMACIÓN AVANZADA RECURSIVIDAD Función factorial Reglas para una función recursiva Tipos de recursividad Ventajas e inconvenientes de la recursividad EL PREPROCESADOR CREACIÓN DE LIBRERÍAS SOCKETS RESUMEN EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS APÉNDICE A. DESARROLLO EN ENTORNO LINUX INTRODUCCIÓN COMPILADOR GCC UTILIDAD MAKE CREACIÓN DE LIBRERÍAS CON LA UTILIDAD AR ENTORNO GRÁFICO ANJUTA IDE APÉNDICE B. GESTIÓN DE PROCESOS INTRODUCCIÓN NOCIONES SOBRE PROCESOS FUNCIONES POSIX PARA LA GESTIÓN DE PROCESOS HILOS O THREADS APÉNDICE C. GUÍA DE ESTILO DE C INTRODUCCIÓN LEGIBILIDAD Y MANTENIMIENTO DEL CÓDIGO Encapsulación y ocultación de la información Espacios en blanco Comentarios Nombres significativos ORGANIZACIÓN DE LAS FUNCIONES Prólogo de la función Argumentos de la función Declaración de variables externas Declaración de variables internas Bloque de código Retorno (return() TIPOS DE DATOS, OPERADORES Y EXPRESIONES Variables Constantes Definición y declaración de variables Formato de los operadores Operadores y expresiones de asignación Expresiones condicionales Prioridad y orden de evaluación SENTENCIAS DE CONTROL DE FLUJO Esquema de las sentencias Sentencias de control de flujo de selección o bifurcación Sentencias de control de flujo de iteración o bucle Tratamiento de excepciones ÍNDICE ALFABÉTICO
Este libro ha sido desarrollado específicamente para que cubra el temario oficial del módulo de Fundamentos de Programación del Ciclo Formativo de Grado Superior Administración de Sistemas Informáticos (ASI). También es una valiosa herramienta para profundizar en el lenguaje C, uno de los más extendidos en el mundo de la informática y cuyo conocimiento es fundamental para adquirir las técnicas básicas de programación. El libro comienza con una extensa visión de los conceptos previos necesarios para abordar el estudio de un lenguaje de programación, para pasar a hacer un recorrido de las características más importantes del lenguaje C: tipos de datos, operadores, sentencias de control de flujo, funciones, punteros... Los últimos capítulos se dedican a aspectos más avanzados del lenguaje: estructuras dinámicas, recursividad, creación de librerías y comunicación a través de sockets. La mayoría de los capítulos contiene problemas resueltos y ejercicios propuestos para que el lector compruebe cómo evoluciona su aprendizaje. Los apéndices constituyen un complemento para ampliar los conocimientos, en ellos se muestra una visión general del uso de este lenguaje bajo Linux y se dan las pautas para la gestión de procesos utilizando Ilamadas POSIX. Además se ofrece una completa guía de estilo para generar un código de calidad.