Amazon cover image
Image from Amazon.com
Image from Google Jackets

Programación en C, C++, Java y UML.

By: Contributor(s): Language: spa. Publication details: México McGraw-Hill 2014Edition: Segunda EdiciónDescription: xxix, 767 páginas; fig, tablasISBN:
  • 9786071512123
Subject(s): DDC classification:
  • 005.133 J88
Contents:
PRÓLOGO xv PARTE I Resolución de problemas con software 1 CAPÍTULO 1 Fundamentos de computadoras y de lenguajes de programación 2 Introducción 2 1.1 Las computadoras en perspectiva 3 Generaciones de computadoras 3 1.2 Las computadoras modernas: una breve taxonomía 5 1.3 Estructura de una computadora 6 1.4 Hardware 7 Unidad central de proceso (CPU) 8 Memoria de la computadora 9 Dispositivos de entrada y salida 12 Dispositivos de almacenamiento secundario 12 Dispositivos de comunicación 13 1.5 Software: conceptos básicos y clasificación 13 Software de sistema 14 Software de aplicaciones 14 1.6 Sistema operativo 15 1.7 El lenguaje de la computadora 17 Representación de la información en las computadoras (códigos de caracteres) 18 Los lenguajes de programación ensambladores y de alto nivel 18 El proceso de programación 20 1.8 Internet y la Web 21 La revolución Web 2.0 22 Social Media 22 Desarrollo de programas web 23 La Web Semántica y la Web 3.0 23 1.9 Cloud computing (computación en la nube) 23 Software como servicio (SaaS) 24 1.10 Movilidad: tecnologías, redes e internet móvil 24 Redes inalámbricas 24 Redes móviles 25 Sistemas operativos móviles 25 Aplicaciones móviles 25 1.11 Geolocalización y realidad aumentada 26 ¿Qué es la realidad aumentada? 26 1.12 Internet de las cosas 26 1.13 Big data. Los grandes volúmenes de datos 27 1.14 Lenguajes de programación 27 Traductores de lenguaje: el proceso de traducción de un programa 29 La compilación y sus fases 29 1-15 Evolución de los lenguajes de programación 31 1.16 Paradigmas de programación 32 Lenguajes imperativos (procedimentales) 32 Lenguajes declarativos 32 Lenguajes orientados a objetos 33 Resumen 33 CAPÍTULO 2 Algoritmos, programas y metodología de la programación 34 Introducción 34 2.1 Resolución de problemas con computadoras: fases 34 Análisis del problema 35 Diseño del problema 36 Herramientas gráficas y alfanuméricas 37 Codificación de un programa 39 Compilación y ejecución de un programa 40 Verificación y depuración de un programa 40 Mantenimiento y documentación 42 2.2 Algoritmo: concepto y propiedades 42 Características de los algoritmos 43 2.3 Diseño de algoritmos 44 2.4 Escritura de algoritmos 45 2.5 Representación gráfica de los algoritmos 47 Pseudocódigo 47 Diagramas de flujo 48 Diagramas de Nassi-Schneiderman (N-S) 57 2.6 Metodología de la programación 58 Programación modular 58 Programación estructurada 58 Programación orientada a objetos 60 2.7 Herramientas de programación 61 Editores de texto 61 Programa ejecutable 62 Proceso de compilación/ejecución de un programa 62 Resumen 64 Ejercicios 64 Actividades de aprendizaje 65 Actividades complementarias 66 PARTE II Programación en C 67 CAPÍTULO 3 El lenguaje C: elementos básicos 68 Introducción 68 3.1 Estructura general de un programa en C 68 Directivas del preprocesador 70 Declaraciones globales 71 Función main () 72 Funciones definidas por el usuario 72 Comentarios 74 3.2 Creación de un programa 75 3.3 El proceso de ejecución de un programa en C 76 3.4 Depuración de un programa en C 79 Errores de sintaxis 79 Errores lógicos 79 Errores de regresión 80 Mensajes de error 80 Errores en tiempo de ejecución 80 3.5 Pruebas 81 3.6 Los elementos de un programa en C 81 Tokens (elementos léxicos de los programas) 82 Identificadores 82 Palabras reservadas 82 Comentarios 83 Signos de puntuación y separadores 83 Archivos de cabecera 83 3.7 Tipos de datos en C 83 Enteros (int) 84 Tipos de coma flotante (float/double) 85 Caracteres (char) 86 3.8 El tipo de dato lógico 87 Escritura de valores lógicos 88 3.9 Constantes 88 Constantes literales 88 Constantes definidas (simbólicas) 91 Constantes enumeradas 91 Constantes declaradas const y volatile 91 3.10 Variables 92 Declaración 93 Inicialización de variables 94 Declaración o definición 95 Duración de una variable 95 Variables locales 95 Variables globales 96 3.11 Entradas y salidas 97 Salida 97 Entrada 99 Salida de cadenas de caracteres 100 Entrada de cadenas de caracteres 100 Resumen 101 Ejercicios 102 CAPÍTULO 4 Operadores y expresiones 103 Introducción 103 Operador de asignación 104 Operadores aritméticos 105 Asociatividad 107 Uso de paréntesis 107 Operadores de incrementación y de incrementación 108 Operadores relacionales 111 Operadores lógicos 112 Asignaciones booleanas (lógicas) 114 Operador condicional? 115 4.8 Operador coma 116 4.9 Operadores especiales: ( ), [ ] 116 El operador ( ) 116 El operador [ ] 116 4.10 Operador sizeof 117 4.11 Conversiones de tipos 118 Conversión implícita 118 Reglas 118 Conversión explicita 118 4.12 Prioridad y asociatividad 119 Resumen 120 Ejercicios 120 Problemas 121 CAPÍTULO 5 Estructuras de selección: sentencias i f y switch 123 Introducción 123 5.1 Estructuras de control 123 5.2 La sentencia i f 124 5.3 Sentencia i f de dos opciones: i f-else 126 5.4 Sentencias i f-else anidadas 129 Sangría en las sentencias i f anidadas 130 Comparación de sentencias i f anidadas y secuencias de sentencias i f 131 5.5 Sentencia de control switch 132 Caso particular de case 136 Uso de sentencias switch en menús 137 5.6 Expresiones condicionales: el operador? 137 5.7 Evaluación en cortocircuito de expresiones lógicas 138 5.8 Puesta a punto de programas 139 Estilo y diseño 139 5.9 Errores frecuentes de programación 140 Resumen 142 Ejercicios 142 Problemas 144 CAPÍTULO 6 Estructuras de control: bucles 145 Introducción 145 6.1 Sentencia while 145 Operadores de incremento y decremento (+ +, —) 148 Terminaciones anormales de un bucle (c/c/o llave) 149 Diseño eficiente de bucles 149 Bucles while con cero iteraciones 150 Bucles controlados por centinelas 150 Bucles controlados por indicadores (banderas) 151 La sentencia break en los bucles 152 Bucles while (true) 153 6.2 Repetición: el bucle for 154 Diferentes usos de bucles for 158 6.3 Precauciones en el uso de for 159 Bucles infinitos 160 Los bucles for vacíos 161 Sentencias nulas en bucles for 161 Sentencias break y continue 162 6.4 Repetición: el bucle do-while 163 Diferencias entre while y do-while 164 6.5 Comparación de bucles while,for y do-while 165 6.6 Diseño de bucles 165 Final de un bucle 166 Bucles for vacíos 167 6.7 Bucles anidados 168 6.8 Enumeraciones 170 Resumen 172 Ejercicios 172 Problemas 174 CAPÍTULO 7 Funciones y recursividad 176 Introducción 176 7.1 Concepto de función 177 7.2 Estructura de una función 178 Nombre de una función 179 Tipo de dato de retorno 180 Resultados de una función 180 Llamada a una función 181 7.3 Prototipos de las funciones 184 Prototipos con un número no especificado de para metros 186 7.4 Parámetros de la función 187 Paso de parámetros por valor 188 Paso de parámetros por referencia 189 Diferencias entre paso de variables por valor y por referencia 189 Parámetros const de una función 191 7.5 Funciones en línea, macros con argumentos 191 Creación de macros con argumentos 193 7.6 Ámbito (alcance) de una variable 194 Ámbito del programa 194 Ámbito del archivo fuente 195 Ámbito de una función 195 Ámbito de bloque 195 Variables locales 196 7.7 Clases de almacenamiento 196 Variables automáticas 196 Variables externas 196 Variables registro 197 Variables estáticas 197 7.8 Concepto y uso de Funciones de biblioteca 198 7.9 Funciones de carácter 199 Comprobación alfabética y de dígitos 199 Funciones de prueba de caracteres especiales 201 7.10 Funciones de conversión de caracteres 201 Funciones numéricas 202 Funciones matemáticas de carácter general 202 Funciones trigonométricas 204 Funciones logarítmicas y exponenciales 204 7.11 Funciones aleatorias 205 Funciones de utilidad 206 7.12 Visibilidad de una función 208 7.13 Compilación separada 208 7.14 Funciones recursivas 210 Recursividad indirecta: funciones mutuamente recursivas 211 Condición de terminación de la recursión 213 7.15 Recursión versus iteración 213 Directrices en la toma de decisión iteración/recursión 214 7.16 Recursión infinita 215 Resume 216 Ejercicios 217 Problemas 219 CAPÍTULO 8 Arreglos (arrays), lista y tablas. Cadenas 221 Introducción 8.1 Arreglos (arrays) 222 Declaración de un arreglo o array 223 Subíndices de un arreglo 223 Almacenamiento en memoria de los arreglos (arrays) 224 El tamaño de los arreglos 225 Verificación del rango del índice de un arreglos 225 8.2 Inicialización de un arreglo (array) 225 8.3 Arreglos multidimensionales 228 Inicialización de arreglos multidimensionales 229 Acceso a los elementos de los arreglo bidimensionales 230 Lectura y escritura de elementos de arreglos bidimensionales 230 Acceso a elementos mediante bucles 231 Arreglo de más de dos dimensiones 232 Proceso de un arreglo de tres dimensiones 233 8.4 Utilización de arreglos como parámetros 234 Precauciones 237 Paso de cadenas como parámetros 238 8.5 Concepto de cadena 238 Declaración de variables de cadena 239 Inicialización de variables de cadena 240 8.6 Lectura de cadenas 241 Función gets ( ) 241 Función get char ( ) 243 Función putchar ( ) 243 Función puts ( ) 244 8.7 La biblioteca string. H 245 Utilización del modificador const con cadenas 245 8.8 Arreglos y cadenas como parámetros de Funciones 245 8.9 Asignación de cadenas 247 Función strncpy ( ) 248 8.10 Longitud y concatenación de cadenas 249 Función strlen ( ) 249 Funciones strcat ( ) y strncat ( ) 249 8.11 Comparación de cadenas 250 Función strcmp ( ) 250 Función strncmp ( ) 251 8.12 Conversión de cadenas a números 251 Función atoi ( ) 251 Función atof ( ) 252 Función atol ( ) 252 Función strtol ( ) y strtoul ( ) 253 Función strtod ( ) 254 Entrada de números y cadenas 255 Resumen 256 Ejercicios 256 Problemas 258 CAPÍTULO 9 Algoritmos de ordenación y búsqueda 260 Introducción 260 9.1 Ordenación 260 9.2 Ordenación por burbuja 261 Algoritmo de la burbuja 262 Codificación del algoritmo de la burbuja 263 Análisis del algoritmo de la burbuja 264 9.3 Ordenación por selección 265 Algoritmo de selección 266 Codificación del algoritmo de selección 266 9.4 Ordenación por inserción 266 Algoritmo de ordenación por inserción 266 Codificación del algoritmo de inserción 267 9.5 Ordenación rápida (quicksort) 267 Algoritmo quicksort 269 Codificación del algoritmo quicksort 270 Análisis del algoritmo quicksort 272 9.6 Búsqueda en listas: búsqueda secuencial y binaria 273 Búsqueda binaria 273 Algoritmo y codificación de la búsqueda binaria 273 Análisis de los algoritmos de búsqueda 275 Resumen 277 Ejercicios 277 Problemas 278 CAPÍTULO 10 Estructuras y uniones 280 Introducción 280 10.1 Estructuras 280 Declaración de una estructura 281 Definición de variables de estructuras 282 Uso de estructuras en asignaciones 283 Inicialización de una declaración de estructuras 283 El tamaño de una estructura 284 10.2 Acceso a estructuras 285 Almacenamiento de información en estructuras 285 Lectura de información de una estructura 286 Recuperación de información de una estructura 287 10.3 Sinónimo de un tipo de datos: typedef 287 10.4 Estructuras anidadas 288 Ejemplo de estructuras anidadas 290 10.5 Arreglos de estructuras 291 10.6 Arreglos como miembros 292 10.7 Utilización de estructuras como parámetros 293 10.8 Uniones 294 10.9 Tamaño de estructuras y uniones 295 Resumen 296 Ejercicios 296 Problemas 297 CAPÍTULO 11 Apuntadores (punteros) 299 Introducción 299 11.1 Direcciones en memoria 300 11.2 Concepto de apuntador (puntero) 301 Declaración de apuntadores 302 Inicialización (iniciación) de apuntadores 303 Indirección de apuntadores 304 Apuntadores y verificación de tipos 305 11.3 Apuntadores NULL y void 306 11.4 Apuntadores a apuntadores 307 11.5 Apuntadores y arreglos 308 Nombres de arreglos como apuntadores 308 Ventajas de los apuntadores 308 11.6 Arreglos (arrays) de apuntadores 309 Inicialización de un arreglo de apuntadores a cadenas 310 11.7 Apuntadores a cadenas 310 Apuntadores versus arreglos 310 11.8 Aritmética de apuntadores 311 Una aplicación de apuntadores: conversión de caracteres 312 11.9 Apuntadores constantes frente a apuntadores a constantes 313 Apuntadores constantes 313 Apuntadores a constantes 314 Apuntadores constantes a constantes 315 11.10 Apuntadores como argumentos de Funciones 316 11.11 Apuntadores a Funciones 317 Inicialización de un apuntador a una función 318 11.12 Apuntadores a estructuras 321 11.13 Asignación dinámica de la memoria 322 Almacén libre (free store) 322 11.14 Función de asignación de memoria malloc ( ) 322 Asignación de memoria de un tamaño desconocido 326 Uso de malloc( ) para arreglos multidimensionales 326 11.15 La función free ( ) 327 11.16 Funciones de asignación de memoria calloc( ) y realloc ( ) 328 Función calloc ( ) 328 Función realloc ( ) 330 11.17 Reglas de funcionamiento de la asignación dinámica 332 Resumen 333 Ejercicios 334 Problemas 335 CAPÍTULO 12 Entradas y salidas por archivos 337 Introducción 337 12.1 Flujos 337 12.2 Apuntador (puntero) FILE 338 12.3 Apertura de un archivo 339 Modos de apertura de un archivo 340 NULL y EOF 341 Cierre de archivos 341 Volcado del buffer. fflush( ) 341 12.4 Funciones de entrada/salida para archivos 342 Funciones putc ( ) y fputc ( ) 342 Funciones getc ( ) y fgetc ( ) Funciones fputs ( ) y fgets ( ) 343 344 Funciones fprintf ( ) y fscanf ( ) 345 Funcion feof ( ) 347 Funcion rewind ( ) 347 12.5 Archivos binarios en C 348 Funcion de salida fwrite ( ) 348 Funcion de lectura f read ( ) 350 12.6 Funciones para acceso aleatorio 351 Funcion f seek ( ) 352 Funcion ftell ( ) 353 Cambio de posicion: fgetpos ( ) y fsetpos( ) 353 12.7 Datos externos al programa con argumentos de main ( ) 355 Resumen 358 Ejercicios 358 Problemas 359 PARTE III Lenguaje unificado de modelado UML 2.5 361 CAPÍTULO 13 Programación orientada a objetos y UML 2.5 362 Introducción 362 13.1 Programación orientada a objetos 363 Objetos 364 Tipos abstractos de datos: Clases 365 13.2 Modelado e identificación de objetos 367 Estado 367 Comportamiento 367 Identidad 367 13.3 Propiedades fundamentales de la orientación a objetos 368 Abstracción 368 La abstracción en software 368 Encapsulamiento y ocultación de datos 369 Herencia 369 Reutilización o reusabilidad 370 Polimorfismo 371 13.4 Modelado de aplicaciones: UML 372 Lenguaje de modelado 372 13.5 Modelado y modelos 373 13.6 Diagramas de UML 2.5 374 13.7 Bloques de construcción (componentes) de UML 2.5 . 377 Elementos estructurales 377 Elementos de comportamiento 378 Elementos de agrupación 379 Especificaciones de UML 379 Historia de UML 379 Resumen 381 Ejercicios 381 CAPÍTULO 14 Diseño de clases y objetos: Representaciones graficas en UML 383 Introducción 383 14.1 Diseño y representación gráfica de objetos en UML 384 Representación gráfica en UML 385 Características de los objetos 386 Estado 387 Múltiples instancias de un objeto 388 Evolución de un objeto 389 Comportamiento 389 Identidad 391 Los mensajes 392 Responsabilidad y restricciones 393 Diseño y representación gráfica de clases en UML 394 Representación gráfica de una clase 395 Declaración de una clase 397 Reglas de visibilidad 398 Declaración de objetos de clases 400 Acceso a miembros de la clase: encapsulamiento 401 Declaración de métodos 403 Tipos de métodos 405 Resumen 405 Ejercicios 4U6 CAPÍTULO 15 Relaciones entre clases: delegaciones. asociaciones, agregaciones, herencia 409 Introducción 409 15.1 Relaciones entre clases 409 15.2 Dependencia 410 15.3 Asociación 411 Multiplicidad 413 Restricciones en asociaciones 414 Asociación cualificada 415 Asociaciones reflexivas 415 Diagrama de objetos 415 Clases de asociación 416 Asociaciones ternarias 417 Asociaciones cualificadas 418 Asociaciones reflexivas 419 Restricciones en asociaciones 419 15.4 Agregación 421 Composición 422 15.5 Jerarquía de clases: generalización y especialización 423 Jerarquías de generalización/especialización 425 15.6 Herencia: clases derivadas 427 Herencia simple 428 Herencia múltiple 429 Niveles de herencia 432 Declaración de una clase derivada 432 Consideraciones de diseño 432 15.7 Accesibilidad y visibilidad en la herencia 433 Herencia publica 434 Herencia privada 434 Herencia protegida 434 15.8 Un caso de estudio especial: herencia múltiple 435 Características de la herencia múltiple 437 15.9 Clases abstractas 438 Operaciones abstractas 439 Resumen 441 Ejercicios 441 PARTE IV Programar en C++ 443 CAPÍTULO 16 De C a C++ 444 Introducción 444 16.1 El primer programa C++ 444 Comentarios en C++ 446 El preprocesador de C++ y el archivo iostream 446 Entrada y salida 446 Archivos de cabecera 447 16.2 Espacios de nombres447 16.3 Tipos de datos nativos448 Tipos de datos básicos/primitivos 448 Tipos de coma flotantes (reales) 449 Constantes literales 450 Tipos apuntadores 450 Declaración de apuntadores 451 Tipos constantes 451 Referencias 452 Nombres de tipos definidos: typedef 452 Tipos enumeración 452 Arrays (arreglos) 452 Tipos carácter 453 Cadenas 453 16.4 Operadores 454 Operadores aritméticos 454 Operadores relacionales y lógicos 455 Operadores de asignación 456 Operadores incremento y decremento 456 Operador condicional 457 Operador sizeof 457 Operador coma 458 16.5 Conversiones de tipos 458 Conversión en expresiones 459 Conversiones en paso de argumentos 459 Conversiones explícitas 459 Operador new 459 16.6 Estructuras de control 461 Secuencia y sentencias compuestas 461 Selección y repetición 462 Sentencia i f 462 Sentencia Switch 463 Sentencia while 463 Sentencia do-while 464 Sentencia for 464 Sentencias break y continue 465 Estructura de break y continue 465 16.7 Funciones 466 Funciones de biblioteca 466 Definición de una función (función definida por el usuario) 467 Argumentos de la función: paso por valor y por referencia 468 La sentencia return 469 La sentencia using y el espacio de nombres std 469 Resumen 470 Ejercicios 471 Problemas 472 CAPÍTULO 17 Clases y objetos. Sobrecarga de operadores 473 Introducción 473 17.1 Clases y objetos 473 ¿Qué son objetos? 474 ¿Qué son clases? 474 17.2 Definición de una clase 475 Objetos de clases 479 Acceso a miembros de la clase: encapsulamiento 481 Datos miembros (miembros dato) 483 Funciones miembro 485 Llamadas a Funciones miembro 487 Tipos de Funciones miembro 488 Funciones en Iínea y fuera de línea 489 La palabra reservada línea 490 Nombres de parámetros de Funciones miembro 491 Implementación de clases 491 Archivos de cabecera y de clases 492 17.3 Constructores 493 Constructor por defecto 494 Constructores alternativos 495 Constructores sobrecargados 495 Constructor de copia 496 Inicialización de miembros en constructores 496 17.4 Destructores 493 Clases compuestas 499 17.5 Sobrecarga de Funciones miembro 499 17.6 Funciones amigas 500 17.7 Sobrecarga de operadores 502 17.8 Sobrecarga de operadores unitarios 504 Sobrecargar un operador unitario como función miembro 505 Sobrecarga de un operador unitario como una función amiga 506 17.9 Sobrecarga de operadores binarios 507 Sobrecarga de un operador binario como función miembro 507 Sobrecarga de un operador binario como una función amiga 508 17.10 Conversión de datos y operadores de conversión de tipos 509 17.11 Errores de programación frecuentes 510 Resumen 514 Ejercicios 515 Problemas 518 CAPÍTULO 18 Clases derivadas: herencia y polimorfismo 520 Introducción 520 18.1 Clases derivadas 520 Declaración de una clase derivada 522 Consideraciones de diseño 524 18.2 Tipos de herencia 525 Herencia pública 525 Herencia privada 528 Herencia protegida 528 Operador de resolución de ámbito 529 Constructores-inicializadores en herencia 530 Sintaxis del constructor 531 Sintaxis de la implementación de una función miembro 532 18.3 Destructores 532 18.4 Herencia múltiple 533 Características de la herencia múltiple 535 Dominación (prioridad) 536 Inicialización de la clase base 537 18.5 Ligadura 539 18.6 Funciones virtuales 539 Ligadura dinámica mediante funciones virtuales 540 18.7 Polimorfismo 542 El polimorfismo sin ligadura dinámica 543 El polimorfismo con ligadura dinámica 543 18.8 Uso del polimorfismo 544 18.9 Ligadura dinámica frente a ligadura estática 544 18.10 Ventajas del polimorfismo 545 Resumen 545 Ejercicios 546 CAPÍTULO 19 Genericidad: plantillas (templates) 548 Introducción 548 19.1 Genericidad 548 19.2 Conceptos fundamentales de plantillas en C++ 549 19.3 Plantillas de funciones 551 Fundamentos teóricos 551 Definición de plantilla de funciones 553 Un ejemplo de función plantilla 557 Plantillas de función ordenar y buscar 557 Una aplicación práctica 558 Problemas en las funciones plantilla 559 19.4 Plantillas de clases 559 Definición de una plantilla de clase 560 Instanciación de una plantilla de clases 562 Utilización de una plantilla de clase 562 Argumentos de plantillas 564 19.5 Una plantilla para manejo de pilas de datos 564 Definición de las funciones miembro 565 Utilización de una clase plantilla 565 Instanciación de una clase plantilla con clases 568 Uso de las plantillas de funciones con clases 569 19.6 Modelos de compilación de plantillas 569 Modelo de compilación separada 570 19.7 Plantillas frente a polimorfismo 571 Resumen 572 Ejercicios 573 CAPÍTULO 20 Excepciones 574 Introducción 574 20.1 Condiciones de error en programas 574 ¿Por qué considerar las condiciones de error? 575 20.2 El tratamiento de los códigos de error 575 20.3 Manejo de excepciones en C++ 576 20.4 El mecanismo de manejo de excepciones 577 Clases de excepciones 578 Partes de la manipulación de excepciones 578 20.5 El modelo de manejo de excepciones 578 El modelo de manejo de excepciones 579 Diseño de excepciones 580 Bloques try 581 Lanzamiento de excepciones 582 Captura de una excepción: catch 583 20.6 Especificación de excepciones 586 20.7 Excepciones imprevistas 588 20.8 Aplicaciones prácticas de manejo de excepciones 589 Calcular las raíces de una ecuación de segundo grado 589 Control de excepciones en una estructura tipo pila 590 Resumen 591 Ejercicios 592 PARTE V Programar en Java 595 CAPÍTULO 21 De C/C++ a JAVA 6/7/8 596 Introducción 596 21.1 Historia del lenguaje Java: de Java 1.0 a Java 8 596 21.2 El lenguaje de programación Java 598 Tipos de programas Java 599 21.3 Un programa sencillo en Java 599 21.4 Tipos de datos 601 21.5 Variables, constantes y asignaciones 601 Inicialización de variables 602 Inicialización de una variable en una declaración 602 Asignación múltiple; combinación de asignación con operadores aritméticos 603 Constantes 603 Definición de constantes en un método o en una clase 603 21.6 Operadores y expresiones 604 Operadores aritméticos 604 Operadores relacionales y lógicos 605 Operadores de manipulación de bits 605 Precedencia de operadores 606 21.7 Funciones matemáticas 606 21.8 Cadenas 607 Concatenación de cadenas 607 Las cadenas son inmutables 607 Subcadenas de la clase String 608 Longitud y comparación de cadenas 608 Métodos de la clase String 609 21.9 Códigos de caracteres ASCII y Unicode 611 21.10 Entrada y salida 612 Salida a la consola 612 Salida formateada con printf 612 Entrada 613 21.11 Flujo de control 615 Bloques de sentencias 615 Bucles (Lazos) 618 21.12 Arreglos (arrays) 621 Acceso a los elementos de un arreglo 622 Arreglos y objetos 622 Inicialización de arreglos y arreglos anónimos 623 Arreglos multidimensionales 623 Arreglos irregulares o triangulares 624 21.13 Applets 626 21.14 Creación de un applet 627 Documento HTML para applet 629 21.15 Ciclo de vida de un applet 629 Dibujar imágenes en un applet 631 Clase Graphics 633 Paramétros en un applet 633 Seguridad 634 Resumen 635 Ejercicios 635 Problemas 636 CAPÍTULO 22 Programación orientada a objetos en Java. Clases y objetos 637 Introducción 637 22.1 Clases y objetos 637 ¿Qué son objetos? 638 ¿Qué son clases? 638 22.2 Declaración de una clase 638 Objetos 640 Visibilidad de los miembros de la clase 640 Métodos de una clase 642 Implementación de las clases 644 Clases publicas 645 22.3 Paquetes 645 Sentencia package 645 import 646 22.4 Constructores 647 Constructor por defecto 648 Constructores sobrecargados 648 22.5 Recoleccion de objetos 649 Método finalize ( ) 650 22.6 Objeto que envía el mensaje: this 651 22.7 Miembros static de una clase 652 Variables static 652 Métodos static 654 22.8 Clase Ob j ect 655 Operador instanceof 656 22.9 Tipos abstractos de datos en Java 656 Implementación del TAD Conjunto 656 Aplicación del tipo abstracto de dato conjunto 658 Resumen 660 Ejercicios 661 Problemas 662 CAPÍTULO 23 Programación orientada a objetos en Java. Herencia y polimorfismo 663 Introducción 663 23.1 Clases derivadas 663 Declaración de una clase derivada 666 Diseño de clases derivadas 667 Sobrecarga de métodos en la clase derivada 668 23.2 Herencia publica 669 23.3 Constructores en herencia 672 Sintaxis 673 Referencia a la clase base: super 674 23.4 Métodos y clases no derivables: atributo final 675 23.5 Conversiones entre objetos de clase base y clase derivada 675 23.6 Métodos abstractos 677 Clases abstractas 678 Ligadura dinámica mediante métodos abstractos 679 23.7 Polimorfismo 681 Uso del polimorfismo 681 Ventajas del polimorfismo 681 23.8Interfaces 682 Implementación de una interface (interfaz) 683 Jerarquía de interface (interfaz) 685 Herencia de clases e implementación de interface 685 Variables interface 685 Resumen 686 Ejercicios 687 Problemas 687 CAPÍTULO 24 Colecciones 689 Introducción 689 24.1 Colecciones en Java 689 Tipos de colecciones 690 24.2 Clases de utilidades: Arrays y Collections 692 Clase Arrays 692 Ordenacion de arrays 692 Clase Collections 695 24.3 Comparación de objetos: Comparable y Comparator 697 Comparable 697 Comparator 697 24.4 Vector y Stack 698 Vector 698 Stack 699 24.5 Iteradores de una colección 700 Enumeration 700 Iterator 701 24.6 Listas 703 ArrayList 703 24.7 Colecciones parametrizadas 705 Declaración de un tipo parametrizado 705 Resumen 706 Ejercicios 706 Problemas 707 CAPÍTULO 25 Multitarea y excepciones. CAPÍTULO 26 Organización de datos dentro de un archivo en C. CAPÍTULO 27 Listas, pilas y colas en C CAPÍTULO 28 Flujos y archivos en C++ CAPÍTULO 29 Listas, pilas y colas en C++ CAPÍTULO 30 Archivos y flujos en Java CAPÍTULO 31 Listas, pilas y colas en Java.
Summary: Qué ha sucedido en el campo de la informática desde la primera edición de Programación en C,C++,Java y UML? Se han desplegado numerosas innovaciones tecnológicas: la web 2.0 se ha consolidado y la programación web se ha constituido como una materia de estudio y desarrollo profesional. En el caso de la programación, han surgido las nuevas e innovadoras versiones del C++11 y Java 7, unidas a la actualización de la versión de C, C11. Los desarrolladores actuales requieren nuevas técnicas de programación y , sobre todo, el conocimiento y aprendizaje profundo de las tecnologías de programación basadas en los lenguajes de programación clásicos, estructurados y orientados a objetos: C, C++ y Java. Características de esta obra: Se ha reducido el número de capítulos de la primera edición manteniendo los contenidos, pero adaptándolos a los nuevos planes de estudios y procesos de aprendizaje. Se incluyen las versiones actuales de los tres lenguajes de programación: C11,C++ y Java 7, junto con la última versión de UML: UML 2.5. Se abordan los tres lenguajes de programación, primero independientes, después interrelacionados y luego en paralelo, con el fin de que el profesor decida la secuencia y los lenguajes en forma que mejor se adapten a sus clases. Se cuenta con un Centro de recursos en línea donde tendrá acceso a material complementario que apoya el aprendizaje de los lenguajes de programación.
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Call number Copy number Status Date due Barcode
Libros Libros CIBESPAM-MFL 005.133 / J88 (Browse shelf(Opens below)) Ej: 1 Available 001848
Libros Libros CIBESPAM-MFL 005.133 / J88 (Browse shelf(Opens below)) Ej: 2 Available 001849

