Este libro es fundamental para asimilar la Programación Orientada a Objetos, paso a paso incrementa su nivel de dificultad y que presenta numerosos ejemplos explicados detalladamente, ejercicios resueltos y ejercicios propuestos, puede ser utilizado en materias de programación de computadoras que se cursan en los primeros dos o tres semestres de carreras que incluyan programación en su plan de estudios, también puede usarse, por cualquier lector autodidacta para aprender a programar.
Desarrolla una metodología para aprender a programar mediante un seudo lenguaje, explica los conceptos necesarios para entender la programación orientada a objetos y el desarrollo de la lógica necesaria para solucionar problemas en forma algorítmica. Al final de su estudio el lector podrá comprender el manejo de cualquier lenguaje orientado a objetos como Java, UML y muchos otros.
La primera parte da énfasis al desarrollo de la lógica básica de la programación usando un pseudo lenguaje. Se estudian los tipos de datos, identificadores, operaciones de entrada, cálculo y salida; usando las estructuras de control: la secuenciación; la selección simple (IF THEN), doble (IF THEN ELSE) y múltiple (SWITCH); la repetición DO WHILE, la repetición FOR y la repetición WHILE; además, se estudia cómo usar más de un método en la clase, en problemas que involucran a más de una tarea o función, métodos que no regresan valor entre otras cosas. La segunda parte aborda los conceptos de la programación orientada a objetos, integrándolos con el concepto de diagrama de clases de UML (Unified Modeling Language), con la arquitectura modelo vista-controlador, con las estructuras estudiadas en los primeros nueve capítulos y la incorporación de los conceptos de la programación orientada a objetos en la técnica seudocódigo, logrando una metodología de la programación que permite diseñar algoritmos orientados a objetos.
Ventaja Competitiva:
- Incluye en la Web programas que implementan los algoritmos desarrollados en el libro.
- En cada capítulo encontrará listado el contenido, objetivos, competencias, ejemplos desarrollados paso a paso, explicaciones, notas, prácticas de ejercicios resueltos, ejercicios propuestos y resúmenes.
- En la web del libro se encuentran:
-
- Autoevaluación para el alumno
-
- Mapa conceptual del capitulo
-
- Presentaciones en Power Point para el profesor
Conozca:
- Los conceptos principales del paradigma de programación orientado a objetos y aplicarlos a situaciones de la vida real.
Aprenda:
- Cómo describir y modelar los conceptos del paradigma de programación orientado a objetos.
- Cómo aplicarlos los conceptos del paradigma de programación orientado a objetos a situaciones de la vida real.
- Cómo sobrecargar métodos y operadores para optimizar el código de una clase.
- Cómo identificar, manejar, gestionar y crear las condiciones de error que interrumpan el flujo normal de ejecución de un programa.
Realice:
- La Implementación de clases y objetos cumpliendo las reglas de la programación orientada a objetos.
- La Implementación de constructores y destructores para inicializar atributos y liberar recursos.
- La Implementación de la herencia en clases derivadas para reutilizar los miembros de una clase base.
- La Implementación de interfaces y clases polimórficas.
- Aplicaciones orientadas a objetos que creen y manipulen archivos para guardar y recuperar información.
1. Introducción a la programación ……………………………1
1.1 Conceptos generales …………………………………………………3
La computadora ……………………………………………………………. 3
El programa…………………………………………………………………… 6
Estructuras de datos ……………………………………………………. 6
Operaciones primitivas elementales ……………………………… 7
Estructuras de control ………………………………………………….. 7
El lenguaje de programación ……………………………………..7
Características de los lenguajes de programación …………. 7
La programación …………………………………………………………… 8
Características de un buen programa ……………………………. 8
1.2 Evolución de los paradigmas de programación …………..9
Características de los paradigmas de programación …….. 9
Programación tradicional……………………………………………….. 9
Programación estructurada …………………………………………. 10
Programación modular ………………………………………………… 11
Programación con abstracción de datos ……………………… 11
Programación orientada a objetos ……………………………….. 11
1.3 El proceso de programación …………………………………….12
1. Defi nición del problema……………………………………………. 12
2. Análisis del problema ………………………………………………. 12
3. Diseño del programa ……………………………………………….. 13
4. Codifi cación del programa……………………………………….. 14
5. Implantación del programa ………………………………………. 14
6. Mantenimiento del programa …………………………………… 14
1.4 El algoritmo ……………………………………………………………..15
Ejercicios …………………………………………………………………….. 15
1.5 Ejercicios propuestos ……………………………………………….18
1.6 Resumen de conceptos que debe dominar ……………….19
1.7 Contenido de la página Web de apoyo …………………….19
1.7.1 Resumen gráfi co del capítulo ……………………………… 19
1.7.2 Autoevaluación …………………………………………………… 19
1.7.3 Power Point para el profesor (*)…………………………… 19
2. Elementos para solucionar problemas
en seudocódigo…………………………………………………….21
2.1 Estructuras de datos ………………………………………………..23
2.1.1 Tipos de datos……………………………………………………. 23
2.1.2 Variables …………………………………………………………….. 24
2.1.3 Constantes …………………………………………………………. 26
2.2 Operaciones primitivas elementales …………………………26
2.2.1 Declarar ……………………………………………………………… 26
2.2.2 Lectura de datos (Entrada) …………………………………. 28
2.2.3 Operaciones aritméticas fundamentales ……………… 29
2.2.4 Escritura de datos (Salida) ………………………………….. 32
2.3 Estructuras de control ………………………………………………33
2.4 Resumen de conceptos que debe dominar ……………….33
2.5 Contenido de la página Web de apoyo …………………….34
2.5.1 Resumen gráfi co del capítulo ……………………………… 34
2.5.2 Autoevaluación …………………………………………………… 34
2.5.3 Power Point para el profesor (*)…………………………… 34
3. La secuenciación ………………………………………………….35
3.1 Nuestro primer problema ………………………………………….37
3.2 Estructura y diseño de un algoritmo ………………………….37
3.3 Nuestro primer algoritmo ………………………………………….39
3.4 Funciones matemáticas ……………………………………………41
3.5 Ejercicios resueltos ………………………………………………….47
3.6 Ejercicios propuestos ……………………………………………….51
3.7 Resumen de conceptos que debe dominar ……………….53
3.8 Contenido de la página Web de apoyo …………………….53
3.8.1 Resumen gráfi co del capítulo ……………………………… 53
3.8.2 Autoevaluación …………………………………………………… 53
3.8.3 Programas en Java ……………………………………………. 53
3.8.4 Ejercicios resueltos …………………………………………….. 53
3.8.5 Power Point para el profesor (*)…………………………… 53
4. La selección ………………………………………………………….55
4.1 La selección doble (if-then-else) ……………………………….57
4.1.1 Sangrado (indentación) y etiquetas……………………… 60
4.1.2 Expresiones lógicas ……………………………………………. 61
4.1.3 if´s anidados ……………………………………………………….. 65
4.1.4 Ejercicios resueltos para la selección doble
(if-then-else) ………………………………………………………………… 68
4.2 La selección simple (if-then) ……………………………………..72
4.2.1 Ejercicios resueltos para la selección simple
(if-then) ………………………………………………………………………… 74
4.3 La selección múltiple (switch)……………………………………77
4.3.1 Ejercicio resuelto para la selección múltiple (switch)81
4.4 Ejercicios propuestos ……………………………………………….83
4.5 Resumen de conceptos que debe dominar ……………….85
4.6 Contenido de la página Web de apoyo …………………….86
4.6.1 Resumen gráfi co del capítulo ……………………………… 86
4.6.2 Autoevaluación …………………………………………………… 86
4.6.3 Programas en Java ……………………………………………. 86
4.6.4 Ejercicios resueltos …………………………………………….. 86
4.6.5 Power Point para el profesor (*)…………………………… 86
5. La repetición …………………………………………………………87
5.1 La repetición do…while ……………………………………………89
5.1.1 Contadores y acumuladores ……………………………….. 91
5.1.2 Ejercicios resueltos para la repetición do…while …. 95
5.1.3 Ejercicios propuestos para la repetición do…while . 100
5.2 La repetición for ……………………………………………………108
5.2.1 for anidados ……………………………………………………… 112
5.2.2 Ejercicios resueltos para la repetición for …………… 112
5.2.3 Simulación del for con do…while ………………………. 120
5.2.4 Ejercicios propuestos para la repetición for ……….. 121
5.3 La repetición while …………………………………………………129
5.3.1 Simulación del do…while con while …………………. 131
5.3.2 Simulación del for con while …………………………….. 132
5.3.3 Ejercicios resueltos para la repetición while ……….. 135
5.3.4 Ejercicios propuestos para la repetición while ……. 140
5.4 Resumen de conceptos que debe dominar ……………..142
5.5 Contenido de la página Web de apoyo …………………..143
5.5.1 Resumen gráfi co del capítulo ……………………………. 143
5.5.2 Autoevaluación …………………………………………………. 143
5.5.3 Programas en Java ………………………………………….. 143
5.5.4 Ejercicios resueltos …………………………………………… 143
5.5.5 Power Point para el profesor (*)…………………………. 143
6. Arreglos ……………………………………………………………….145
6.1 Arreglos unidimensionales ………………………………………147
Manejo de los elementos del arreglo unidimensional ….. 148
Defi nición del arreglo unidimensional ………………………….. 148
6.1.1 Ejercicios resueltos para unidimensionales ……….. 150
6.2 Arreglos bidimensionales ………………………………………..155
Defi nición del arreglo bidimensional ……………………………. 155
Manejo de los elementos del arreglo bidimensional ……. 156
6.2.1 Ejercicios resueltos para bidimensionales …………. 158
6.3 Arreglos tridimensionales ……………………………………….165
Defi nición del arreglo tridimensional……………………………. 166
Manejo de los elementos del arreglo tridimensional ……. 167
6.3.1 Ejercicios resueltos para tridimensionales ………….. 168
6.4 Arreglos tetradimensionales ………………………………….. 168
Defi nición del arreglo tetradimensional ……………………….. 171
Manejo de los elementos del arreglo tetradimensional… 171
6.4.1 Ejercicios resueltos para tetradimensionales ……… 173
6.5 Ejercicios propuestos …………………………………………….173
6.6 Resumen de conceptos que debe dominar ……………..180
6.7 Contenido de la página Web de apoyo …………………..181
6.7.1 Resumen gráfi co del capítulo ……………………………. 181
6.7.2 Autoevaluación …………………………………………………. 181
6.7.3 Programas en Java ………………………………………….. 181
6.7.4 Ejercicios resueltos …………………………………………… 181
6.7.5 Power Point para el profesor (*)…………………………. 181
7. Métodos ………………………………………………………………183
7.1 Métodos que no regresan valor ………………………………184
7.2 Formato general de una clase con métodos…………….191
7.3 Variables globales, locales y parámetros …………………192
7.3.1 Variables globales ……………………………………………. 192
7.3.2 Variables locales ………………………………………………. 193
7.3.3 Parámetros……………………………………………………….. 194
7.4 Funciones estándar ………………………………………………..198
7.4.1 Funciones cadena de caracteres ………………………. 198
7.4.2 Validación de la entrada de datos ……………………… 204
7.4.3 Funciones especiales………………………………………… 205
7.5 Métodos que regresan valor ……………………………………207
Referencia de métodos que devuelven valor ………………. 208
7.6 Ejercicios resueltos ………………………………………………..210
7.7 Ejercicios propuestos ……………………………………………..217
7.8 Resumen de conceptos que debe dominar ……………..220
7.9 Contenido de la página Web de apoyo …………………..220
7.9.1 Resumen gráfi co del capítulo ……………………………. 220
7.9.2 Autoevaluación …………………………………………………. 220
7.9.3 Programas en Java ………………………………………….. 220
7.9.4 Ejercicios resueltos …………………………………………… 220
7.9.5 Power Point para el profesor (*)…………………………. 220
8. Programación orientada a objetos
usando el diagrama de clases …………………………..221
8.1 Objetos ………………………………………………………………….222
8.1.1 Qué son los objetos ………………………………………….. 223
8.1.2 Cómo están formados los objetos …………………….. 223
8.1.3 Cuándo y cómo identifi car los objetos ………………. 224
8.2 Clases y su relación con los objetos ……………………….225
8.2.1 Determinar las clases………………………………………… 225
8.2.2 Representación de la clase y sus instancias………. 226
8.3 Métodos y encapsulación ……………………………………….227
8.3.1 Métodos …………………………………………………………… 227
8.3.2 Encapsulación ………………………………………………….. 227
8.4 Diseño del diagrama de clases ……………………………….228
8.4.1 Modifi cadores de acceso (visibilidad) ………………… 229
8.5 Generar instancias de una clase ……………………………..232
8.6 Arquitectura modelo-vista-controlador ……………………233
8.7 Resumen de conceptos que debe dominar ……………..235
8.8 Contenido de la página Web de apoyo …………………..235
8.8.1 Resumen gráfi co del capítulo ……………………………. 235
8.8.2 Autoevaluación …………………………………………………. 235
8.8.3 Power Point para el profesor (*)…………………………. 235
9. Programación orientada a objetos
aplicando la estructura de secuenciación ………..237
9.1 Nuestro primer problema ………………………………………..238
9.2 Diseño de algoritmos OO usando la secuenciación
en seudocódigo ……………………………………………………..240
9.3 Constructores y destructores ………………………………….251
9.4 Ejercicios resueltos ………………………………………………..252
9.5 Ejercicios propuestos ……………………………………………..261
9.6 Resumen de conceptos que debe dominar ……………..261
9.7 Contenido de la página Web de apoyo …………………..262
9.7.1 Resumen gráfi co del capítulo ……………………………. 262
9.7.2 Autoevaluación …………………………………………………. 262
9.7.3 Programas en Java ………………………………………….. 262
9.7.4 Ejercicios resueltos …………………………………………… 262
9.7.5 Power Point para el profesor (*)…………………………. 262
10. Programación orientada a objetos
aplicando las estructuras de selección …………….263
10.1 Diseño de algoritmos OO usando la selección
doble (if-then-else) ………………………………………………..264
10.2 Diseño de algoritmos OO usando la selección
simple (if-then) ……………………………………………………….268
10.3 Diseño de algoritmos OO usando la selección
múltiple (switch) ……………………………………………………..270
10.4 Ejercicios resueltos ………………………………………………..273
10.5 Ejercicios propuestos ……………………………………………..281
10.6 Resumen de conceptos que debe dominar ……………..282
10.7 Contenido de la página Web de apoyo …………………..282
10.7.1 Resumen gráfi co del capítulo ………………………….. 282
10.7.2 Autoevaluación ……………………………………………….. 282
10.7.3 Programas en Java ………………………………………… 282
10.7.4 Ejercicios resueltos …………………………………………. 282
10.7.5 Power Point para el profesor (*) ………………………. 282
11. Programación orientada a objetos
aplicando las estructuras de repetición ……………283
11.1 Diseño de algoritmos OO usando la repetición
do…while ………………………………………………………………284
11.1.1 Contadores y acumuladores …………………………… 288
11.1.2 Ejercicios resueltos para do…while …………………. 291
11.1.3 Ejercicios propuestos para do…while ……………… 302
11.2 Diseño de algoritmos OO usando la repetición for……302
11.2.1 Ejercicios resueltos para for …………………………….. 304
11.2.2 Ejercicios propuestos para for …………………………. 309
11.3 Diseño de algoritmos OO usando la repetición while .309
11.3.1 Ejercicios resueltos para while…………………………. 313
11.3.2 Ejercicios propuestos para while……………………… 323
11.4 Resumen de conceptos que debe dominar ……………..323
11.5 Contenido de la página Web de apoyo …………………..324
11.5.1 Resumen gráfi co del capítulo ………………………….. 324
11.5.2 Autoevaluación ……………………………………………….. 324
11.5.3 Programas en Java ………………………………………… 324
11.5.4 Ejercicios resueltos …………………………………………. 324
11.5.5 Power Point para el profesor (*) ………………………. 324
12. Programación orientada a objetos
aplicando arreglos ………………………………………………325
12.1 Diseño de algoritmos OO usando arreglos
unidimensionales ……………………………………………………326
12.1.1 Ejercicios propuestos para arreglos
unidimensionales ……………………………………………………….. 334
12.2 Diseño de algoritmos OO usando arreglos
bidimensionales ……………………………………………………..334
12.2.1 Ejercicios propuestos para arreglos
bidimensionales …………………………………………………………. 344
12.3 Diseño de algoritmos OO usando arreglos
tridimensionales ……………………………………………………345
12.3.1 Ejercicios propuestos para arreglos
tridimensionales …………………………………………………………. 349
12.4 Diseño de algoritmos OO usando arreglos
tetradimensionales ……………………………………………. 349
12.4.1 Ejercicios propuestos para arreglos
tetradimensionales …………………………………………………….. 355
12.5 Resumen de conceptos que debe dominar ……………..355
12.6 Contenido de la página Web de apoyo …………………..356
12.6.1 Resumen gráfi co del capítulo ………………………….. 356
12.6.2 Autoevaluación ……………………………………………….. 356
12.6.3 Programas en Java ………………………………………… 356
12.6.4 Ejercicios resueltos …………………………………………. 356
12.6.5 Power Point para el profesor (*) ………………………. 356
13. Programación orientada a objetos
usando herencia………………………………………………….357
13.1 Herencia ………………………………………………………………..358
13.2 Diseño del diagrama de clases con herencia …………..360
13.2.1 Superclases y subclases …………………………………. 362
13.3 Diseño de algoritmos OO usando herencia ……………..363
13.4 Ejercicios resueltos ………………………………………………..371
13.5 Ejercicios propuestos ……………………………………………..381
13.6 Resumen de conceptos que debe dominar ……………..384
13.7 Contenido de la página Web de apoyo …………………..384
13.7.1 Resumen gráfi co del capítulo ………………………….. 384
13.7.2 Autoevaluación ……………………………………………….. 384
13.7.3 Programas en Java ………………………………………… 384
13.7.4 Ejercicios resueltos …………………………………………. 384
13.7.5 Power Point para el profesor (*) ………………………. 384
14. Programación orientada a objetos
usando polimorfi smo ………………………………………….385
14.1 Polimorfi smo ………………………………………………………….386
14.2 Diseño del diagrama de clases con polimorfi smo …….387
14.2.1 Clases abstractas ………………………………………….. 388
14.3 Diseño de algoritmos OO usando polimorfi smo ……….389
14.4 Ejercicios resueltos ………………………………………………..395
14.5 Ejercicios propuestos ……………………………………………..405
14.6 Resumen de conceptos que debe dominar ……………..408
14.7 Contenido de la página Web de apoyo …………………..409
14.7.1 Resumen gráfi co del capítulo ………………………….. 409
14.7.2 Autoevaluación ……………………………………………….. 409
14.7.3 Programas en Java ………………………………………… 409
14.7.4 Ejercicios resueltos …………………………………………. 409
14.7.5 Power Point para el profesor (*) ………………………. 409
15. Registros y archivos …………………………………………..411
Características de los archivos …………………………………… 414
Tipos de archivos ………………………………………………………. 415
Operaciones sobre archivos ………………………………………. 415
Operaciones con registros …………………………………………. 416
15.1 Organización de archivos …………………………………………. 416
Tipos de organización de archivos……………………………… 416
15.2 Manejo de registros en seudocódigo ………………………418
Defi nición de registros ……………………………………………….. 418
Proceso de un registro ………………………………………………. 419
15.3 Operaciones para el manejo de archivos
en seudocódigo ……………………………………………………… 424
Creación de archivo secuencial …………………………………. 424
Creación de archivo directo ………………………………………. 425
Abrir archivo secuencial……………………………………………… 426
Abrir archivo directo …………………………………………………… 427
Escritura de objetos (registros) ………………………………….. 427
Lectura de objetos (registros) …………………………………….. 428
Localización de componente (encontrar) ……………………. 428
Cerrar archivos ………………………………………………………….. 429
Funciones para el proceso de archivos ………………………. 429
Funciones de directorio ……………………………………………… 430
15.4 Proceso de un archivo secuencial …………………………..431
Creación ……………………………………………………………………. 431
Expansión………………………………………………………………….. 431
Actualización con altas, bajas y cambios ……………………. 431
Obtención de reportes ……………………………………………….. 431
Emisión de reportes con cortes de control …………………. 441
15.5 Proceso de un archivo directo ……………………………….447
Creación ……………………………………………………………………. 447
Expansión………………………………………………………………….. 447
Altas ………………………………………………………………………….. 447
Bajas …………………………………………………………………………. 448
Cambios ……………………………………………………………………. 448
Consultas ………………………………………………………………….. 448
Obtención de reportes ……………………………………………….. 448
15.6 Ejercicios resueltos ………………………………………………..467
15.7 Ejercicios propuestos ……………………………………………..467
15.8 Resumen de conceptos que debe dominar ……………..481
15.9 Contenido de la página Web de apoyo …………………..482
15.9.1 Resumen gráfi co del capítulo ………………………….. 482
15.9.2 Autoevaluación ……………………………………………….. 482
15.9.3 Programas en Java ………………………………………… 482
15.9.4 Ejercicios resueltos …………………………………………. 482
15.9.5 Power Point para el profesor (*) ………………………. 482
16. Otros temas…………………………………………………………483
16.1 Clasifi cación (ordenación) de datos …………………………484
Métodos de ordenamiento o clasifi cación…………………… 484
Clasifi cación (ordenación) de un archivo …………………….. 491
Clasifi cación de un archivo por dos datos
concatenados ……………………………………………………………. 496
16.2 Uso del tipo static ………………………………………………….500
16.3 Uso del this ……………………………………………………………512
16.4 Recursividad …………………………………………………………518
16.5 Grafi cación ……………………………………………………………519
Arco ………………………………………………………………………….. 520
Barra …………………………………………………………………………. 520
Barra3D …………………………………………………………………….. 520
Circulo……………………………………………………………………….. 520
CierraGraph ………………………………………………………………. 520
DetectaGraph ……………………………………………………………. 520
DibujaPoli ………………………………………………………………….. 520
Elipse ………………………………………………………………………… 520
IniciaGraph ………………………………………………………………… 520
Linea …………………………………………………………………………. 521
RebPastel ………………………………………………………………….. 521
Rectangulo ………………………………………………………………… 521
16.6 Resumen de conceptos que debe dominar ……………..521
16.7 Contenido de la página Web de apoyo …………………..521
16.7.1 Resumen gráfi co del capítulo ………………………….. 521
16.7.2 Autoevaluación ……………………………………………….. 521
16.7.3 Programas en Java ………………………………………… 521
16.7.4 Power Point para el profesor (*) ………………………. 521