PRÓLOGO CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA QUÉ ES UN PROGRAMA LENGUAJES DE PROGRAMACIÓN Compiladores Intérpretes ¿QUÉ ES C? HISTORIA DEL LENGUAJE C Lenguaje C++ REALIZACIÓN DE UN PROGRAMA EN C Edición de un programa ¿Qué hace este programa? Guardar el programa escrito en el disco Compilar y ejecutar el programa Biblioteca de funciones Guardar el programa ejecutable en el disco Depurar un programa UN AVANCE SOBRE LA PROGRAMACIÓN CON C Entrada y salida Matrices Sentencias de control Funciones EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 2. ELEMENTOS DEL LENGUAJE C PRESENTACIÓN DE LA SINTAXIS DE C CARACTERES DE C Letras, dígitos y carácter de subrayado Espacios en blanco Caracteres especiales y signos de puntuación Secuencias de escape TIPOS DE DATOS Tipos primitivos char short int long enum Creación de una enumeración float double Ejemplo: tipos de datos Tipos derivados SINÓNIMOS DE UN TIPO LITERALES Literales enteros Literales reales Literales de un solo carácter Literales de cadenas de caracteres IDENTIFICADORES PALABRAS CLAVE COMENTARIOS DECLARACIÓN DE CONSTANTES SIMBÓLICAS Constantes C++ ¿Por qué utilizar constantes? DECLARACIÓN DE UNA VARIABLE Iniciación de una variable EXPRESIONES NUMÉRICAS OPERADORES Operadores aritméticos Operadores de relación Operadores lógicos Operadores unitarios Operadores a nivel de bits Operadores de asignación Operador condicional Otros operadores Operador sizeof Operador coma Operador dirección-de Operador de indirección PRIORIDAD Y ORDEN DE EVALUACIÓN CONVERSIÓN ENTRE TIPOS DE DATOS EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 3. ESTRUCTURA DE UN PROGRAMA ESTRUCTURA DE UN PROGRAMA C Directrices para el preprocesador Directriz de inclusión Directriz de sustitución Definiciones y declaraciones Sentencia simple Sentencia compuesta o bloque Funciones Declaración de una función Definición de una función Llamada a una función Función main Un ejemplo PASANDO ARGUMENTOS A LAS FUNCIONES PROGRAMA C FORMADO POR MÚLTIPLES FICHEROS ÁMBITO DE UNA VARIABLE Variables globales y locales CLASES DE ALMACENAMIENTO DE UNA VARIABLE Calificación de variables globales Calificación de variables locales Calificación de funciones EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 4. ENTRADA Y SALIDA ESTÁNDAR DATOS NUMÉRICOS Y CADENAS DE CARACTERES FLUJOS DE E/S ESTÁNDAR SALIDA CON FORMATO ENTRADA CON FORMATO CARÁCTER FIN DE FICHERO CARÁCTER
Limpiar el buffer de la entrada estándar LEER UN CARÁCTER DE LA ENTRADA ESTÁNDAR ESCRIBIR UN CARÁCTER EN LA SALIDA ESTÁNDAR FUNCIONES getch y getche LEER UNA CADENA DE CARACTERES VALIDAR UN DATO DE ENTRADA REUTILIZAR CÓDIGO LIMPIAR LA PANTALLA EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 5. SENTENCIAS DE CONTROL SENTENCIA if ANIDAMIENTO DE SENTENCIAS if ESTRUCTURA else if SENTENCIA switch SENTENCIA while Bucles anidados SENTENCIA do while SENTENCIA for SENTENCIA break SENTENCIA continue SENTENCIA goto EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 6. TIPOS ESTRUCTURADOS DE DATOS INTRODUCCIÓN A LAS MATRICES MATRICES NUMÉRICAS UNIDIMENSIONALES Definir una matriz Acceder a los elementos de una matriz Trabajar con matrices unidimensionales Iniciar una matriz Matrices asociativas CADENAS DE CARACTERES Leer y escribir una cadena de caracteres Funciones gets y fgets Función puts Trabajar con cadenas de caracteres Funciones de la biblioteca de C TIPO Y TAMAÑO DE UNA MATRIZ MATRICES MULTIDIMENSIONALES Matrices numéricas multidimensionales Matrices de cadenas de caracteres COPIAR MATRICES TRABAJAR CON BLOQUES DE BYTES ESTRUCTURAS Crear una estructura Definir variables de un tipo de estructura Acceso a los miembros de una estructura Miembros que son estructuras Operaciones con estructuras Matrices de estructuras UNIONES Estructuras variables CAMPOS DE BITS EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 7. PUNTEROS CREACIÓN DE PUNTEROS Operadores Importancia del tipo del objeto al que se apunta OPERACIONES CON PUNTEROS Operación de asignación Operaciones aritméticas Comparación de punteros Punteros genéricos Puntero nulo Punteros constantes PUNTEROS Y MATRICES Punteros a cadenas de caracteres MATRICES DE PUNTEROS Punteros a punteros Matriz de punteros a cadenas de caracteres Ordenar matrices de cadenas de caracteres ASIGNACIÓN DINÁMICA DE MEMORIA Funciones para administrar dinámicamente la memoria malloc free Reasignar un bloque de memoria MATRICES DINÁMICAS Matrices dinámicas numéricas Matrices dinámicas de una dimensión Matrices dinámicas de dos dimensiones Matrices dinámicas de cadenas de caracteres PUNTEROS A ESTRUCTURAS PUNTEROS COMO PARÁMETROS EN FUNCIONES DECLARACIONES COMPLEJAS EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 8. MÁS SOBRE FUNCIONES PASAR UNA MATRIZ COMO ARGUMENTO A UNA FUNCIÓN Matrices estáticas Matrices dinámicas PASAR UN PUNTERO COMO ARGUMENTO A UNA FUNCIÓN PASAR UNA ESTRUCTURA A UNA FUNCIÓN DATOS RETORNADOS POR UNA FUNCIÓN Retornar una copia de los datos Retornar un puntero al bloque de datos Retornar la dirección de una variable declarada static ARGUMENTOS EN LA LÍNEA DE ÓRDENES REDIRECCIÓN DE LA ENTRADA Y DE LA SALIDA FUNCIONES RECURSIVAS PUNTEROS A FUNCIONES EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 9. TRABAJAR CON FICHEROS VISIÓN GENERAL DE LOS FLUJOS DE E/S VISIÓN GENERAL DE UN FICHERO ABRIR UN FICHERO fopen freopen CERRAR UN FICHERO fclose MANIPULACIÓN DE ERRORES ferror clearerr feof perror POSICIÓN DEL PUNTERO DE L/E ftell fseek rewind E/S CARÁCTER A CARÁCTER fputc fgetc E/S DE CADENAS DE CARACTERES fputs fgets ENTRADA/SALIDA CON FORMATO fprintf fscanf E/S UTILIZANDO REGISTROS fwrite fread ABRIENDO FICHEROS PARA ACCESO SECUENCIAL Un ejemplo de acceso secuencial ESCRIBIR DATOS EN UNA IMPRESORA Escribir en una impresora USB CONTROL DEL BUFFER ASOCIADO CON UN FLUJO setvbuf fflush FICHEROS TEMPORALES tmpfile ABRIENDO FICHEROS PARA ACCESO ALEATORIO EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 10. EL PREPROCESADOR DE C DIRECTRIZ #define Macros predefinidas El operador # El operador ## DIRECTRIZ #undef DIRECTRIZ #include COMPILACIÓN CONDICIONAL Operador defined CONSTANTE DEFINIDA EN LA ORDEN DE COMPILACIÓN DIRECTRICES #ifdef e #ifndef DIRECTRIZ #line DIRECTRIZ #error UTILIZACIÓN DE FICHEROS DE CABECERA EJERCICIOS RESUELTOS EJERCICIOS PROPUESTOS CAPÍTULO 11. ESTRUCTURAS DINÁMICAS LISTAS LINEALES Listas lineales simplemente enlazadas Operaciones bás
"C es uno de los lenguajes de programación más populares. Permite realizar una programación estructurada sin límite a la creatividad del programador; además, los compiladores C tienen la ventaja de producir programas reducidos y muy rápidos en su ejecución. Por ello, muchos paquetes de software están escritos en C. Puesto que C++ fue desarrollado a partir del lenguaje de programación C, con pocas excepciones incluye a C, de ahí el título de este libro. Esta parte de C incluida en C++ es conocida como C y podría compilarse como C++ sin problemas. No obstante, cuando se utiliza C++ para lo que fue pensado, esto es, para realizar una programación orientada a objetos, los conocimientos nuevos que hay que adquirir son cuantiosos. Este libro es el primero de una colección de tres: 1. C/C++: Curso de programación 2. Programación orientada a objetos con C++ 3. Enciclopedia de C++ Estos cubren el camino que hay que recorrer para llegar a desarrollar aplicaciones orientadas a objetos. El tercer libro incluye a los dos anteriores pero con un nuevo enfoque, ya que está basado exclusivamente en la biblioteca de C++. C/C++: Curso de programación es un libro: - Totalmente actualizado y válido para plataformas Windows, Unix/Linux y Mac OS X. - Con ejemplos claros y sencillos, fáciles de entender, que ilustran los fundamentos de la programación C. - Que le permitirá aprender lógica de programación. - Que le enseñará a trabajar con estructuras estáticas y dinámicas de datos y con ficheros, y a utilizar algoritmos de uso común. - Con el que adquirirá unos elevados conocimientos en esta materia. - Con el que aprenderá a desarrollar aplicaciones. - Y con el que adquirirá la base necesaria para pasar a la programación orientada a objetos con C++."