PRÓLOGO xv
PARTE I
Resolución de problemas con software 1
CAPÍTULO 1
Fundamentos de computadoras y de lenguajes de programación 2
Introducción 2
1.1 Las computadoras en perspectiva 3
Generaciones de computadoras 3
1.2 Las computadoras modernas: una breve taxonomía 5
1.3 Estructura de una computadora 6
1.4 Hardware 7
Unidad central de proceso (CPU) 8
Memoria de la computadora 9
Dispositivos de entrada y salida 12
Dispositivos de almacenamiento secundario 12
Dispositivos de comunicación 13
1.5 Software: conceptos básicos y clasificación 13
Software de sistema 14
Software de aplicaciones 14
1.6 Sistema operativo 15
1.7 El lenguaje de la computadora 17
Representación de la información en las computadoras (códigos de caracteres) 18
Los lenguajes de programación ensambladores y de alto nivel 18
El proceso de programación 20
1.8 Internet y la Web 21
La revolución Web 2.0 22
Social Media 22
Desarrollo de programas web 23
La Web Semántica y la Web 3.0 23
1.9 Cloud computing (computación en la nube) 23
Software como servicio (SaaS) 24
1.10 Movilidad: tecnologías, redes e internet móvil 24
Redes inalámbricas 24
Redes móviles 25
Sistemas operativos móviles 25
Aplicaciones móviles 25
1.11 Geolocalización y realidad aumentada 26
¿Qué es la realidad aumentada? 26
1.12 Internet de las cosas 26
1.13 Big data. Los grandes volúmenes de datos 27
1.14 Lenguajes de programación 27
Traductores de lenguaje: el proceso de traducción de un programa 29
La compilación y sus fases 29
1-15 Evolución de los lenguajes de programación 31
1.16 Paradigmas de programación 32
Lenguajes imperativos (procedimentales) 32
Lenguajes declarativos 32
Lenguajes orientados a objetos 33
Resumen 33
CAPÍTULO 2 Algoritmos, programas y metodología de la programación 34
Introducción 34
2.1 Resolución de problemas con computadoras: fases 34
Análisis del problema 35
Diseño del problema 36
Herramientas gráficas y alfanuméricas 37
Codificación de un programa 39
Compilación y ejecución de un programa 40
Verificación y depuración de un programa 40
Mantenimiento y documentación 42
2.2 Algoritmo: concepto y propiedades 42
Características de los algoritmos 43
2.3 Diseño de algoritmos 44
2.4 Escritura de algoritmos 45
2.5 Representación gráfica de los algoritmos 47
Pseudocódigo 47
Diagramas de flujo 48
Diagramas de Nassi-Schneiderman (N-S) 57
2.6 Metodología de la programación 58
Programación modular 58
Programación estructurada 58
Programación orientada a objetos 60
2.7 Herramientas de programación 61
Editores de texto 61
Programa ejecutable 62
Proceso de compilación/ejecución de un programa 62
Resumen 64
Ejercicios 64
Actividades de aprendizaje 65
Actividades complementarias 66
PARTE II
Programación en C 67
CAPÍTULO 3
El lenguaje C: elementos básicos 68
Introducción 68
3.1 Estructura general de un programa en C 68
Directivas del preprocesador 70
Declaraciones globales 71
Función main () 72
Funciones definidas por el usuario 72
Comentarios 74
3.2 Creación de un programa 75
3.3 El proceso de ejecución de un programa en C 76
3.4 Depuración de un programa en C 79
Errores de sintaxis 79
Errores lógicos 79
Errores de regresión 80
Mensajes de error 80
Errores en tiempo de ejecución 80
3.5 Pruebas 81
3.6 Los elementos de un programa en C 81
Tokens (elementos léxicos de los programas) 82
Identificadores 82
Palabras reservadas 82
Comentarios 83
Signos de puntuación y separadores 83
Archivos de cabecera 83
3.7 Tipos de datos en C 83
Enteros (int) 84
Tipos de coma flotante (float/double) 85
Caracteres (char) 86
3.8 El tipo de dato lógico 87
Escritura de valores lógicos 88
3.9 Constantes 88
Constantes literales 88
Constantes definidas (simbólicas) 91
Constantes enumeradas 91
Constantes declaradas const y volatile 91
3.10 Variables 92
Declaración 93
Inicialización de variables 94
Declaración o definición 95
Duración de una variable 95
Variables locales 95
Variables globales 96
3.11 Entradas y salidas 97
Salida 97
Entrada 99
Salida de cadenas de caracteres 100
Entrada de cadenas de caracteres 100
Resumen 101
Ejercicios 102
CAPÍTULO 4
Operadores y expresiones 103
Introducción 103
Operador de asignación 104
Operadores aritméticos 105
Asociatividad 107
Uso de paréntesis 107
Operadores de incrementación y de incrementación 108
Operadores relacionales 111
Operadores lógicos 112
Asignaciones booleanas (lógicas) 114
Operador condicional? 115
4.8 Operador coma 116
4.9 Operadores especiales: ( ), [ ] 116
El operador ( ) 116
El operador [ ] 116
4.10 Operador sizeof 117
4.11 Conversiones de tipos 118
Conversión implícita 118
Reglas 118
Conversión explicita 118
4.12 Prioridad y asociatividad 119
Resumen 120
Ejercicios 120
Problemas 121
CAPÍTULO 5
Estructuras de selección: sentencias i f y switch 123
Introducción 123
5.1 Estructuras de control 123
5.2 La sentencia i f 124
5.3 Sentencia i f de dos opciones: i f-else 126
5.4 Sentencias i f-else anidadas 129
Sangría en las sentencias i f anidadas 130
Comparación de sentencias i f anidadas y secuencias de sentencias i f 131
5.5 Sentencia de control switch 132
Caso particular de case 136
Uso de sentencias switch en menús 137
5.6 Expresiones condicionales: el operador? 137
5.7 Evaluación en cortocircuito de expresiones lógicas 138
5.8 Puesta a punto de programas 139
Estilo y diseño 139
5.9 Errores frecuentes de programación 140
Resumen 142
Ejercicios 142
Problemas 144
CAPÍTULO 6
Estructuras de control: bucles 145
Introducción 145
6.1 Sentencia while 145
Operadores de incremento y decremento (+ +, —) 148
Terminaciones anormales de un bucle (c/c/o llave) 149
Diseño eficiente de bucles 149
Bucles while con cero iteraciones 150
Bucles controlados por centinelas 150
Bucles controlados por indicadores (banderas) 151
La sentencia break en los bucles 152
Bucles while (true) 153
6.2 Repetición: el bucle for 154
Diferentes usos de bucles for 158
6.3 Precauciones en el uso de for 159
Bucles infinitos 160
Los bucles for vacíos 161
Sentencias nulas en bucles for 161
Sentencias break y continue 162
6.4 Repetición: el bucle do-while 163
Diferencias entre while y do-while 164
6.5 Comparación de bucles while,for y do-while 165
6.6 Diseño de bucles 165
Final de un bucle 166
Bucles for vacíos 167
6.7 Bucles anidados 168
6.8 Enumeraciones 170
Resumen 172
Ejercicios 172
Problemas 174
CAPÍTULO 7
Funciones y recursividad 176
Introducción 176
7.1 Concepto de función 177
7.2 Estructura de una función 178
Nombre de una función 179
Tipo de dato de retorno 180
Resultados de una función 180
Llamada a una función 181
7.3 Prototipos de las funciones 184
Prototipos con un número no especificado de para metros 186
7.4 Parámetros de la función 187
Paso de parámetros por valor 188
Paso de parámetros por referencia 189
Diferencias entre paso de variables por valor y por referencia 189
Parámetros const de una función 191
7.5 Funciones en línea, macros con argumentos 191
Creación de macros con argumentos 193
7.6 Ámbito (alcance) de una variable 194
Ámbito del programa 194
Ámbito del archivo fuente 195
Ámbito de una función 195
Ámbito de bloque 195
Variables locales 196
7.7 Clases de almacenamiento 196
Variables automáticas 196
Variables externas 196
Variables registro 197
Variables estáticas 197
7.8 Concepto y uso de Funciones de biblioteca 198
7.9 Funciones de carácter 199
Comprobación alfabética y de dígitos 199
Funciones de prueba de caracteres especiales 201
7.10 Funciones de conversión de caracteres 201
Funciones numéricas 202
Funciones matemáticas de carácter general 202
Funciones trigonométricas 204
Funciones logarítmicas y exponenciales 204
7.11 Funciones aleatorias 205
Funciones de utilidad 206
7.12 Visibilidad de una función 208
7.13 Compilación separada 208
7.14 Funciones recursivas 210
Recursividad indirecta: funciones mutuamente recursivas 211
Condición de terminación de la recursión 213
7.15 Recursión versus iteración 213
Directrices en la toma de decisión iteración/recursión 214
7.16 Recursión infinita 215
Resume 216
Ejercicios 217
Problemas 219
CAPÍTULO 8
Arreglos (arrays), lista y tablas. Cadenas 221
Introducción
8.1 Arreglos (arrays) 222
Declaración de un arreglo o array 223
Subíndices de un arreglo 223
Almacenamiento en memoria de los arreglos (arrays) 224
El tamaño de los arreglos 225
Verificación del rango del índice de un arreglos 225
8.2 Inicialización de un arreglo (array) 225
8.3 Arreglos multidimensionales 228
Inicialización de arreglos multidimensionales 229
Acceso a los elementos de los arreglo bidimensionales 230
Lectura y escritura de elementos de arreglos bidimensionales 230
Acceso a elementos mediante bucles 231
Arreglo de más de dos dimensiones 232
Proceso de un arreglo de tres dimensiones 233
8.4 Utilización de arreglos como parámetros 234
Precauciones 237
Paso de cadenas como parámetros 238
8.5 Concepto de cadena 238
Declaración de variables de cadena 239
Inicialización de variables de cadena 240
8.6 Lectura de cadenas 241
Función gets ( ) 241
Función get char ( ) 243
Función putchar ( ) 243
Función puts ( ) 244
8.7 La biblioteca string. H 245
Utilización del modificador const con cadenas 245
8.8 Arreglos y cadenas como parámetros de Funciones 245
8.9 Asignación de cadenas 247
Función strncpy ( ) 248
8.10 Longitud y concatenación de cadenas 249
Función strlen ( ) 249
Funciones strcat ( ) y strncat ( ) 249
8.11 Comparación de cadenas 250
Función strcmp ( ) 250
Función strncmp ( ) 251
8.12 Conversión de cadenas a números 251
Función atoi ( ) 251
Función atof ( ) 252
Función atol ( ) 252
Función strtol ( ) y strtoul ( ) 253
Función strtod ( ) 254
Entrada de números y cadenas 255
Resumen 256
Ejercicios 256
Problemas 258
CAPÍTULO 9
Algoritmos de ordenación y búsqueda 260
Introducción 260
9.1 Ordenación 260
9.2 Ordenación por burbuja 261
Algoritmo de la burbuja 262
Codificación del algoritmo de la burbuja 263
Análisis del algoritmo de la burbuja 264
9.3 Ordenación por selección 265
Algoritmo de selección 266
Codificación del algoritmo de selección 266
9.4 Ordenación por inserción 266
Algoritmo de ordenación por inserción 266
Codificación del algoritmo de inserción 267
9.5 Ordenación rápida (quicksort) 267
Algoritmo quicksort 269
Codificación del algoritmo quicksort 270
Análisis del algoritmo quicksort 272
9.6 Búsqueda en listas: búsqueda secuencial y binaria 273
Búsqueda binaria 273
Algoritmo y codificación de la búsqueda binaria 273
Análisis de los algoritmos de búsqueda 275
Resumen 277
Ejercicios 277
Problemas 278
CAPÍTULO 10
Estructuras y uniones 280
Introducción 280
10.1 Estructuras 280
Declaración de una estructura 281
Definición de variables de estructuras 282
Uso de estructuras en asignaciones 283
Inicialización de una declaración de estructuras 283
El tamaño de una estructura 284
10.2 Acceso a estructuras 285
Almacenamiento de información en estructuras 285
Lectura de información de una estructura 286
Recuperación de información de una estructura 287
10.3 Sinónimo de un tipo de datos: typedef 287
10.4 Estructuras anidadas 288
Ejemplo de estructuras anidadas 290
10.5 Arreglos de estructuras 291
10.6 Arreglos como miembros 292
10.7 Utilización de estructuras como parámetros 293
10.8 Uniones 294
10.9 Tamaño de estructuras y uniones 295
Resumen 296
Ejercicios 296
Problemas 297
CAPÍTULO 11
Apuntadores (punteros) 299
Introducción 299
11.1 Direcciones en memoria 300
11.2 Concepto de apuntador (puntero) 301
Declaración de apuntadores 302
Inicialización (iniciación) de apuntadores 303
Indirección de apuntadores 304
Apuntadores y verificación de tipos 305
11.3 Apuntadores NULL y void 306
11.4 Apuntadores a apuntadores 307
11.5 Apuntadores y arreglos 308
Nombres de arreglos como apuntadores 308
Ventajas de los apuntadores 308
11.6 Arreglos (arrays) de apuntadores 309
Inicialización de un arreglo de apuntadores a cadenas 310
11.7 Apuntadores a cadenas 310
Apuntadores versus arreglos 310
11.8 Aritmética de apuntadores 311
Una aplicación de apuntadores: conversión de caracteres 312
11.9 Apuntadores constantes frente a apuntadores a constantes 313
Apuntadores constantes 313
Apuntadores a constantes 314
Apuntadores constantes a constantes 315
11.10 Apuntadores como argumentos de Funciones 316
11.11 Apuntadores a Funciones 317
Inicialización de un apuntador a una función 318
11.12 Apuntadores a estructuras 321
11.13 Asignación dinámica de la memoria 322
Almacén libre (free store) 322
11.14 Función de asignación de memoria malloc ( ) 322
Asignación de memoria de un tamaño desconocido 326
Uso de malloc( ) para arreglos multidimensionales 326
11.15 La función free ( ) 327
11.16 Funciones de asignación de memoria calloc( ) y realloc ( ) 328
Función calloc ( ) 328
Función realloc ( ) 330
11.17 Reglas de funcionamiento de la asignación dinámica 332
Resumen 333
Ejercicios 334
Problemas 335
CAPÍTULO 12
Entradas y salidas por archivos 337
Introducción 337
12.1 Flujos 337
12.2 Apuntador (puntero) FILE 338
12.3 Apertura de un archivo 339
Modos de apertura de un archivo 340
NULL y EOF 341
Cierre de archivos 341
Volcado del buffer. fflush( ) 341
12.4 Funciones de entrada/salida para archivos 342
Funciones putc ( ) y fputc ( ) 342
Funciones getc ( ) y fgetc ( )
Funciones fputs ( ) y fgets ( ) 343 344
Funciones fprintf ( ) y fscanf ( ) 345
Funcion feof ( ) 347
Funcion rewind ( ) 347
12.5 Archivos binarios en C 348
Funcion de salida fwrite ( ) 348
Funcion de lectura f read ( ) 350
12.6 Funciones para acceso aleatorio 351
Funcion f seek ( ) 352
Funcion ftell ( ) 353
Cambio de posicion: fgetpos ( ) y fsetpos( ) 353
12.7 Datos externos al programa con argumentos de main ( ) 355
Resumen 358
Ejercicios 358
Problemas 359
PARTE III
Lenguaje unificado de modelado UML 2.5 361
CAPÍTULO 13
Programación orientada a objetos y UML 2.5 362
Introducción 362
13.1 Programación orientada a objetos 363
Objetos 364
Tipos abstractos de datos: Clases 365
13.2 Modelado e identificación de objetos 367
Estado 367
Comportamiento 367
Identidad 367
13.3 Propiedades fundamentales de la orientación a objetos 368
Abstracción 368
La abstracción en software 368
Encapsulamiento y ocultación de datos 369
Herencia 369
Reutilización o reusabilidad 370
Polimorfismo 371
13.4 Modelado de aplicaciones: UML 372
Lenguaje de modelado 372
13.5 Modelado y modelos 373
13.6 Diagramas de UML 2.5 374
13.7 Bloques de construcción (componentes) de UML 2.5 . 377
Elementos estructurales 377
Elementos de comportamiento 378
Elementos de agrupación 379
Especificaciones de UML 379
Historia de UML 379
Resumen 381
Ejercicios 381
CAPÍTULO 14
Diseño de clases y objetos:
Representaciones graficas en UML 383
Introducción 383
14.1 Diseño y representación gráfica de objetos en UML 384
Representación gráfica en UML 385
Características de los objetos 386
Estado 387
Múltiples instancias de un objeto 388
Evolución de un objeto 389
Comportamiento 389
Identidad 391
Los mensajes 392
Responsabilidad y restricciones 393
Diseño y representación gráfica de clases en UML 394
Representación gráfica de una clase 395
Declaración de una clase 397
Reglas de visibilidad 398
Declaración de objetos de clases 400
Acceso a miembros de la clase: encapsulamiento 401
Declaración de métodos 403
Tipos de métodos 405
Resumen 405
Ejercicios 4U6
CAPÍTULO 15
Relaciones entre clases: delegaciones. asociaciones, agregaciones, herencia 409
Introducción 409
15.1 Relaciones entre clases 409
15.2 Dependencia 410
15.3 Asociación 411
Multiplicidad 413
Restricciones en asociaciones 414
Asociación cualificada 415
Asociaciones reflexivas 415
Diagrama de objetos 415
Clases de asociación 416
Asociaciones ternarias 417
Asociaciones cualificadas 418
Asociaciones reflexivas 419
Restricciones en asociaciones 419
15.4 Agregación 421
Composición 422
15.5 Jerarquía de clases: generalización y especialización 423
Jerarquías de generalización/especialización 425
15.6 Herencia: clases derivadas 427
Herencia simple 428
Herencia múltiple 429
Niveles de herencia 432
Declaración de una clase derivada 432
Consideraciones de diseño 432
15.7 Accesibilidad y visibilidad en la herencia 433
Herencia publica 434
Herencia privada 434
Herencia protegida 434
15.8 Un caso de estudio especial: herencia múltiple 435
Características de la herencia múltiple 437
15.9 Clases abstractas 438
Operaciones abstractas 439
Resumen 441
Ejercicios 441
PARTE IV
Programar en C++ 443
CAPÍTULO 16
De C a C++ 444
Introducción 444
16.1 El primer programa C++ 444
Comentarios en C++ 446
El preprocesador de C++ y el archivo iostream 446
Entrada y salida 446
Archivos de cabecera 447
16.2 Espacios de nombres447
16.3 Tipos de datos nativos448
Tipos de datos básicos/primitivos 448
Tipos de coma flotantes (reales) 449
Constantes literales 450
Tipos apuntadores 450
Declaración de apuntadores 451
Tipos constantes 451
Referencias 452
Nombres de tipos definidos: typedef 452
Tipos enumeración 452
Arrays (arreglos) 452
Tipos carácter 453
Cadenas 453
16.4 Operadores 454
Operadores aritméticos 454
Operadores relacionales y lógicos 455
Operadores de asignación 456
Operadores incremento y decremento 456
Operador condicional 457
Operador sizeof 457
Operador coma 458
16.5 Conversiones de tipos 458
Conversión en expresiones 459
Conversiones en paso de argumentos 459
Conversiones explícitas 459
Operador new 459
16.6 Estructuras de control 461
Secuencia y sentencias compuestas 461
Selección y repetición 462
Sentencia i f 462
Sentencia Switch 463
Sentencia while 463
Sentencia do-while 464
Sentencia for 464
Sentencias break y continue 465
Estructura de break y continue 465
16.7 Funciones 466
Funciones de biblioteca 466
Definición de una función (función definida por el usuario) 467
Argumentos de la función: paso por valor y por referencia 468
La sentencia return 469
La sentencia using y el espacio de nombres std 469
Resumen 470
Ejercicios 471
Problemas 472
CAPÍTULO 17
Clases y objetos.
Sobrecarga de operadores 473
Introducción 473
17.1 Clases y objetos 473
¿Qué son objetos? 474
¿Qué son clases? 474
17.2 Definición de una clase 475
Objetos de clases 479
Acceso a miembros de la clase: encapsulamiento 481
Datos miembros (miembros dato) 483
Funciones miembro 485
Llamadas a Funciones miembro 487
Tipos de Funciones miembro 488
Funciones en Iínea y fuera de línea 489
La palabra reservada línea 490
Nombres de parámetros de Funciones miembro 491
Implementación de clases 491
Archivos de cabecera y de clases 492
17.3 Constructores 493
Constructor por defecto 494
Constructores alternativos 495
Constructores sobrecargados 495
Constructor de copia 496
Inicialización de miembros en constructores 496
17.4 Destructores 493
Clases compuestas 499
17.5 Sobrecarga de Funciones miembro 499
17.6 Funciones amigas 500
17.7 Sobrecarga de operadores 502
17.8 Sobrecarga de operadores unitarios 504
Sobrecargar un operador unitario como función miembro 505
Sobrecarga de un operador unitario como una función amiga 506
17.9 Sobrecarga de operadores binarios 507
Sobrecarga de un operador binario como función miembro 507
Sobrecarga de un operador binario como una función amiga 508
17.10 Conversión de datos y operadores de conversión de tipos 509
17.11 Errores de programación frecuentes 510
Resumen 514
Ejercicios 515
Problemas 518
CAPÍTULO 18
Clases derivadas: herencia y polimorfismo 520
Introducción 520
18.1 Clases derivadas 520
Declaración de una clase derivada 522
Consideraciones de diseño 524
18.2 Tipos de herencia 525
Herencia pública 525
Herencia privada 528
Herencia protegida 528
Operador de resolución de ámbito 529
Constructores-inicializadores en herencia 530
Sintaxis del constructor 531
Sintaxis de la implementación de una función miembro 532
18.3 Destructores 532
18.4 Herencia múltiple 533
Características de la herencia múltiple 535
Dominación (prioridad) 536
Inicialización de la clase base 537
18.5 Ligadura 539
18.6 Funciones virtuales 539
Ligadura dinámica mediante funciones virtuales 540
18.7 Polimorfismo 542
El polimorfismo sin ligadura dinámica 543
El polimorfismo con ligadura dinámica 543
18.8 Uso del polimorfismo 544
18.9 Ligadura dinámica frente a ligadura estática 544
18.10 Ventajas del polimorfismo 545
Resumen 545
Ejercicios 546
CAPÍTULO 19
Genericidad: plantillas (templates) 548
Introducción 548
19.1 Genericidad 548
19.2 Conceptos fundamentales de plantillas en C++ 549
19.3 Plantillas de funciones 551
Fundamentos teóricos 551
Definición de plantilla de funciones 553
Un ejemplo de función plantilla 557
Plantillas de función ordenar y buscar 557
Una aplicación práctica 558
Problemas en las funciones plantilla 559
19.4 Plantillas de clases 559
Definición de una plantilla de clase 560
Instanciación de una plantilla de clases 562
Utilización de una plantilla de clase 562
Argumentos de plantillas 564
19.5 Una plantilla para manejo de pilas de datos 564
Definición de las funciones miembro 565
Utilización de una clase plantilla 565
Instanciación de una clase plantilla con clases 568
Uso de las plantillas de funciones con clases 569
19.6 Modelos de compilación de plantillas 569
Modelo de compilación separada 570
19.7 Plantillas frente a polimorfismo 571
Resumen 572
Ejercicios 573
CAPÍTULO 20
Excepciones 574
Introducción 574
20.1 Condiciones de error en programas 574
¿Por qué considerar las condiciones de error? 575
20.2 El tratamiento de los códigos de error 575
20.3 Manejo de excepciones en C++ 576
20.4 El mecanismo de manejo de excepciones 577
Clases de excepciones 578
Partes de la manipulación de excepciones 578
20.5 El modelo de manejo de excepciones 578
El modelo de manejo de excepciones 579
Diseño de excepciones 580
Bloques try 581
Lanzamiento de excepciones 582
Captura de una excepción: catch 583
20.6 Especificación de excepciones 586
20.7 Excepciones imprevistas 588
20.8 Aplicaciones prácticas de manejo de excepciones 589
Calcular las raíces de una ecuación de segundo grado 589
Control de excepciones en una estructura tipo pila 590
Resumen 591
Ejercicios 592
PARTE V
Programar en Java 595
CAPÍTULO 21
De C/C++ a JAVA 6/7/8 596
Introducción 596
21.1 Historia del lenguaje Java: de Java 1.0 a Java 8 596
21.2 El lenguaje de programación Java 598
Tipos de programas Java 599
21.3 Un programa sencillo en Java 599
21.4 Tipos de datos 601
21.5 Variables, constantes y asignaciones 601
Inicialización de variables 602
Inicialización de una variable en una declaración 602
Asignación múltiple; combinación de asignación con operadores aritméticos 603
Constantes 603
Definición de constantes en un método o en una clase 603
21.6 Operadores y expresiones 604
Operadores aritméticos 604
Operadores relacionales y lógicos 605
Operadores de manipulación de bits 605
Precedencia de operadores 606
21.7 Funciones matemáticas 606
21.8 Cadenas 607
Concatenación de cadenas 607
Las cadenas son inmutables 607
Subcadenas de la clase String 608
Longitud y comparación de cadenas 608
Métodos de la clase String 609
21.9 Códigos de caracteres ASCII y Unicode 611
21.10 Entrada y salida 612
Salida a la consola 612
Salida formateada con printf 612
Entrada 613
21.11 Flujo de control 615
Bloques de sentencias 615
Bucles (Lazos) 618
21.12 Arreglos (arrays) 621
Acceso a los elementos de un arreglo 622
Arreglos y objetos 622
Inicialización de arreglos y arreglos anónimos 623
Arreglos multidimensionales 623
Arreglos irregulares o triangulares 624
21.13 Applets 626
21.14 Creación de un applet 627
Documento HTML para applet 629
21.15 Ciclo de vida de un applet 629
Dibujar imágenes en un applet 631
Clase Graphics 633
Paramétros en un applet 633
Seguridad 634
Resumen 635
Ejercicios 635
Problemas 636
CAPÍTULO 22
Programación orientada a objetos en Java. Clases y objetos 637
Introducción 637
22.1 Clases y objetos 637
¿Qué son objetos? 638
¿Qué son clases? 638
22.2 Declaración de una clase 638
Objetos 640
Visibilidad de los miembros de la clase 640
Métodos de una clase 642
Implementación de las clases 644
Clases publicas 645
22.3 Paquetes 645
Sentencia package 645
import 646
22.4 Constructores 647
Constructor por defecto 648
Constructores sobrecargados 648
22.5 Recoleccion de objetos 649
Método finalize ( ) 650
22.6 Objeto que envía el mensaje: this 651
22.7 Miembros static de una clase 652
Variables static 652
Métodos static 654
22.8 Clase Ob j ect 655
Operador instanceof 656
22.9 Tipos abstractos de datos en Java 656
Implementación del TAD Conjunto 656
Aplicación del tipo abstracto de dato conjunto 658
Resumen 660
Ejercicios 661
Problemas 662
CAPÍTULO 23
Programación orientada a objetos en Java. Herencia y polimorfismo 663
Introducción 663
23.1 Clases derivadas 663
Declaración de una clase derivada 666
Diseño de clases derivadas 667
Sobrecarga de métodos en la clase derivada 668
23.2 Herencia publica 669
23.3 Constructores en herencia 672
Sintaxis 673
Referencia a la clase base: super 674
23.4 Métodos y clases no derivables: atributo final 675
23.5 Conversiones entre objetos de clase base y clase derivada 675
23.6 Métodos abstractos 677
Clases abstractas 678
Ligadura dinámica mediante métodos abstractos 679
23.7 Polimorfismo 681
Uso del polimorfismo 681
Ventajas del polimorfismo 681
23.8Interfaces 682
Implementación de una interface (interfaz) 683
Jerarquía de interface (interfaz) 685
Herencia de clases e implementación de interface 685
Variables interface 685
Resumen 686
Ejercicios 687
Problemas 687
CAPÍTULO 24
Colecciones 689
Introducción 689
24.1 Colecciones en Java 689
Tipos de colecciones 690
24.2 Clases de utilidades: Arrays y Collections 692
Clase Arrays 692
Ordenacion de arrays 692
Clase Collections 695
24.3 Comparación de objetos: Comparable y Comparator 697
Comparable 697
Comparator 697
24.4 Vector y Stack 698
Vector 698
Stack 699
24.5 Iteradores de una colección 700
Enumeration 700
Iterator 701
24.6 Listas 703
ArrayList 703
24.7 Colecciones parametrizadas 705
Declaración de un tipo parametrizado 705
Resumen 706
Ejercicios 706
Problemas 707
CAPÍTULO 25
Multitarea y excepciones.
CAPÍTULO 26
Organización de datos dentro de un archivo en C.
CAPÍTULO 27
Listas, pilas y colas en C
CAPÍTULO 28
Flujos y archivos en C++
CAPÍTULO 29
Listas, pilas y colas en C++
CAPÍTULO 30
Archivos y flujos en Java
CAPÍTULO 31
Listas, pilas y colas en Java.

