DESCRIPCION
Esta obra estudia los principios de la programación estructurada y de la ingeniería de software. Se incluyen consejos o recomendaciones relativos a errores comunes, a prácticas correctas en la programación, movilidad, desempeño e ingeniería de software. Además, se muestran las características de C dentro del contexto de la correcta estructuración y la debida documentación. Una explicación completa de cómo funcionan los programas en C y ejemplos de su ejecución, así como la utilización de ANSI C, completan la obra. Se incluyen numerosos ejercicios de C++ y un apéndice con análisis de las diversas funciones de que se dispone en biblioteca estándar de C.
CONTENIDO
Capitulo 1. Conceptos de computación.
1.1. Introducción
1.2. ¿Qué es una computadora?
1.3. Organización de la computadora
1.4. Procesamiento por lotes, programación múltiple y tiempo compartido
1.5. Computación personal, computación distribuida y computación cliente / servidor
1.6. Lenguajes máquina, lenguajes ensambladores y lenguajes de alto nivel
1.7. La historia de C
1.8. La biblioteca estándar de C
1.9. Otros lenguajes de alto nivel
1.10. Programación estructurada
1.11. Los fundamentos del entorno de C
1.12. Notas gnerales sobre C y este libro
1.13. C concurrente
1.14. Programación orientada a objetos y C++
Capitulo 2. Introducción a la programación en C.
2.1. Introducción
2.2. Un programa simple en C: imprimir una línea de texto
2.3. Otro programa simple en C: sumar dos enteros
2.4. Conceptos de memoria
2.5. Aritmética en C
2.6. Toma de desiciones: operadores de igualdad y relacionales
Capitulo 3. Desarrollo de programas estructurados.
3.1. Introducción
3.2. Algoritmos
3.3. Pseudocódigos
3.4. Estructuras de control
3.5. La estructura de selección IF.
3.6. La estructura de selección If / Else
3.7. La estructura de repetición While
3.8. Cómo formular algoritmos: Estudio de caso 1 (repetición controlada por contador)
3.9. Cómo formular algoritmos con refinamiento descendente paso a paso: Estudio de caso 2 (repetición controlada por centinela)
3.10. Como formular algoritmos con refinamiento descendente paso a paso: Estudio de caso 3 (estructuras de control anidadas)
3.11. Operadores de asignación
3.12. Operadores incrementales y decrementales
Capitulo 4. Control del programa.
4.1. Introducción
4.2. Lo esencial de la repetición
4.3. Repetición controlada por contador
4.4. La estructura de repetición for
4.5. La estructura for: Notas y observaciones
4.6. Ejemplos utilizando la estructura for
4.7. La estructura de selección múltiple Switch
4.8. La estructura de repetición do/while
4.9. Los enunciados break y continue
4.10. Operadores lógicos
4.11. Confusión entre los operadores de igualdad (==) y de asignación (=)
4.12. Resumen de programación estructurada
Capitulo 5. Funciones.
5.1. Introducción
5.2. Módulos de programa en C
5.3. Funciones matemáticas de biblioteca
5.4. Funciones
5.5. Definiciones de función
5.6. Prototipo de funciones
5.7. Archivos de cabecera
5.8. Cómo llamar funciones: llamada por valor y referencia
5.9. Generación de números aleatorios
5.10. Ejemplo: un juego de azar
5.11. Clases de almacenamientos
5.12. Reglas de alcance
5.13. Recursión
5.14. Ejemplo utilizando recursión: la serie Fibonacci
5.15. Recursión en comparación con iteración
Capitulo 6. Arreglos.
6.1. Introducción
6.2. Arreglos
6.3. Cómo declarar arreglos
6.4. Ejemplos utilizando arreglos
6.5. Cómo pasar arreglos a funciones
6.6. Cómo ordenar arreglos
6.7. Estudio de caso: Cómo calcular el promedio, la mediana y el modo utilizando arreglos
6.8. Búsqueda en arreglos
6.9. Arreglos con múltiples subíndices
Capitulo 7. Punteros.
7.1. Introducción
7.2. Declaraciones e inicialización de variables de apuntadores
7.3. Operadores de apuntador
7.4. Cómo llamar funciones por referencia
7.5. Cómo usar el calificador const con apuntadores
7.6. Ordenamiento de tipo burbuja utilizando llamadas por referencia
7.7. Expresiones de punteros y aritmética de apuntadores
7.8. Relación entre apuntadores y arreglos
7.9. Arreglos de apuntadores
7.10. estudio de caso: simulación de barajar y repartir cartas
7.11. Apuntadores a funciones
Capitulo 8. Caracteres y cadenas.
8.1. Introducción
8.2. Fundamentos de cadenas y caracteres
8.3. Biblioteca de manejo de caracteres
8.4. Funciones de conversión de cadenas
8.5. Funciones de la biblioteca estándar en entradas / salidas
8.6. Funciones de manipulación de cadenas de la biblioteca de manejo de cadenas
8.7. Funciones de comparación de la biblioteca de manejo de cadenas
8.8. funciones de búsqueda de la biblioteca de manejo de cadenas
8.9. Funciones de memoria de la biblioteca de manejo de cadenas
8.10. Otras funciones de la biblioteca de manejo de cadenas
Capitulo 9. Entrada/ salida con formato.
9.1. Introducción
9.2. Flujos
9.3. Salida con formato mediante printf
9.4. Cómo imprimir enteros
9.5. Cómo imprimir números de punto flotante
9.6. Cómo imprimir cadenas y caracteres
9.7. Otros especificadores de conversión
9.8. Cómo imprimir con anchos de campo y precisiones
9.9. Uso de banderas en la cadena de control de formato printf
9.10. Cómo imprimir literales y secuencias de escape
9.11. Formato de entrada con scanf
Capitulo 10. Estructuras, uniones, manipulaciones de bits y enumeraciones.
10.1. Introducción
10.2. Definiciones de estructura
10.3. Cómo inicializar estructuras
10.4. Cómo tener acceso a miembros de estructuras
10.5. Cómo utilizar estructuras con funciones
10.6. Typedef
10.7. Ejemplo: Simulación de barajar y distribuir cartas de alto rendimiento
10.8. Uniones
10.9. Operadores a nivel de bits
10.10. Campos de bits
10.11. Constantes de enumeración
Capitulo 11. Procesamiento de archivos.
11.1. Introducción
11.2. La jerarquía de datos
11.3. Archivos y flujos
11.4. Cómo crear un archivo de acceso secuencial
11.5. Cómo leer datos de un archivo de acceso secuencial
11.6. Archivos de acceso directo
11.7. Cómo crear un archivo de acceso directo
11.8. Cómo escribir datos direc tamente a un archivo de acceso directo
11.9. Cómo leer datos directamente de un archivo de acceso directo
11.10. Estudio de caso: Un programa de procesamiento de transacciones
Capitulo 12. Estructuras de datos.
12.1. Introducción
12.2. Estructuras autoreferenciales
12.3. Asignación dinámica de memoria
12.4. Listas enlazadas
12.5. Pilas
12.6. Colas de espera
12.7. Arboles
Capitulo 13. El preprocesador.
13.1. Introducción
13.2. La directiva de preprocesador #include
13.3. La directiva de preprocesador #define: constantes simbólicas
13.4. La directiva de preprocesador #define macros
13.5. Compilación condicional
13.6. Las directivas de preprocesador #error y #pragma
13.7. Los operadores # y ##
13.8. Números de línea
13.9. Constantes simbólicas predefinidas
13.10. Asertos
Capitulo 14. Temas avanzados.
14.1. Introducción
14.2. Cómo redirigir entradas / salidas en sistemas UNIX y DOS
14.3. Listas de argumentos de longitud variable
14.4. Cómo utilizar argumentos en línea de comando
14.5. Notas sobre la compilación de programas con varios archivos fuente
14.6. Terminación de programas mediante Exit y Atexit
14.7. El calificador de tipo volátil
14.8. Sufijos para constantes de enteras y punto flotante
14.9. Más sobre archivos
14.10. Manejo de señales
14.11. Asignación dinámica de memoria: funciones calloc y realloc
14.12. La bifurcación incondicional: Goto
Capitulo 15. C++ como un “mejor C”.
15.1. Introducción
15.2. Comentarios de una sola línea de C++
15.3. Flujo de entrada / salida de C++
15.4. Declaraciones en C++
15.5. Cómo crear nuevo tipos de datos en C++
15.6. Prototipos de funciones y verificación de tipo
15. 7. Funciones en línea
15.8. Parámetros de referencia
15.9. El calificador Const
15.10. Asignación dinámica de memoria mediante nex y delete
15.11. Argumentos por omisión
15.12. Operador de resolución de alcance unario
15.13. Homonimia de funciones
15.14. especificaciones de enlace
15.15. Plantillas de función
Capitulo 16. Clases y abstracción de datos.
16.1. Introducción
16.2. Definiciones de estructuras
16.3. Cómo tener acceso a miembros de estructuras
16.4. Cómo poner en práctica mediante un estruct un tipo Time definido por el usuario
16.5. Cómo implantar un tipo de dato abstracto Time con una clase
16.6. Alcance de clase y acceso a miembros de clase
16.7. Cómo separar el interfaz de una puesta en práctica
16.8. Cómo controlar el acceso a miembros
16.9. Funciones de acceso y funciones de utileria
16.10. Cómo inicializar objetos de clase: constructores
16.11. Cómo utilizar argumentos por omisión con los constructores
16.12. Cómo utilizar destructores
16.13. Cuándo son llamados los destructores y los constructores
16.14. Cómo utilizar miembros de datos y funciones miembro
16.15. Una trampa sutil: cómo regresar una referencia a un miembro de datos privado
16.16. Asignación por omisión en copia a nivel de miembro
16.17. Reutilización del software
Capitulo 17. Clases: parte II.
17.1. Introducción
17.2. Objetos constantes y funciones de miembro const
17.3. Composición: clases como miembros de otras clases
17.4. Funciones amigo y clases amigo
17.5. Cómo utilizar el apuntador this
17.6. Asignación dinámica de memoria mediante los operadores nex y delete
17.7. Miembros de clase estáticos
17.8. Abstracción de datos y ocultamiento de información
17.9. Clases contenedor e iteradores
17.10. Clases plantilla
Capitulo 18. Homonimia de operadores.
18.1. Introducción
18.2. Fundamentos de la homonimia de operadores
18.3. restricciones sobre la homonimia de operadores
18.4. Funciones operador como miembros de clase en comparación con funciones aigo
18.5. cómo hacer la homonimia de operadores de inserción de flujo y de extracción de flujo
18.6. Homonimia de operadores unarios
18.7. Homonimia de operadores binarios
18.8. Estudio de caso: una clase de Array
18.9. Conversión entre tipos
18.10. Estudio de caso: una clase de String
18.11. Homonimia de ++ y –
18.12. Estudio de caso: una clase de Date
Capitulo 19. Herencia.
19.1. Introducción
19.2. Clases base y clases derivadas
19.3. Miembros protegidos
19.4. Cómo hacer la conversión explícita (cast) de apuntadores de clase base a apuntadores de clase derivada
19.5. Cómo utilizar funciones miembro
19.6. Cómo redefinir los miembros de clase base en una clase derivada
19.7. Clases base públicas, protegidas y privadas
19.8. Clases base directas y clases base indirecta
19.9. Cómo utilizar constructores y destructores en clase derivadas
19.10. Conversión implícita de objeto de clase derivada a objetos de clase base
19.11. Ingenieria de software con herencia
19.12. Composición en comparación con herencia
19.13. Relaciones “utiliza un” y “conoce un”
19.14. Estudio de caso: Point, Cicrcle, Cyclinder
19.15. Herencia múltiple
Capitulo 20. Funciones virtuales y polimorfismo.
20.1. Introducción
20.2. Campos de tipo y enunciado switch
20.3. Funciones virtuales
20.4. Clases base abstractas y clases concretas
20.5. Polimorfismo
20.6. Estudio de caso: un sistema de nómina utilizando polimorfismo
20.7. Clases nuevas y ligadura dinámica
20.8. Destructores virtuales
20.9. Estudio de caso: cómo heredar interfaz y puesta en práctica
Capitulo 21. Entrada/salida de flujo C++.
21.1. Introducción
21.2. Flujos
21.3. Salida de flujos
21.4. Entrada de flujo
21.5. Entrada / salida sin formato mediante read, gcount y write
21.6. Manipuladores de flujo
21.7. Estados de formato de flujo
21.8. Estados de errores de flujo
21.9. Entradas / salidas de tipos definidos por usuario
21.10. Cómo ligar un flujo de salida con un flujo de entrada
DATOS TECNICOS
Título: Como Programar en C/C++
Autor: H.M. Deitel y P.J. Deitel
Idioma: Español
Edición: Segunda
Páginas: 1072
Formato: .pdf
Peso : 45 Mb
Compresor: WinRar
0 comentarios