Actualizado el 21 de Marzo del 2018 (Publicado el 11 de Marzo del 2018)
7.807 visualizaciones desde el 11 de Marzo del 2018
3,0 MB
473 paginas
Creado hace 17a (30/09/2006)
Introducci´on a Ciencias de la
Computaci´on I
(con Java)
Elisa Viso G.
Canek Pel´aez V.
Facultad de Ciencias, UNAM
´Indice general
1. Introducci´on
1.1. Conceptos generales . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Sistemas num´ericos . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. La Arquitectura de Von Neumann . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
1.5. Ejecuci´on de programas
1.5.1. Filosof´ıas de programaci´on . . . . . . . . . . . . . . . . . .
1.6. Caracter´ısticas de Java . . . . . . . . . . . . . . . . . . . . . . . .
2. El Proceso del Software
2.1. ¿Qu´e es la programaci´on? . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Conceptos en la orientaci´on a objetos . . . . . . . . . . . .
2.2. Dise˜no orientado a objetos . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
2.3. Dise˜no Estructurado . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1. Tarjetas de responsabilidades
3. Clases y Objetos
3.1. Tarjetas de responsabilidades
. . . . . . . . . . . . . . . . . . . .
3.2. Programaci´on en Java . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . .
3.3. Expresiones en Java . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
3.2.1. Declaraciones en Java
3.2.2. Alcance de los identificadores
3.2.3.
Implementaci´on de m´etodos en Java
3.3.1. Declaraci´on y definici´on simult´aneas
4. Manejo de cadenas y expresiones
Implementaci´on de una Base de Datos
4.1. Manejo de cadenas en Java . . . . . . . . . . . . . . . . . . . . . .
4.2.
. . . . . . . . . . . . . . .
4.3. Una clase Men´u . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1. Salir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2
3
6
13
25
26
27
29
29
36
42
45
46
55
55
62
63
81
83
91
98
101
101
106
131
138
´INDICE GENERAL
4.3.2. Agrega estudiante . . . . . . . . . . . . . . . . . . . . . . .
4.3.3. Quita estudiante
. . . . . . . . . . . . . . . . . . . . . . .
4.3.4. Busca estudiante . . . . . . . . . . . . . . . . . . . . . . .
4.3.5. Lista todo el curso . . . . . . . . . . . . . . . . . . . . . .
4.3.6. Lista los que cumplan con alg´un criterio . . . . . . . . . .
4.3.7. Valor por omisi´on . . . . . . . . . . . . . . . . . . . . . . .
4.3.8. M´etodo principal de MenuCurso . . . . . . . . . . . . . . .
5. Datos estructurados
5.1. La clase para cada registro . . . . . . . . . . . . . . . . . . . . . .
5.2. La lista de registros . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
5.2.1. Paso por valor y por referencia
5.2.2. Eliminado de registros
. . . . . . . . . . . . . . . . . . . .
5.2.3. La clase MenuLista . . . . . . . . . . . . . . . . . . . . . .
6. Herencia
6.1. Extensi´on de clases . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Arreglos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1. Arreglos de una dimensi´on . . . . . . . . . . . . . . . . . .
6.2.2.
Iteraci´on enumerativa . . . . . . . . . . . . . . . . . . . . .
6.2.3. Arreglos de m´as de una dimensi´on . . . . . . . . . . . . . .
6.2.4. Los arreglos como par´ametros y valor de regreso . . . . . .
6.3. Aspectos principales de la herencia . . . . . . . . . . . . . . . . .
6.3.1. Super y subclases . . . . . . . . . . . . . . . . . . . . . . .
6.4. Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5. Clases abstractas . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6.
Interfaces
7. Administraci´on de la memoria durante ejecuci´on
7.1. El stack y el heap . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Recursividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1. Las torres de Hanoi . . . . . . . . . . . . . . . . . . . . . .
8. Ordenamientos usando estructuras de datos
8.1. Base de datos en un arreglo . . . . . . . . . . . . . . . . . . . . .
8.2. Manteniendo el orden con listas ligadas . . . . . . . . . . . . . . .
8.2.1. Revisita de la clase ListaCurso . . . . . . . . . . . . . . . .
8.3. *Ordenamiento usando ´arboles . . . . . . . . . . . . . . . . . . . .
8.3.1. Construcci´on de ´arboles binarios para ordenamientos
. . .
8.3.2. La clase ArbolOrden . . . . . . . . . . . . . . . . . . . . . .
ii
139
140
141
141
141
141
141
145
146
151
162
163
166
171
171
175
175
183
187
190
193
193
195
198
200
203
203
228
237
245
245
264
267
271
274
276
iii
´INDICE GENERAL
8.3.3.
Inserci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.4. Listar toda la base de datos . . . . . . . . . . . . . . . . .
8.3.5. Conservaci´on de la aleatoriedad de la entrada . . . . . . .
8.3.6. B´usquedas . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.7. Listado condicionado de registros . . . . . . . . . . . . . .
8.3.8. Eliminaci´on de nodos . . . . . . . . . . . . . . . . . . . . .
8.3.9. La clase MenuOrden . . . . . . . . . . . . . . . . . . . . . .
9. Manejo de errores en ejecuci´on
9.1. Tipos de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1. Excepciones en tiempo de ejecuci´on (RuntimeException) . .
9.2. La clase Exception . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3. C´omo detectar y cachar una excepci´on . . . . . . . . . . . . . . .
9.4. Las clases que extienden a Exception . . . . . . . . . . . . . . . .
9.4.1. Relanzamiento de excepciones . . . . . . . . . . . . . . . .
9.5. El enunciado finally . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6. Restricciones para las excepciones . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
9.7. Recomendaciones generales . . . . . . . . . . . . . . . . . . . . . .
9.6.1. Apareamiento de excepciones
10.Entrada y salida
10.4.1. Entrada y salida est´andar
10.1. Conceptos generales . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2. Jerarqu´ıa de clases
. . . . . . . . . . . . . . . . . . . . . . . . . .
10.3. Entrada y salida de bytes
. . . . . . . . . . . . . . . . . . . . . .
10.4. Entrada y salida de car´acteres . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
10.5. El manejo del men´u de la aplicaci´on . . . . . . . . . . . . . . . . .
10.5.1. La clase OutputStream . . . . . . . . . . . . . . . . . . .
10.5.2. Lectura desde teclado . . . . . . . . . . . . . . . . . . . . .
10.6. Redireccionamiento de in, out y err
. . . . . . . . . . . . . . . . .
10.7. Persistencia de la base de datos . . . . . . . . . . . . . . . . . . .
10.7.1. C´omo guardar datos en un archivo en disco
. . . . . . . .
10.7.2. C´omo leer registros de un archivo de disco . . . . . . . . .
10.7.3. C´omo agregar a un archivo ya creado . . . . . . . . . . . .
10.8. Escritura y lectura de campos que no son cadenas . . . . . . . . .
10.8.1. Escritura en archivos binarios . . . . . . . . . . . . . . . .
10.8.2. Lectura de archivos binarios . . . . . . . . . . . . . . . . .
10.8.3. Acceso semi directo a archivos binarios . . . . . . . . . . .
10.8.4. Lectura directa de registros
. . . . . . . . . . . . . . . . .
10.8.5. Escritura directa de registros . . . . . . . . . . . . . . . . .
276
279
281
282
285
287
293
295
295
296
300
302
311
317
317
322
324
325
327
327
330
330
335
337
339
339
348
358
359
365
368
371
373
381
382
387
390
397
´INDICE GENERAL
iv
10.9. Lectura y escritura de objetos . . . . . . . . . . . . . . . . . . . .
10.10.Colof´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
401
416
11.Hilos de ejecuci´on
11.1. ¿Qu´e es un hilo de ejecuci´on? . . . . . . . . . . . . . . . . . . . .
11.2. La clase Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3. La interfaz Runnable . . . . . . . . . . . . . . . . . . . . . . . . .
11.3.1. Constructores de la clase Thread . . . . . . . . . . . . . .
11.4. Sincronizaci´on de hilos de ejecuci´on . . . . . . . . . . . . . . . . .
11.4.1. M´etodos sincronizados . . . . . . . . . . . . . . . . . . . .
11.4.2. Sincronizaci´on de m´etodos y la herencia . . . . . . . . . .
11.4.3. M´etodos est´aticos sincronizados . . . . . . . . . . . . . . .
11.4.4. Enunciados sincronizados . . . . . . . . . . . . . . . . . . .
11.4.5. Modelos de sincronizaci´on . . . . . . . . . . . . . . . . . .
11.5. Comunicaci´on entre hilos de ejecuci´on . . . . . . . . . . . . . . . .
11.5.1. Ejemplo: un servidor de impresora
. . . . . . . . . . . . .
11.5.2. M´as detalles sobre la espera y la notificaci´on . . . . . . . .
11.6. Alternativas para la programaci´on de procesos . . . . . . . . . . .
11.6.1. Desalojo voluntario . . . . . . . . . . . . . . . . . . . . . .
11.7. Abrazo mortal (deadlock )
. . . . . . . . . . . . . . . . . . . . . .
11.8. C´omo se termina la ejecuci´on de un proceso . . . . . . . . . . . .
11.8.1. Cancelaci´on de un proceso . . . . . . . . . . . . . . . . . .
11.8.2. Terminaci´on de la ejecuci´on de un proceso . . . . . . . . .
11.9. Terminaci´on de la aplicaci´on . . . . . . . . . . . . . . . . . . . . .
11.10.Depuraci´on en hilos de ejecuci´on . . . . . . . . . . . . . . . . . . .
11.11.Otros temas relacionados con hilos de ejecuci´on . . . . . . . . . .
417
417
418
421
423
424
424
426
427
427
430
430
432
435
438
439
441
445
446
450
452
455
457
´Indice de Figuras
1.1. Arquitectura de von Neumann . . . . . . . . . . . . . . . . . . . .
1.2. Proceso para ejecutar un programa escrito en ensamblador . . . .
1.3. Codificaci´on en ensamblador de f´ormulas matem´aticas.
. . . . . .
1.4. Enteros en signo y magnitud.
. . . . . . . . . . . . . . . . . . . .
1.5. N´umeros en complemento a 2 . . . . . . . . . . . . . . . . . . . .
1.6. Suma de dos n´umeros con complemento a 2 . . . . . . . . . . . .
1.7. Sumando 1 al m´aximo entero positivo . . . . . . . . . . . . . . . .
1.8. Notaci´
Comentarios de: Introducción a Ciencias de la Computación I (con Java) (0)
No hay comentarios