Qué ha sucedido en el campo de la informática desde la primera edición de Programación en C,C++,Java y UML? Se han desplegado numerosas innovaciones tecnológicas: la web 2.0 se ha consolidado y la programación web se ha constituido como una materia de estudio y desarrollo profesional. En el caso de la programación, han surgido las nuevas e innovadoras versiones del C++11 y Java 7, unidas a la actualización de la versión de C, C11.
Los desarrolladores actuales requieren nuevas técnicas de programación y , sobre todo, el conocimiento y aprendizaje profundo de las tecnologías de programación basadas en los lenguajes de programación clásicos, estructurados y orientados a objetos: C, C++ y Java.
Características de esta obra:
Se ha reducido el número de capítulos de la primera edición manteniendo los contenidos, pero adaptándolos a los nuevos planes de estudios y procesos de aprendizaje.
Se incluyen las versiones actuales de los tres lenguajes de programación: C11,C++ y Java 7, junto con la última versión de UML: UML 2.5.
Se abordan los tres lenguajes de programación, primero independientes, después interrelacionados y luego en paralelo, con el fin de que el profesor decida la secuencia y los lenguajes en forma que mejor se adapten a sus clases.
Se cuenta con un Centro de recursos en línea donde tendrá acceso a material complementario que apoya el aprendizaje de los lenguajes de programación.

There are no comments on this title.

to post a comment.