Editorial | MCGRAW-HILL |
---|---|
Edad | Adultos |
Idioma | Español |
Nivel | . |
Autor | JOYANES AGUILAR LUIS |
ISBN | 9786071514684 |
Peso ( kg ) | 1,628 |
Tipo | Soporte Físico |
Año de edición | 2020 |
Formato | TAPA RUSTICA |
Sinopsis | FUNDAMENTOS DE PROGRAMACIÓN - ALGORITMOS, ESTRUCTURA DE DATOS Y OBJETOS - 5 EDICIÓN INDICE PARTE I ALGORITMOS Y HERRAMIENTAS DE PROGRAMACIÓN Capítulo 1 Introducción a las computadoras y a los lenguajes de programación INTRODUCCIÓN 1.1. El origen de las computadoras y su evolución. 1.2. Las computadoras modernas: una breve taxonomía 1.3. Organización de una computadora. 1.3.1. Memoria central de la computadora. 1.3.2. Memoria caché. 1.3.3. Unidades de medida de memoria 1.3.4. Dispositivos de entrada y salida. 1.3.5. Dispositivos de almacenamiento secundario. 1.3.6. Sistemas de comunicación. 1.4. Software: conceptos básicos y clasificación. 1.4.1. Software de sistema. 1.4.2. Software de aplicaciones 1.4.3. Software propietario. 1.4.4. Software de código abierto. 1.5. Sistema operativo. 1.6. El lenguaje de la computadora. 1.6.1. Representación de la información en las computadoras códigos de caracteres . 1.7. La programación de las computadoras en perspectiva. 1.8. Lenguajes de programación. 1.8.1. Tipos de lenguajes de programación: máquina, ensamblador y de alto nivel. 1.9. Traductores de lenguaje: el proceso de traducción de un programa. 1.9.1. Intérpretes. 1.9.2. Compiladores. 1.9.3. Compiladores versus interpretes 1.9.4. La compilación y sus fases 1.10. Evolución de los lenguajes de programación. 1.11. Paradigmas de programación 1.12. Internet y la Web 1.12.1. Desarrollo de programas web 1.13. Cloud computing computación en la nube como servicio 1.13.1. Software como servicio SaaS 1.13.2. Plataforma como servicio PaaS 1.13.3. Infraestructura como servicio las VIII Contenido 1.14. Internet de las cosas 1.15. Big Data. Los grandes volúmenes de datos. 1.16. Los lenguajes de programación más populares: índice TIOBE 1.17. Nacimiento de la programación moderna: lenguajes de programación de referencia C, C , Java, Python y C RESUMEN Capítulo 2 Metodología de la programación y desarrollo de software. INTRODUCCIÓN 2.1. Fases en la resolución de problemas. 2.1.1. Análisis del problema 2.1.2. Diseño del algoritmo. 2.1.3. Herramientas de programación. 2.1.4. Codificación de un programa 2.1.5. Compilación y ejecución de un programa. 2.1.6. Verificación y depuración de un programa 2.1.7. Documentación y mantenimiento 2.2. Metodología de la programación 2.2.1. Programación modular 2.3. Programación estructurada 2.3.1. Datos locales y datos globales 2.3.2. Técnicas de programación estructurada. 2.3.3. Modelado del mundo real 2.4. Programación orientada a objetos 2.4.1. Abstracción 2.5. Concepto y características de algoritmos 2.5.1. Características de los algoritmos. 2.5.2. Diseño del algoritmo 2.6. Escritura de algoritmos 2.7. Representación gráfica de los algoritmos 2.7.1. Pseudocódigo 2.7.2. Diagramas de flujo 2.7.3. Diagramas de Nassi-Schneiderman N-S 2.8. Herramientas y entornos de desarrollo de programación 2.8.1. Editores de texto 2.8.2. Programa ejecutable 2.8.3. Proceso de compilación ejecución de un programa 2.8.4. Entorno de desarrollo integrado 2.8.5. Panorama de los entornos de programación ACTIVIDADES DE APRENDIZAJE ACTIVIDADES COMPLEMENTARIAS RESUMEN EJERCICIOS Capítulo 3 Estructura general de un programa INTRODUCCIÓN 3.1. Concepto de programa. 3.2. Estructura de un programa. 3.3. Instrucciones y tipos de instrucciones. 3.3.1. Tipos de instrucciones. 3.3.2. Instrucciones de asignación. 3.3.3. Instrucciones de lectura de datos entrada . 3.3.4. Instrucciones de escritura de resultados salida 3.3.5. Instrucciones de bifurcación. 3.4. Elementos básicos de un programa. 3.5. Datos, tipos de datos y operaciones primitivas 3.5.1. Datos numéricos.... 3.5.2. Datos lógicos booleanos 3.5.3. Datos tipo carácter y tipo cadena.. 3.6. Constantes y variables... 3.6.1. Declaración de constantes y variables.. 3.7. Expresiones y operadores 3.7.1. Expresiones aritméticas 3.7.2. Reglas de prioridad... 3.7.3. Expresiones lógicas booleanas ... 3.7.4. Reglas generales de prioridad y asociatividad 3.8. Funciones internas. 3.8.1. Funciones matemáticas de Java. 3.9. Operación de asignación. 3.9.1. Asignación aritmética 3.9.2. Asignación lógica.... 3.9.3. Asignación de cadenas de caracteres 3.9.4. Asignación múltiple. 3.9.5. Conversión de tipo. 3.10. Operadores avanzados 108 3.10.1. Operador condicional ?: C C , Java . 3.10.2. Operador coma. 3.10.3. Operadores especiales: , 3.10.4. Operador sizeof. 3.10.5. Operadores de manipulación de bits bitwise, Java 3.10.6. Prioridad y asociatividad 3.10.7. Conversiones de tipos 3.11. Entrada y salida de información 3.12. Escritura de algoritmos programas.. 3.12.1. Cabecera del programa o algoritmo... 3.12.2. Declaración de variables 3.12.3. Declaración de constantes numéricas.. 3.12.4. Declaración de constantes y variables carácter 3.12.5. Comentarios .... 3.12.6. Estilo de escritura de algoritmos programas. ACTIVIDADES DE PROGRAMACIÓN RESUELTAS. CONCEPTOS CLAVE RESUMEN.. EJERCICIOS Capítulo 4 Flujo de control I: estructuras selectivas INTRODUCCIÓN 4.1. El flujo de control de un programa. 4.2. Estructura secuencial 4.3. Estructuras selectivas 4.4. Alternativa simple si -entonces if-then 4.4.1. Alternativa doble si -entonces-sino if-then-else 4.5. Alternativa múltiple según sea, caso de; switch-case ... 4.6. Estructuras de decisión anidadas en escalera 4.7. La sentencia ir-a goto no recomendable su uso, con excepciones ACTIVIDADES DE PROGRAMACIÓN RESUELTAS. CONCEPTOS CLAVE.. RESUMEN EJERCICIOS. Capítulo 5 Flujo de control II: estructuras repetitivas. INTRODUCCIÓN Contenido 5.1. Estructuras repetitivas 5.2. Estructura mientras "while" 5.2.1. Ejecución de un bucle cero veces. 5.2.2. Bucles infinitos.... 5.2.3. Terminación de bucles con datos de entrada.. 5.3. Estructura hacer-mientras "do-while" ... 5.4. Diferencias entre mientras while y hacer-mientras do-while : una aplicación en C 5.5. Estructura repetir "repeat" 5.6. Estructura desde para "for" ... 5.6.1. Otras representaciones de estructuras repetitivas desde para for 5.6.2. Realización de una estructura desde con estructura mi entras... 5.7. Salidas internas de los bucles .... 5.8. Sentencias de salto interrumpir break y continuar continue 5.8.1. Sentencia interrumpir break ... 5.8.2. Sentencia continuar continue 5.9. Comparación de bucles while, for y do-while: una aplicación en C 5.10. Diseño de bucles lazos .. 5.10.1. Bucles para diseño de sumas y productos.. 5.10.2. Fin de un bucle ... 5.11. Estructuras repetitivas anidadas 5.11.1. Bucles lazos anidados: una aplicación en C 5.12. Sentencias de salto en C , Java y Python: break, continue, return, goto... ACTIVIDADES DE PROGRAMACIÓN RESUELTAS CONCEPTOS CLAVE RESUMEN.. EJERCICIOS REFERENCIAS BIBLIOGRAFICAS.. Capítulo 6 Subprogramas subalgoritmos : funciones. INTRODUCCIÓN 6.1. Introducción a los subalgoritmos o subprogramas.. 6.2. Funciones. 6.2.1. Declaración de funciones.. 6.2.2. Invocación a las funciones 6.3. Procedimientos subrutinas . 6.3.1. Sustitución de argumentos parámetros.. 6.4. Ámbito: variables locales y globales.. 6.5. Comunicación con subprogramas: paso de parámetros... 6.5.1. Paso de parámetros. 6.5.2. Paso por valor .... 6.5.3. Paso por referencia ... 6.5.4. Comparaciones de los métodos de paso de parámetros.. 6.5.5. Síntesis de la transmisión de parámetros. 6.6. Funciones y procedimientos como parámetros.. 6.7. Los efectos laterales ...... 6.7.1. En procedimientos... 6.7.2. En funciones.. 6.8. Recursión recursividad 6.9. Funciones en C C , Java y C 6.10. Ámbito alcance y almacenamiento en C C y Java 6.11. Sobrecarga de funciones en C y Java ... ACTIVIDADES DE PROGRAMACIÓN RESUELTAS CONCEPTOS CLAVE.. RESUMEN EJERCICIOS PARTE II ESTRUCTURA DE DATOS Capítulo 7 Estructuras de datos I arrays -arreglos- y estructuras . INTRODUCCIÓN.. 7.1. Introducción a las estructuras de datos. 7.2. Arrays arreglos unidimensionales: los vectores. 7.3. Operaciones con vectores. 7.3.1. Asignación... 7.3.2. Lectura escritura de datos... 7.3.3. Acceso secuencial al vector recorrido .. 7.3.4. Actualización de un vector.. 7.4. Arrays arreglos de varias dimensiones 7.4.1. Arrays bidimensionales tablas matrices 7.5. Arrays arreglos multidimensionales. 7.6. Almacenamiento de arrays en memoria 7.6.1. Almacenamiento de un vector. 7.6.2. Almacenamiento de arrays multidimensionales.. 7.7. Estructuras versus registros.. 7.7.1. Registros .... 7.8. Arrays arreglos de estructuras.. 7.9. Uniones... 7.9.1. Unión versus estructura.. 7.10. Enumeraciones ...... ACTIVIDADES DE PROGRAMACIÓN RESUELTAS CONCEPTOS CLAVE. RESUMEN. EJERCICIOS Capítulo 8 Las cadenas de caracteres INTRODUCCIÓN 8.1. Introducción 8.2. El juego de caracteres 8.2.1. Código ASCIl. 8.2.2. Código EBCDIC 8.2.3. Código universal Unicode para Internet 8.2.4. Secuencias de escape 8.3. Cadena de caracteres.. 8.4. Datos tipo carácter 8.4.1. Constantes 8.4.2. Variables. 8.4.3. Instrucciones básicas con cadenas.. 8.5. Operaciones con cadenas... 8.5.1. Cálculo de la longitud de una cadena. 8.5.2. Comparación.. 8.5.3. Concatenación. 8.5.4. Subcadenas. 8.5.5. Búsqueda. 8.6. Otras funciones de cadenas 8.6.1. Insertar. 8.6.2. Borrar.. 8.6.3. Cambiar 8.6.4. Conversión de cadenas números ACTIVIDADES DE PROGRAMACIÓN RESUELTAS... CONCEPTOS CLAVE. RESUMEN.. EJERCICIOS.. Capítulo 9 Archivos ficheros INTRODUCCIÓN 9.1. Archivos y flujos stream : la jerarquía de datos. 9.1.1. Campos... 9.1.2. Registros 9.1.3. Archivos ficheros 9.1.4. Bases de datos.. 9.1.5. Estructura jerárquica. 9.1.6. Jerarquía de datos ... 9.2. Conceptos y definiciones: terminología 9.2.1. Clave indicativo 9.2.2. Registro físico o bloque 9.2.3. Factor de bloqueo.. 9.3. Soportes secuenciales y direccionables. 9.4. Organización de archivos.. 9.4.1. Organización secuencial 9.4.2. Organización directa.. 9.4.3. Organización secuencial indexada 9.5. Operaciones sobre archivos.. 9.5.1. Creación de un archivo. 9.5.2. Consulta de un archivo... 9.5.3. Actualización de un archivo 9.5.4. Clasificación de un archivo.. 9.5.5. Reorganización de un archivo. 9.5.6. Destrucción de un archivo... 9.5.7. Reunión, fusión de un archivo.. 9.5.8. Rotura estallido de un archivo 9.6. Gestión de archivos .. 9.6.1. Crear un archivo 9.6.2. Abrir un archivo 9.6.3. Cerrar archivos 9.6.4. Borrar archivos.. 9.7. Flujos 9.7.1. Tipos de flujos.. 9.7.2. Flujos en C 9.7.3. Flujos en Java 9.7.4. Consideraciones prácticas en Java y C 9.8. Mantenimiento de archivos 9.8.1. Operaciones sobre registros 9.9. Procesamiento de archivos secuenciales algoritmos 9.9.1. Creación. 9.9.2. Consulta 9.9.3. Actualización . 9.10. Procesamiento de archivos directos algoritmos 9.10.1. Operaciones con archivos directos... 9.10.2. Clave-dirección 9.10.3. Tratamiento de las colisiones. 9.10.4. Acceso a los archivos directos mediante indexación.. 9.11. Procesamiento de archivos secuenciales indexados. 9.12. Tipos de archivos: consideraciones prácticas en C C y Java 9.12.1. Archivos de texto.. 9.12.2. Archivos binarios 9.12.3. Lectura y escritura de archivos. ACTIVIDADES DE PROGRAMACIÓN RESUELTAS CONCEPTOS CLAVE RESUMEN.. EJERCICIOS Capítulo 10 Ordenación, búsqueda e intercalación.. INTRODUCCION 10.1. Introducción 10.2. Ordenación.. 10.2.1. Método de intercambio o de burbuja 10.2.2. Ordenación por inserción 10.2.3. Ordenación por selección.. 10.2.4. Método de Shell 10.2.5. Método de ordenación rápida quicksort . 10.3. Búsqueda .. 10.3.1. Búsqueda secuencial. 10.3.2. Búsqueda binaria. 10.3.3. Búsqueda mediante transformación de claves hashing . 10.3.3.1. Métodos de transformación de claves.. 10.3.3.2. Colisiones. 10.4. Intercalación... ACTIVIDADES DE PROGRAMACIÓN RESUELTAS CONCEPTOS CLAVE RESUMEN.... EJERCICIOS Capítulo 11 Ordenación, búsqueda y fusión externa archivos INTRODUCCIÓN 11.1. Introducción ... 11.2. Archivos ordenados. 11.3. Fusión de archivos. 11.4. Partición de archivos ...... 11.4.1. Clasificación interna.. 11.4.2. Partición por contenido... 11.4.3. Selección por sustitución 11.4.4. Partición por secuencias 11.5. Clasificación de archivos. 11.5.1. Clasificación por mezcla directa. 11.5.2. Clasificación por mezcla natural 11.5.3. Clasificación por mezcla de secuencias equilibradas . ACTIVIDADES DE PROGRAMACIÓN RESUELTAS CONCEPTOS CLAVE RESUMEN.. EJERCICIOS Capítulo 12 Estructuras dinámicas lineales de datos pilas, colas y listas enlazadas INTRODUCCION 12.1. Introducción a las estructuras de datos. 12.1.1. Estructuras dinámicas de datos. 12.2. Listas 12.3. Listas enlazadas. 12.4. Procesamiento de listas enlazadas 12.4.1. Implementación de listas enlazadas con punteros ... 12.4.2. Implementación de listas enlazadas con arrays arreglos 12.5. Listas circulares 12.6. Listas doblemente enlazadas 12.6.1. Inserción . 12.6.2. Eliminación. 12.7.Pilas. 12.7.1. Aplicaciones de las pilas. 12.8. Colas. 12.8.1. Representación de las colas 12.8.2. Aprovechamiento de la memoria 12.9. Doble cola.... ACTIVIDADES DE PROGRAMACIÓN RESUELTAS. CONCEPTOS CLAVE.. RESUMEN.. EJERCICIOS.. Capítulo 13 Estructura de datos no lineales árboles y grafos INTRODUCCIÓN.. 13.1. Introducción 13.2. Árboles 13.2.1. Terminología y representación de un árbol general 13.3. Árbol binario. 13.3.1. Terminología de los árboles binarios.. 13.3.2. Árboles binarios completos ... 13.3.3. Conversión de un árbol general en árbol binario. 13.3.4. Representación de los árboles binarios .... 13.3.4.1. Representación por punteros ... 13.3.4.2. Representación por listas enlazadas.. 13.3.4.3. Representación por arrays... 13.3.5. Recorrido de un árbol binario.. 13.4. Árbol binario de búsqueda .... 13.4.1. Búsqueda de un elemento. 13.4.2. Insertar un elemento. 13.4.3. Eliminación de un elemento.. 13.5. Grafos 13.5.1. Terminología de grafos. 13.5.2. Representación de grafos ..... 13.5.2.1. Matriz de adyacencia... 13.5.2.2. Lista de adyacencia..... ACTIVIDADES DE PROGRAMACIÓN RESUELTAS.. CONCEPTOS CLAVE.. RESUMEN.. EJERCICIOS Capítulo 14 Recursividad INTRODUCCIÓN 14.1. La naturaleza de la recursividad 14.2. Recursividad directa e indirecta.. 14.2.1. Recursividad indirecta.. 14.2.2. Condición de terminación de la recursión ... 14.3. Recursión versus iteración... 14.4. Recursión infinita. 14.5. Resolución de problemas complejos con recursividad 14.5.1. Torres de Hanoi... 14.5.2.Búsqueda binaria recursiva ..... 14.5.3. Ordenación rápida quicksort ... 14.5.3.1. Algoritmo quicksort. 14.5.4. Ordenación mergesort... 14.5.4.1. Algoritmo mergesort en Java CONCEPTOS CLAVE.. RESUMEN.... EJERCICIOS. PROBLEMAS.. PARTE III PROGRAMACIÓN ORIENTADA A OBJETOS Y UML 2.5.1.. Capítulo 15 Tipos abstractos de datos, objetos y modelado con UML 2.5.1 INTRODUCCIÓN .. 15.1. Programación estructurada procedimental ... 15.1.1. Limitaciones de la programación estructurada.... 15.1.2. Modelado de objetos del mundo real: el camino a los objetos 15.2. Programación orientada a objetos 15.2.1. Objetos 15.2.2. Tipos abstractos de datos: CLASES. 15.3. Modelado e identificación de objetos . 15.4. Propiedades fundamentales de orientación a objetos. 15.4.1. Abstracción .... 15.4.2. La abstracción en el software ... 15.4.3. Encapsulamiento y ocultación de datos. 15.4.4. Herencia... 15.4.5. Reutilización o reusabilidad 15.4.6. Polimorfismo .. 15.5. Modelado de aplicaciones: UML.. 15.5.1. Lenguaje de modelado .... 15.5.2. UML: el Lenguaje Unificado de Modelado.. 15.6. Modelado y modelos... 15.7. Diagramas de UML 2.5.1... 15.8. Bloques de construcción componentes de UML 2.5.1 ... 15.8.1. Elementos estructurales .. 15.8.2. Elementos de comportamiento. 15.8.3. Elementos de agrupación.. 15.9. Especificaciones de UML. 15.10. Historia de UML.. CONCEPTOS CLAVE. RESUMEN... ANEXO: TERMINOLOGÍA DE ORIENTACIÓN A OBJETOS EJERCICIOS Capítulo 16 Diseño de clases y objetos: representaciones gráficas en UML. INTRODUCCION 16.1. Diseño y representación gráfica de objetos en UML 16.1.1. Representación gráfica en UML. 16.1.2. Características de los objetos. 16.1.3. Estado . 16.1.4. Múltiples instancias de un objeto 16.1.5. Evolución de un objeto 16.1.6. Comportamiento. 16.1.7. Identidad... 16.1.8. Los mensajes.. 16.1.9. Responsabilidad y restricciones... 16.2. Diseño y representación gráfica de clases en UML 16.2.1. Representación gráfica de una clase 16.2.2. Declaración de una clase. 16.2.3. Reglas de visibilidad 16.2.4. Sintaxis. 16.3. Declaración de objetos de clases.. 16.3.1. Acceso a miembros de la clase: encapsulamiento 16.3.2. Declaración de métodos. 16.3.3. Tipos de métodos.. 16.4. Constructores .. 16.4.1. Constructor por defecto predeterminado 16.5. Destructores 16.6. Implementación de clases en C . 16.6.1. Archivos de cabecera y de clases. 16.6.2. Clases compuestas. 16.7. Recolección de basura.. 16.7.1. El método finalize CONCEPTOS CLAVE RESUMEN. EJERCICIOS LECTURAS RECOMENDADAS Capítulo 17 Relaciones entre clases: delegaciones, asociaciones, agregaciones, herencia. INTRODUCCION 17.1. Relaciones entre clases 17.2. Dependencia. 17.3. Asociación . 17.3.1. Multiplicidad 17.3.2. Restricciones en asociaciones.. 17.3.3. Asociación cualificada.. 17.3.4. Asociaciones reflexivas... 17.3.5. Diagrama de objetos.. 17.3.6. Clases de asociación. 17.3.7. Restricciones en asociaciones 17.4. Agregación .......... 17.4.1. Composición... 17.5. Jerarquía de clases: generalización y especialización.. 17.5.1. Jerarquías de generalización especialización.. 17.6. Herencia: clases derivadas.. 17.6.1. Herencia simple.. 17.6.2. Herencia múltiple. 17.6.3. Niveles de herencia... 17.6.4. Declaración de una clase derivada .. 17.6.5. Consideraciones de diseño. 17.7. Accesibilidad y visibilidad en herencia... 17.71. Herencia pública.. 17.7.2. Herencia privada. 17.7.3. Herencia protegida... 17.8. Un caso de estudio especial: herencia múltiple 17.8.1. Características de la herencia múltiple. 17.9. Clases abstractas... 17.9.1. Operaciones abstractas.. CONCEPTOS CLAVE... RESUMEN EJERCICIOS PARTE IV METODOLOGÍA DE LA PROGRAMACIÓN Y DESARROLLO DE SOFTWARE Capítulo 18 Ingeniería de software y metodología de la programación.. INTRODUCCIÓN .. 18.1. Introducción a la ingeniería de software: técnicas y modelos 18.1.1. Software propietario .. 18.1.2. Software abierto: código abierto open source ... 18.2. Proceso de desarrollo de software. 18.2.1. Actividades del proceso de desarrollo de software.. 18.3. Ciclo de vida del desarrollo de software... 18.4. Modelos de procesos de desarrollo de software... 18.4.1. Métodos ágiles.. 18.4.2. Prototipado. 18.5. Ciclo de vida del software "en cascada" waterfall 18.5.1. Modelo waterfall de Sommerville.. 18.5.2. Modelo de cascada waterfall de Pressman.. 18.5.3. Modelo tradicional de ciclo de vida del software "en cascada" 18.6. Metodología de la programación: análisis de especificaciones y requerimientos. 18.7. Diseño . 18.7.1. Diseño de algoritmos 18.8. Implementación codificación 18.9. Pruebas e integración.. 18.9.1 Verificación 18.9.2. Técnicas de pruebas 18.9.3. Revisión general de validación y verificación de programas 18.10. Depuración de programas 18.10.1. Localización y reparación de errores.. 18.10.2. Depuración de sentencias si -entonces-sino.. 18.10.3. Los equipos de programación.. 18.10.4. El depurador 18.11. Mantenimiento ... 18.11.1. La obsolescencia: programas obsoletos. 18.11.2. Iteración y evolución del software. 18.12. Documentación 18.12.1. Manual del usuario. 18.12.2. Manual de mantenimiento documentación para programadores 18.12.3. Reglas de documentación.. 18.13. Depuración. 18.13.1. Localización y reparación de errores. 18.13.2. Depuración de sentencias si -entonces-si no.. 18.13.3. Los equipos de programación. 18.14. Diseño de algoritmos.. 18.15. Eficiencia . 18.15.1. Eficiencia versus legibilidad claridad 18.16. Portabilidad. CONCEPTOS CLAVE RESUMEN Bibliografía y recursos de programación |
Cantidad de páginas | 744 |
Fecha Ingreso | 28-02-2025 |
Duración | . |
---|