Вы находитесь на странице: 1из 54

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja


MODALIDAD ABIERTA Y A DISTANCIA

Departamento de Ciencias de la Computacin y Electrnica


Seccin Tecnologas Avanzadas de la Web y SBC

Programacin
de Algortimos
Gua didctica
4 crditos

Titulacin

Ciclo

Ingeniero en Informtica

III

Autor:
Ing. Guido Eduardo Riofro Caldern

Estimado estudiante recuerde que la presente gua didctica est disponible en el EVA en formato PDF interactivo,
lo que le permitir acceder en lnea a todos los recursos educativos.

18307

Asesora virtual:
www.utpl.edu.ec

PROGRAMACIN DE ALGORITMOS
Gua didctica

Guido Eduardo Riofro Caldern

UNIVERSIDAD TCNICA PARTICULAR DE LOJA


Diagramacin, diseo e impresin:
EDILOJA Ca. Ltda.
Telefax: 593-7-2611418
San Cayetano Alto s/n
www.ediloja.com.ec
edilojainfo@ediloja.com.ec
Loja-Ecuador
Segunda impresin
Quinta reimpresin
ISBN-978-9942-08-090-5
Reservados todos los derechos conforme a la ley. No est permitida la reproduccin total o parcial de esta gua, ni su tratamiento informtico, ni la transmisin de
ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el permiso previo y por escrito de los titulares
del Copyright.
Abril, 2014

2. ndice
2. ndice........................................................................................................................................................ 4
3. Introduccin........................................................................................................................................... 6
4. Lineamientos generales del Modelo Educativo basado en competencias y ...........
crditos acadmicos UTPL- ECTS.................................................................................................... 7
4.1. Competencias genricas.................................................................................................................... 8
4.2. Competencias especficas.................................................................................................................. 8

5. Bibliografa............................................................................................................................................ 9
5.1. Bsica................................................................................................................................................. 9
5.2. Complementaria................................................................................................................................ 9
5.3. Recursos OCW.................................................................................................................................... 10

6. Orientaciones generales para el estudio................................................................................... 12


7. Proceso de enseanza-aprendizaje para el logro de competencias............................... 14
PRIMER BIMESTRE
7.1. Planificacin para el trabajo del alumno......................................................................................... 14
7.2. Sistema de evaluacin de la asignatura.......................................................................................... 15
7.3. Orientaciones especficas para el aprendizaje por competencias................................................... 16
Unidad 1: Gestin de excepciones en Java.................................................................................................................... 16

1.1. Fundamentos sobre el manejo de excepciones.................................................................................. 16


1.2. La API de Java................................................................................................................................... 17
1.3. Uso de try y catch............................................................................................................................. 18
1.4. Uso de la instruccin throws.............................................................................................................. 19
1.5. Generar excepciones propias............................................................................................................. 19
Autoevaluacin 1......................................................................................................................................... 20
Unidad 2: Algoritmos sobre arreglos............................................................................................................................. 22

2.1. Estructura de un Array....................................................................................................................... 22


2.2. Algoritmos de bsqueda.................................................................................................................... 24
2.3. Algoritmos de ordenamiento.............................................................................................................. 25
2.4. Operaciones adicionales en un arreglo............................................................................................... 26
2.5. Operaciones con la clase Arrays......................................................................................................... 29
Autoevaluacin 2......................................................................................................................................... 30
Unidad 3: Algoritmos Recursivos................................................................................................................................... 32

3.1. Introduccin y conceptos bsicos de recursividad............................................................................... 32


3.2. Aplicacin de la recursividad.............................................................................................................. 33
Autoevaluacin 3......................................................................................................................................... 35

SEGUNDO BIMESTRE
7.4. Planificacin para el trabajo del alumno......................................................................................... 37
7.5. Orientaciones especficas para el aprendizaje por competencias................................................... 38
Unidad 4. Programacin con ficheros en Java............................................................................................................... 38

4.1. Conceptos preliminares sobre los datos............................................................................................. 38


4.2. Flujos en Java................................................................................................................................... 39
4.3. Escritura y Lectura de datos en ficheros............................................................................................. 40
4.4. Uso de las clases FileInputStream y FileOutputStream...................................................................... 41
Autoevaluacin 4......................................................................................................................................... 42
Unidad 5: Clases y Objetos de Java................................................................................................................ 44

5.1. Qu es Programacin Orientada a objetos?.................................................................................... 44


5.2. Clases................................................................................................................................................ 45
5.3. Atributos o Propiedades..................................................................................................................... 46
5.4. Mtodos ........................................................................................................................................... 47
5.3. Encapsulamiento, ocultacin.............................................................................................................. 47
5.4. Herencia............................................................................................................................................ 47
Autoevaluacin 5......................................................................................................................................... 48

8. Solucionario........................................................................................................................................... 49
9. Recursos Multimedia.......................................................................................................................... 55

PRELIMINARES

Gua didctica: Programacin de Algoritmos

3. Introduccin
Programacin de Algoritmos es una asignatura con 4 crditos , forma parte del grupo de materias
troncales de la malla curricular y pertenece al tercer ciclo en la carrera de Sistemas Informticos y
Computacin de la Escuela de Ciencias de la Computacin. Modalidad Abierta y a Distancia.
Los algoritmos son muy importantes a la hora de programar ya que son los pasos exactos para resolver
un problema. Esto quiere decir que es un procedimiento computacional bien definido que requiere de
datos de entrada y produce un valor como salida.
Con esta asignatura se pretende que nuestros estudiantes aprendan a resolver cualquier tipo de
problemas ya sean matemticos o computacionales, a travs del diseo y anlisis de algoritmos eficientes.
Los algoritmos no solo son importantes porque nos ayudan a resolver problemas, nos obligan a pensar
y son la base de la programacin, la calidad de un programa computacional depende de la calidad del
algoritmo.
Los contenidos que abarca la asignatura estn estructurados en cinco unidades, distribuidos 3 para el
primer bimestre y 2 para el segundo bimestre.
La primera unidad comprende la Gestin de excepciones en Java, donde se explica los fundamentos
sobre el manejo de excepciones, los API de Java y su aplicacin; la unidad dos, hablaremos de los
algoritmos sobre arreglos, aqu explicaremos la estructura de un arreglo, los algoritmos de bsqueda y
ordenamiento y las operaciones sobre arreglos; la tercera unidad trata sobre los algoritmos recursivos,
donde revisaremos algunos conceptos bsicos de recursividad y ejemplos de aplicacin.
En el segundo bimestre, la unidad 4 trata de la programacin con ficheros en Java, donde revisaremos
los conceptos preliminares sobre datos, los flujos en Java, la estructura y lectura de datos en los ficheros,
algoritmos con archivos y algunos programas de aplicacin; finalmente en la unidad 5 estudiaremos
las clases y objetos en java, donde se aprender los mecanismos que dispone el lenguaje Java para
almacenar y recuperar informacin.
Como docente de la universidad me desempeo en el Instituto de Investigaciones en Ciencias de la
Computacin, es muy grato para m darles la ms cordial bienvenida a este nuevo ciclo acadmico y
recuerden estimados estudiantes que estar gustoso de acompaarles y orientarles en el proceso de
aprendizaje.

Saludos y xitos.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRELIMINARES

4. Lineamientos generales del Modelo Educativo basado en


competencias y crditos acadmicos UTPL- ECTS
Sr. Estudiante recuerde que usted ha iniciado su formacin de tercer nivel con un sistema educativo
basado en el desarrollo de competencias a travs de crditos acadmicos. Este modelo le convierte
a usted en protagonista de su propia formacin y al profesor en mediador de las experiencias de
aprendizaje.
Surge entonces la necesidad de que tenga claro dos conceptos fundamentales competencia y crdito
acadmico.

Qu es una competencia? Entendemos por competencia el conjunto de actitudes, habilidades


y conocimientos que el alumno adquiere e incorpora segn sus caractersticas personales y
experiencias laborales y, que se ponen de manifiesto en el desempeo de la actividad profesional.
Las competencias se adquieren a lo largo del proceso formativo de la carrera y se desagregan en
objetivos de aprendizaje propuestos en cada asignatura.

Elementos de una competencia. Tres son los elementos que podemos distinguir en toda
competencia:

Actitudes: son predisposiciones y comportamientos ante situaciones concretas.


Habilidades: son destrezas para ejecutar con xito tareas, utilizar procedimientos y realizar
trabajos. Se desarrollan a travs de la prctica y la experiencia.
Conocimientos: constituyen los contenidos cientficos, conceptuales, tericos, conocidos tambin
como el aprendizaje acadmico.
Qu es un crdito acadmico UTPL / ECTS en la Modalidad a Distancia?

Un crdito acadmico es la unidad de medida del trabajo del estudiante, implica 32 horas de trabajo del
alumno (29 horas de trabajo autnomo y 3 horas de interaccin) 1.
Los crditos acadmicos que el estudiante ir acumulando en el transcurso de la carrera involucran:
aprendizaje autnomo (estudio personal), tareas de investigacin, interaccin en el Entorno Virtual de
Aprendizaje (EVA), participacin en tutoras, videoconferencias y otros eventos acadmicos (Jornadas,
seminarios, cursos, congresos avalados por la UTPL), prcticas acadmicas, pasantas preprofesionales
y de vinculacin con la colectividad; actividades de evaluacin; as como la realizacin del trabajo de
titulacin.
El modelo adoptado por la UTPL contempla dos tipos de competencias: genricas y especficas.
Competencias Genricas: Son aquellas capacidades (actitudes, habilidades y conocimientos)
comunes a todas las profesiones que se ofrecen en la UTPL. Constituyen una parte fundamental
del perfil que el estudiante debe desarrollar durante su formacin.

CONESUP (2008): Reglamento del Rgimen Acadmico del Sistema Nacional de Educacin Superior, art. 18.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRELIMINARES

Competencias Especficas: son propias de la titulacin, aportan a la cualificacin especfica para


la profesin, dndole consistencia social y profesional al perfil formativo.
Estructura general del programa formativo

Las Unidades Acadmicas o Escuelas de la UTPL han estructurado el programa formativo contemplando
cinco mbitos o bloques de asignaturas: Formacin Bsica (10%); Genricas de carrera (15%); Troncales
(35%) Complementarias (10%); Libre configuracin (10%) y adems, el Practicum que comprende las
Pasantas preprofesionales y de vinculacin con la colectividad y Practicum Acadmico (20%).
4.1. Competencias genricas
-
-
-
-
-
-
-
-
-
-
-
-

Capacidad para organizar y planificar el tiempo.


Capacidad de abstraccin, anlisis y sntesis.
Habilidades para buscar, procesar y analizar informacin procedente de fuentes diversas.
Capacidad de aplicar los conocimientos.
Capacidad para identificar, plantear y resolver problemas.
Capacidad creativa e innovadora.
Capacidad para tomar decisiones.
Capacidad de trabajo en equipo.
Habilidades interpersonales.
Compromiso con la calidad.
Capacidad para formular, disear y gestionar proyectos.
Compromiso tico.

4.2. Competencias especficas


Estas competencias se encuentran detalladas en la planificacin de cada bimestre.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRELIMINARES

5. Bibliografa
5.1. Bsica
Texto: DEITEL, H. y DEITEL, P. (2010): Como Programar en Java, Mxico, Editorial Pearson Prentice
Hall.

Se ha seleccionado este texto por las ventajas pedaggicas y tcnicas que brinda al estudiante, en el
mismo se tratan temas relacionados con el lenguaje desde los conceptos, estructuras y sintaxis bsicas,
de esta forma este recurso bibliogrfico le servir al estudiante no solo en el presente ciclo sino durante
el resto de su carrera, adicionalmente en el texto se puede encontrar una gran cantidad de ejercicios los
cuales han sido explicados a detalle por parte de los autores.
Gua: Riofro, G. (2011): Gua didctica de programacin de algoritmos, Ecuador, Editorial UTPL.

La gua didctica contiene las indicaciones que usted debe tener en cuenta para realizar un estudio
eficaz, en este texto tambin se han colocado ejercicios complementarios a los que estn planteados en
el texto base.
5.2. Complementaria

Ceballos J. (2007): Java 2 Lenguaje y aplicaciones. Madrid: Editorial Alfaomega Grupo Editorial.

Libro de programacin en Java, que abarca temas relacionados con sentencias de control, matrices,
mtodos, ficheros, programacin orientada a objetos, etc.

Gonzlez, A. Programacin en Java [En lnea]. Disponible en http://issuu.com/arnaldogonzales/


docs/realizaciondemiprimerprogramaennetbeans [Consultada en 23/02/2011].

En este video se explica el uso del IDE NetBeans para realizar programas en java.

Edualnav.
Programacin en Java [En lnea]. Disponible en http://www.youtube.com/
watch?v=DE521kI-73Q [Consultada en 23/02/2011].

En el video se explica con un ejemplo como empezar a utilizar NetBeans.

Borysbercley. Programacin en Java y modo grfico [En lnea]. Disponible en http://www.youtube.


com/watch?v=8eEtmYrgIJQ [Consultada en 23/02/2011].

El video muestra el uso de interfaz grfica NetBeans, ejemplos y manejo bsico. Parte I.

KAAF7. Programacin en Java y modo grfico [En lnea]. Disponible en http://www.youtube.com/


watch?v=8TSgylhyrNI [Consultada en 23/02/2011].

El video muestra el uso de interfaz grfica NetBeans, ejemplos y manejo bsico. Parte II.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRELIMINARES

Gigabytesperu. Programacion en Java y modo grfico [En lnea]. Disponible en http://www.


youtube.com/watch?v=ypDiMOwtwrs [Consultada en 23/02/2011].

El video muestra el uso de interfaz grfica NetBeans, ejemplos y manejo bsico. Parte III.

carlislemc. Programacin en Java y modo grfico [En lnea]. Disponible en http://www.youtube.


com/watch?v=LFr06ZKIpSM [Consultada en 23/02/2011].

Se explica la Programacin de GUI en Java.

Mdumse. Programacin en Java y modo grfico [En lnea]. Disponible en http://www.youtube.


com/watch?v=A9ZX5rWcDOE [Consultada en 23/02/2011].

Se muestra como elaborar una calculadora en modo grfico java.

Nuverlomm. Programacin en Java y modo grfico [En lnea]. Disponible en http://www.youtube.


com/watch?v=nR1Z6waoa_o [Consultada en 23/02/2011].

Se explica la Suma de nmeros en java.

Pbeltran. Programacin de Archivos en Java [En lnea]. Disponible en http://www.youtube.com/


watch?v=6E90QsyJbac [Consultada en 23/02/2011].

Se explica el manejo de Archivos en java. Parte I.

Pbeltran. Programacin de Archivos en Java [En lnea]. Disponible en http://www.youtube.com/


watch?v=0foctrktBQw&feature=related [Consultada en 23/02/2011].

Se explica el manejo de Archivos en java. Parte II.

Pbeltran. Programacin de Archivos en Java [En lnea]. Disponible en http://www.youtube.com/


watch?v=yB43khzF-iA&feature=related [Consultada en 23/02/2011].

Se explica el manejo de Archivos en java. Parte III.

5.3. Recursos OCW


Beltrn, A. y Santamara, J. (2009): Programacin en Java I OpenCourseWare de la Universidad


Politcnica de Madrid [En lnea] Madrid. Disponible en: http://ocw.upm.es/lenguajes-y-sistemasinformaticos/programacion-en-java-i. [Consulta 15-01-2011].

Recurso OCW de la asignatura Programacin en Java I que se dicta en la Universidad Politcnica


de Madrid. Abarca temas relacionados con tipo de datos, sentencias condicionales y repetitivas,
programacin orientada a objetos.

Sarriguren, A., Serrano, J y Alonso, L. (2009): Introduccin a la programacin en java OpenCourseWare de la Universidad del Pas Vasco [En lnea]. Madrid. Disponible en: http://ocw.
ehu.es/ensenanzas-tecnicas/introduccion-a-la programacion-en-java/Course_listing. [Consulta
15-01-2011].

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRELIMINARES

Presentacin de los elementos bsicos de programacin y de la programacin orientada a objetos,


con vistas a usar adecuadamente esos elementos para desarrollar, adaptar y depurar aplicaciones
con un tamao moderado, que no precisen de conocimientos algortmicos avanzados.

http://ocw.upm.es/lenguajes-y-sistemas-informaticos/programacion-en-java-i/Contenidos/
LecturaObligatoria/9-objetosyclases.pdf

El contenido de este recurso dispone de informacin relevante para estudiar los temas relacionados
con Clases y Objetos en Java.

http://ocw.upm.es/lenguajes-y-sistemas-informaticos/programacion-en-java-i/Contenidos/
LecturaObligatoria/16-herencia.pdf

En este recurso se trata el tema de la herencia en Java, mismo que es muy importante para la
creacin de nuevas clases en base al comportamiento de otras ya existentes.

10

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

PRELIMINARES

Gua didctica: Programacin de Algoritmos

6. Orientaciones generales para el estudio

Estimado Estudiante:
Para el mejor desempeo en sus actividades acadmicas y sobretodo de esta materia, la Universidad
pone a su disposicin una serie de recursos y estrategias para favorecer la comprensin de los temas a
tratar y lograr un aporte significativo en el conocimiento del modelado de sistemas.
Es importante destacar que para el estudio de la materia usted dispone un texto bsico, la gua didctica
y material adicional que se encuentra especificados en la bibliografa.
Le sugerimos aplicar un esquema de trabajo apropiado, en el cual pueda conjugar sus actividades
acadmicas, profesionales y familiares. A continuacin le presentamos algunos recursos y tcnicas de
estudio que le sern de mucha utilidad en el desarrollo de los contenidos de la materia:

Planifique previamente las actividades de estudio, de manera que pueda avanzar ordenadamente
en cada una de las unidades y temas establecidos en la gua de estudio. Lo alentamos a cumplir
con las actividades planificadas con la finalidad de que no se vea abocado a realizar grandes
jornadas de estudio al final de cada bimestre.

Lea detenidamente cada uno de los contenidos de la gua didctica y realice todas las actividades
que se plantean en la misma; no es aconsejable que usted trabaje de manera separada la gua
didctica y el texto bsico.

Aplique estrategias de aprendizaje como: resmenes, esquemas, organizar formularios, cuadros,


mentefactos, etc. que le permitan a comprender de mejor manera la temtica abordada.

Participe activamente en el Entorno Virtual de Aprendizaje (EVA), en donde podr interactuar tanto
con sus profesores tutores y compaeros; dar criterios y opiniones en los foros de discusin que
en cada bimestre se le propondrn.

Utilice los recursos web (videos, presentaciones, podcast) que la universidad ha puesto a
disposicin y que se encuentran en la pgina principal de la UTPL a los que se puede acceder
ingresando a la pgina www.utpl.edu.ec

Desarrolle las evaluaciones a distancia (una por cada bimestre) recuerde que estas sirven como
estrategia de aprendizaje y preparacin para las evaluaciones presenciales y que se califican sobre
6 puntos.

No pierda la oportunidad de contactarse con su profesor, utilice los horarios de tutora de la materia
para resolver las inquietudes presentadas en relacin a los contenidos, desarrollo de trabajos y/o
situaciones de carcter organizativo.

Adicionalmente encontrara a lo largo de la presente gua una serie de focalizadores los cuales le indicaran
que actividades debe desarrollar para reforzar el aprendizaje.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

11

Gua didctica: Programacin de Algoritmos

PRELIMINARES

Lectura recomendada

Antes de empezar el estudio de una nueva unidad se le recomienda leer los temas relacionados en el
texto, de esta manera usted se ubicara en el contexto de estudio que se esta tratando.

Actividades y ejercicios para reforzar el aprendizaje


De la misma forma se plantea que el estudiante desarrolle ciertas actividades o ejercicios para
complementar los conocimientos adquiridos.

Estrategia de aprendizaje
Otro aspecto importante es transmitir algunas buenas practicas en el desarrollo de aplicaciones y consejos
de programacin las cuales de la misma forma contribuyen a hacer que el proceso de aprendizaje del
estudiante sea efectivo.
De igual forma se recomienda que el estudiante pruebe diferentes lgicas para resolver un problema,
esto con la finalidad de poder diferenciar las ventajas y desventajas que pueden existir al momento de
resolver un problema.

12

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

7.

Proceso de enseanza-aprendizaje para el logro de competencias

PRIMER BIMESTRE
7.1. Planificacin para el trabajo del alumno
COMPETENCIAS
ESPECFICAS

OBJETIVOS DE
APRENDIZAJE

Definir
requerimientos,
disear,
implementar,
integrar,
administrar
y optimizar
soluciones
software
centralizadas,
distribuidas
soluciones web.

Aplicar la lgica
matemtica en
el contexto de
las Ciencias de
la Computacin,
con proyeccin,
al diseo
de circuitos,
programacin,
anlisis y
desarrollo de
algoritmos.
Definir y calcular
la eficiencia de
los algoritmos
utilizando
pseudocodigo
y midiendo el
desempeo de
los algoritmos
elaborados y
valorando su
utilidad.
Analizar y disear
sistemas digitales
aplicables a
la tecnologa
computacional

Revisar los conceptos


y estructura de un
arreglo
Aplicar los diferentes
algoritmos para
bsqueda y
ordenamiento de
elementos

Evaluar las tcnicas


estudiadas para su
aplicacin en ejercicios
especficos.

Estudiar los conceptos


y caractersticas de los
mtodo recursivos

CRONOGRAMA
ORIENTATIVO

Unidades/Temas

Tiempo estimado

Identificar la naturaleza
Unidad 1: Gestin de
y la importancia del
Excepciones en java
control de excepciones
Fundamentos sobre el
en Java
manejo de excepciones
Aplicar las estrategias
La API de Java
de control de
excepciones en
Uso de try y catch
problemas
La instruccin throws

CONTENIDOS

Estructura de un array

Algoritmos de bsqueda

Algoritmos de
ordenamiento

Operaciones adicionales
en un arreglo

Capitulo 3: Algoritmos
recursivos

Comprender los
ejercicios propuestos
para desarrollar nuevas

propuestas de solucin

Aplicar las tcnicas en


la solucin de nuevos
ejercicios.

Evaluar las tcnicas


estudiadas para su
aplicacin en ejercicios
especficos.

Lectura comprensiva de la
primera unidad.

Desarrollo de actividades
recomendadas en la gua
didctica.

Interaccin con el EVA

Inicio del desarrollo de la


evaluacin a distancia.

Lectura comprensiva de la
primera unidad.

Desarrollo de actividades
recomendadas en la gua
didctica.

Interaccin con el EVA

Inicio del desarrollo de la


evaluacin a distancia.

Lectura comprensiva de la
primera unidad.

Desarrollo de actividades
recomendadas en la gua
didctica.

Interaccin con el EVA

Inicio del desarrollo de la


evaluacin a distancia.

Semana 7 y 8

Repaso general de la materia

8 horas

Desarrollo ejercicios adicionales


en el EVA

8 horas de autoestudio.
8 horas de interaccin

Generar excepciones
propias
Capitulo 2: Algoritmos
sobre arreglos

Semana 1 y 2

ACTIVIDADES DE
APRENDIZAJE

Introduccin y
conceptos bsicos de
recursividad

Semana 3 y 4
8 horas de autoestudio.
8 horas de interaccin

Semana 5 y 6
8 horas de autoestudio.
8 horas de interaccin.

Aplicacin de la
recursividad

Unidades 1, 2 y 3

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

13

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Interaccin
con el EVA

Evaluacin
Presencial

Parte
Objetiva

Evaluacin a Distancia

Comportamiento tico

Cumplimiento, puntualidad, responsabilidad

Esfuerzo e inters en los trabajos

Respeto a las personas y a las normas de


comunicacin

X
X

Creatividad e iniciativa
Habilidades

3. Coevaluacin

2. Heteroevaluacin

Parte de
Ensayo

Actitudes

1. Autoevaluacin *

7.2. Sistema de evaluacin de la asignatura

Contribucin en el trabajo colaborativo y de


equipo
X

Presentacin, orden y ortografa

Investigacin (cita fuentes de consulta)

Aporta con criterios y soluciones

Dominio del contenido

Puntaje

10%

20%

TOTAL

30%

70%

14

Actividades presenciales y
en el EVA

PORCENTAJE

Mximo 1 punto
(Completa la evaluacin a
distancia)

Anlisis y profundidad en el desarrollo de


temas
Estrategia de aprendizaje

Conocimientos

Emite juicios de valor argumentadamente

20 puntos

Para aprobar la asignatura se requiere obtener un puntaje mnimo de 28/40 puntos, que equivale al 70%
* Son estrategias de aprendizaje, no tienen calificacin; pero debe responderlas con el fin de autocomprobar su proceso de aprendizaje.
** Recuerde que la evaluacin a distancia del primero y segundo bimestre consta de dos partes: una objetiva y otra de ensayo, debe desarrollarla y entregarla en
su respectivo centro universitario.

Sr. estudiante:
Tenga presente que la finalidad de la valoracin cualitativa es principalmente formativa; sin embargo,
en circunstancias especiales podra afectarle positiva o negativamente en su calificacin cuantitativa.

14

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

7.3. Orientaciones especficas para el aprendizaje por competencias

Unidad 1: Gestin de excepciones en Java


Recursos educativos multimedia

Estimados participantes, a partir de este momento empezamos con el estudio de la presente asignatura,
espero que las indicaciones impartidas por mi persona a travs de la presente gua didctica les sean
de gran utilidad para obtener los conocimientos que nos hemos planteado, adicionalmente recuerden
que disponen de varios medios para solicitar ayuda o explicacin de temas puntuales y que necesiten
mayor atencin. De la misma forma al empezar cada unidad les hare una presentacin del contenido y
su ubicacin dentro del contexto de la asignatura.
La gestin de excepciones en un proceso de programacin es un tema muy importante si queremos que
nuestras aplicaciones sean robustas, de calidad y sean tiles para nuestros usuarios; pero, qu es una
excepcin? a este trmino en algunos casos lo encontraremos con el nombre de error o problema, esto
es muy cierto, pues una excepcin es una situacin poco habitual, aquella situacin que se sale de un
proceso o flujo normal, este aspecto representa especial atencin en el rea de desarrollo de aplicaciones,
puesto que los programas siguen una serie de pasos que fueron programados y en el transcurso del
mismo pueden ocurrir situaciones no previstas; imagnense ustedes como estudiantes de la UTPL que
estn realizando una matrcula on-line y repentinamente existe un fallo en la red o se digita mal un dato,
etc. Es evidente que debe existir un mecanismo que controle estas situaciones cuyo principal objetivo en
este caso particular es no dejar el proceso de matrcula inconsistente, con datos perdidos o parcialmente
grabados. En esta unidad estudiaremos las tcnicas que proporciona el lenguaje de programacin Java
para gestionar y controlar excepciones.
1.1. Fundamentos sobre el manejo de excepciones

Sr. estudiante lea el captulo 13 del texto base, de la misma forma le


recomiendo que codifique los ejercicios planteados en las secciones
correspondientes
En las secciones 13.1-4 se presentan los fundamentos conceptuales relacionados con el manejo de
excepciones, voy a mencionar algunas: ArrayIndexOutOfBoundsException para controlar el acceso a los
elementos en un arreglo, ArithmeticException la cual controla excepciones generadas en operaciones
matemticas, y as sucesivamente el lenguaje Java proporciona una gran cantidad de clases para
gestionar estos procesos.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

15

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

1.2. La API de Java

La documentacin dela API de Java es una herramienta valiosa para


conocer y aplicar los recursos que dispone este lenguaje
Antes de continuar con el estudio de las excepciones quisiera hacer una parntesis para indicarles
algo que considero fundamental en el aprendizaje del lenguaje Java y en cualquier tema que estn
estudiando, a mi me ha servido de forma significativa y personalmente pienso que es una de las grandes
ventajas que presenta este lenguaje para el desarrollo de las aplicaciones, el la documentacin de la API
de Java, hago esta explicacin ahora que estamos iniciando con el presente curso puesto que de aqu
en adelante encontraran en el texto algunas referencias a esta documentacin, pero mas all de eso
ustedes necesitaran saber entre otras cosas lo siguiente:

Como estas estructuradas las clases,

A que paquete pertenecen,

Cuantos constructores tiene una clase,

Que mtodos existen para un objeto dado,

Que propiedades tiene un objeto dado

La jerarqua de clases

La cantidad y tipo de parmetros que recibe un constructor o mtodo

Que tipo de dato retorna un mtodo

Una descripcin de lo que hace un mtodo

El tipo de excepcin que se debe controlar en un mtodo

Igualmente es importante saber si un mtodo es static, public, private, etc.

Todo lo relacionado con el tema de herencia es decir que mtodos son propios de una clase y
cuales son heredados

Bueno, todo esto y muchas cosas mas son importantes para un desarrollador.

16

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Figura 1.1 Documentacin de la API de Java


En Java toda la gran cantidad de clases existentes heredan de la clase Object y toda esta jerarqua se
muestra en esta documentacin. En la Figura 13.3 del texto base se muestra la estructura de herencia de
la clase Exception, pues esta jerarqua se ve reflejada en la figura 1.1.
Les recomiendo que utilicen desde el principio esta documentacin, ustedes se pueden dar cuenta que
las clases se encuentran agrupadas en paquetes y cuando utilicemos cualquiera de stas en nuestros
programas lo primero que se debe hacer es importar el paquete que la contiene.
1.3. Uso de try y catch

Sr. estudiante lea la seccin 13.4 del texto base, en la cual existe un ejercicio
explicativo de los bloques try y catch.
El uso de las sentencias try y catch es la principal forma de controlar las excepciones en java, tal como se
indica en el texto base en el bloque try se coloca las instrucciones que potencialmente podran generar
esta situacin, la sintaxis de estas instrucciones es la siguiente:

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

17

Gua didctica: Programacin de Algoritmos

try {

. . . . . . . . . . .

. . . . . . . . . . .
}
catch(TipoException1 e1) {

. . . . . . . . . . .

. . . . . . . . . . .
}
catch(TipoException2 e2) {

. . . . . . . . . . .

. . . . . . . . . . .
}

PRIMER BIMESTRE

.
.
.
.
.
.

Luego de una instruccin try se debe colocar por lo menos un bloque catch cuyo cdigo se ejecuta si
y solamente si se ha generado una excepcionen en el bloque try correspondiente. En la Figura 13.2 del
texto base se podr dar cuenta que puede existir mas de un bloque catch, es decir se pueden gestionar
diferentes tipos de excepciones a la vez.
1.4. Uso de la instruccin throws
A continuacin revisemos el uso de la instruccin throws misma que sirve para declarar que en un
determinado mtodo puede ocurrir una excepcin, esto quiere decir que el control de la excepcin
se la debe realizar en la lnea de cdigo que llama a este mtodo, en la Figura 13.2 del texto base se
muestra el uso de la instruccin throws en el mtodo denominado cociente, algo importante que se
debe mencionar es que si en un mtodo se declara una o mas excepciones con esta instruccin pues es
obligatorio utilizar las instrucciones try y catch en la lnea que llama a este mtodo, en caso contrario nos
dar un error de compilacin.
1.5. Generar excepciones propias
Dependiendo de la naturaleza de la aplicacin que se este desarrollando se puede requerir lanzar una
excepcin especifica para un caso puntual, en estos casos es posible crear una clase que describa la
excepcin, la nueva clase debe heredar directa o indirectamente de Exception, en la Figura 17.4 se
presenta la codificacin de un ejemplo.

18

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Autoevaluacin 1

Conteste verdadero (V) o falso (F)


N.

Pregunta

Una excepcin es la indicacin de un problema que ocurre durante la ejecucin de


un programa

El manejo de excepciones ayuda a mejorar la tolerancia a las fallas de un programa

Un intento por acceder a un elemento ms all del fin del arreglo, es un ejemplo de
excepcin.

La clase Scanner, es un tipo especial de clase que no produce excepciones.

El manejo de excepciones permite mejorar la claridad y la capacidad de modificacin


de un programa

El lenguaje de programacin Java no soporta el manejo de excepciones.

Las excepciones pueden surgir a travs de cdigo mencionado en forma explcita en


un bloque try, a a travs de llamadas a otros mtodos.

El bloque catch es el que maneja una excepcin, dentro de un programa.

Es un error de sintaxis colocar cdigo entre un bloque try y su correspondiente


bloque catch

10

Cada instruccin catch puede tener varios parmetros.

11

Con el manejo de excepciones un programa puede seguir ejecutndose despus de


lidiar con un problema.

12

Si se sabe que un mtodo podra lanzar una excepcin, se debe inclur en el programa
el cdigo apropiado para manejar excepciones.

13

El manejo de excepciones est diseado para procesar errores sincrnicos que


ocurren cuando se ejecuta una instruccin.

14

Un ejemplo de error sincrnico es el desbordamiento aritmtico.

15

Java clasifica a las excepciones en dos categoras: excepciones verificadas y


excepciones no verificadas

16

Las excepciones que son subclases directas o indirectas de la clase RuntimeExcepction


son excepciones verificadas.

17

El compilador verifica cada una de las llamadas a un mtodo, junto con su declaracin,
para determinar si el mtodo lanza excepciones verificadas.

18

La clusula throws especifica las excepciones que lanza un mtodo.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

19

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

19

Limpiar la pila de llamadas a mtodos significa que el mtodo en el que no se atrap


la excepcin termina, todas las variables en ese mtodo quedan fuera de alcance y el
control regresa a la instruccin que invoc originalmente a se mtodo.

20

Una excepcin que no sea atrapada en una aplicacin har que se ejecute el
manejador de excepciones predeterminado de Java.

21

El mtodo printStackTrace sirve para imprimir un mensaje de error, cuando una


excepcin es atrapada.

22

Las excepciones encadenadas permiten que un objeto de excepcin mantenga la


informacin completan sobre el rastreo de la pila

23

Por convencin, todos los nombres de las clases de excepciones deben terminar con
la palabra throws.

24

Una precondicin debe ser verdadera cuando se invoca a un mtodo.

25

Una poscondicin es falsa una vez que el mtodo regresa con xito.

26

Las aserciones son condiciones que deben ser verdaderas en un punto especfico de
un mtodo.

Ejercicios propuestos

Desarrolle los siguientes ejercicios planteados al final del captulo 13 del texto base: 13.17, 13.19, 13.20,
13.22

Ir a solucionario

20

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Unidad 2: Algoritmos sobre arreglos


Recursos educativos multimedia

Bien, continuemos con el estudio de nuestra asignatura, en esta ocasin empezaremos con el estudio
de una estructura muy importante en el rea de la programacin, los arreglos! estos tipos de datos
pertenecen al grupo de las estructuras compuestas, es decir se forman en base a las estructuras
fundamentales, y tal como indique anteriormente son muy importantes puesto que estn presentes
en cualquier aplicacin por mas pequea o de tipo corporativa que sta sea, si bien es cierto ustedes ya
realizaron el ciclo anterior un estudio preliminar de este tema, pues en la presente unidad empezaremos
haciendo un repaso y posteriormente nos centraremos en el estudio de varios algoritmos para manipular
los valores incluidos en un arreglo, los procesos mas importantes que se realizan sobre estas estructuras
son: bsqueda de elementos, ordenamiento, insercin. Quiero indicar que el propsito principal de
este tema es que usted seor estudiante aprenda a dominar y mantener la informacin existente en
un arreglo cuya aplicacin sea en contextos especficos, tales como anlisis de datos temporales, en
el campo de la educacin para almacenar notas de estudiantes y realizar proyecciones, almacenar los
datos de las cosechas para calcular costos de produccin, etc. Bien, luego de esta pequea introduccin
iniciemos con el estudio, y ya saben mucha suerte, recuerden que la clave para tener xito y comprender
estos temas es: en primer lugar entender y seguir la indicaciones que se proponen y luego realizar los
ejercicios planteados.
2.1. Estructura de un Array

Sr. estudiante lea el captulo 7 del texto base en el cual se presenta los conceptos fundamentales de los arreglos

Fuente: http://www.google.com/imgres?imgurl=http://4.bp.blogspot.com
Figura 2.1 Arreglo de paneles solares

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

21

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Antes de empezar con el estudio de los algoritmos para manipular los datos almacenados en un arreglo,
recordemos algunas caractersticas importantes de este tipo de datos, adicionalmente ustedes pueden
ver la Figura 7.1 del texto base en el cual se muestra grficamente los componentes de un array:

Se diferencia claramente dos componentes; los ndices y los datos, en el lenguaje Java estos ndices
empiezan desde 0.
Son estructuras de longitud fija, es decir conservan la misma longitud desde el momento que son
creados.

Los datos almacenado son del mismo tipo.

En Java tambin se los conoce como tipos de referencia, puesto que una variable de tipo arreglo en
realidad lo que almacena es una referencia a memoria y no los datos propiamente, esto se puede
comprobar puesto que no es posible comparar directamente dos variables, es decir si tengo los
arreglos a y b, la expresin a==b no seria valida, en su lugar se debe utilizar el mtodo equals.

Para acceder al valor de un arreglo se debe especificar entre corchetes el ndice de la posicin,
el cual debe ser un nmero entero, este valor puede ser el resultado de cualquier operacin
matemtica.

Una vez que hemos recordado estas caractersticas, revisemos los aspectos relacionados con la
declaracin e inicializacin:

Como ustedes habrn visto en el texto base, para crear un arreglo es necesario utilizar la instruccin
new, esto se debe a que este tipo de dato es en realidad un objeto y las variables almacenan la
referencia a este objeto en memoria tal como lo indique anteriormente.

Otro aspecto importante es el relacionado con la inicializacin, fjense que es posible asignarle
valores al arreglo al momento de su declaracin o creacin, en este caso ya no se utiliza la
instruccin new puesto que la mquina virtual de Java crea el objeto con la cantidad de elementos
especificados entre las llaves (en la seccin 7.4 hay un ejemplo de esta inicializacin).

Es muy importante que usted domine ampliamente estos temas de base, puesto
que los mismos son fundamentales para la comprensin de los algoritmos de
bsqueda, ordenamiento y otros relacionados con arreglos, por lo tanto le
recomiendo codificar los ejemplos que se muestran en esta seccin del texto
base, son ejercicios muy cortos pero que le ayudaran mucho en su proceso de
aprendizaje.
Algo que me parece interesante es lo que se muestra en la seccin 7.6 del texto base, les comento que yo
como profesor de la UTPL he utilizado tradicionalmente los ciclos for clsicos para recorrer los elementos
de un arreglo << for (int i=0; i<arreglo.length; i++) >>, pero en esta ocasin se presenta una estructura
for mejorada, mas simple y que adems evita caer en los tpicos errores de acceder a elementos fuera de
rango, en la figura 7.12 se muestra el cdigo y particularmente en la lneas 12 y 13 se ve como se declara
una variable (numero) la cual recoge los elementos del arreglo en cada iteracin e internamente en el
ciclo for se utiliza esta variable.
Bien, para terminar con este repaso, en la seccin 7.9 se presentan los arreglos multidimensionales,
particularmente los bidimensionales, de la misma forma les recomiendo que revisen estos contenidos,
si bien es cierto que todas las caractersticas que revisamos en los arreglos de una dimensin se aplican

22

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

en esta parte, pero obviamente en este caso existen diferencias en cuanto a la codificacin para recorrer,
inicializar, crear matrices; puesto que ahora se tiene dos subndices, la Figura 7.16 muestra la estructura
de una matriz.
2.2. Algoritmos de bsqueda

Sr. estudiante lea el captulo 16, la seccin 2 del texto base en el cual se explica
las tcnicas relacionadas con los algoritmos de bsqueda
Esta claro que un arreglo hace referencia a un conjunto de datos, por lo tanto existe una seria de
operaciones que son tpicas de realizar en esta estructura, empecemos con el estudio de los algoritmos
de bsqueda puesto que estos algoritmos son la base para la realizacin de otras operaciones como son
eliminacin, modificacin, etc.
Los algoritmos de bsqueda bsicamente pueden ser de dos tipos:

Bsqueda secuencial o lineal


Bsqueda binaria

La idea bsica de la bsqueda secuencial es recorrer el arreglo e ir comparando cada elemento del
arreglo con la clave o valor buscado, se puede aplicar tanto en arreglos desordenados como en arreglos
ordenados, aunque para el caso de los arreglos ordenados se recomienda la bsqueda binaria puesto
que es mas eficiente en este caso, en la seccin 16.2 del texto base se muestra el cdigo correspondiente
a estos dos algoritmos de bsqueda.
En lo relacionado a la bsqueda binaria esta se aplica exclusivamente en arreglos ordenados puesto que
la idea bsica de esta tcnica es dividir el arreglo en dos partes e ir ubicando el elemento en la primera
mitad o en la segunda, dependiendo de su valor, si es mayor o si es menor que el elemento central del
arreglo, en la siguiente imagen se puede observar de forma grafica como trabaja este algoritmo.
El cdigo para la bsqueda binaria se encuentra disponible en el texto base, a continuacin les presento
una imagen para entender grficamente la lgica de este algoritmo; veamos que los datos en este arreglo
se encuentran ordenados y se pide buscar el elemento nmero 44, usted se puede dar cuenta que se
necesitan nicamente 5 iteraciones hasta encontrar el elemento buscado a diferencia de la busque
secuencial en al cual se requeriran por lo menos 14 comparaciones hasta encontrar el elemento.

Figura 2.2 Bsqueda binaria

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

23

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

2.3. Algoritmos de ordenamiento

Sr. estudiante lea el captulo 16, la seccin 3 del texto base en el cual se explica
las tcnicas relacionadas con los algoritmos de ordenamiento en arreglos.
Otra de las tares fundamentales en el trabajo con arreglos es el ordenamiento de sus elementos, en la
seccin 16.3 del texto base se describen 3 tcnicas:


Ordenamiento por seleccin


Ordenamiento por insercin
Ordenamiento por combinacin

Cada uno de estos mtodos tiene sus ventajas y sus desventajas, en unos casos la sencillez de su
implementacin pude resultar un factor favorable, en otros casos se debe tener en cuenta la eficiencia o
el tiempo y cantidad de recursos de memoria que requieren para ejecutar su trabajo.
Por otra parte quiero mostrarles la tcnica conocida como mtodo burbuja la cual no consta en el texto
base pero seria interesante conocerla puesto que es un mtodo simple y la idea principal consiste en
acarrear los elementos menores hasta ubicarlos en su posicin correcta

Figura 2.3 Algoritmo de Burbuja

24

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Anlisis del programa AlgoritmoBurbuja (Figura 2.3)


Lnea

Descripcin

Se declara e inicializa el arreglo llamado nmeros

Se obtiene la cantidad de elementos del arreglo para lo cual se utiliza el atributo length del
objeto

9,10
12,13,
14

Para ordenar un arreglo siempre se utilizan dos ciclos repetitivos


Si do elementos consecutivos (j y j-1) no estn en el orden correcto, estos se cambian, para
lo cual se utiliza una variable auxiliar

17

En cada iteracin queda ordenado el ltimo elemento por lo tanto en cada iteracin se
disminuye el limite

20, 21

Se recorre el arreglo para presentar sus elementos mediante una estructura for mejorada

2.4. Operaciones adicionales en un arreglo


Existen otras operaciones que se debe realizar frecuentemente en un array, les puedo mencionar algunas:
eliminar un elemento, insertar un elemento en un arreglo ordenado o en una posicin especifica, etc.
Veamos en primer lugar la lgica para eliminar elementos, el aspecto clave en este proceso es que se
deben mover los elementos para llenar el casillero del elemento eliminado, este proceso se debe repetir
hasta el ltimo elemento, veamos el cdigo.

Figura 2.4 Algoritmo de eliminacin

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

25

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Anlisis del programa Eliminar (Figura 2.4)


Lnea

Descripcin

9,10,
11,12,
13

Mediante una estructura while se busca la posicin del elemento que se quiere eliminar
para lo cual se compara cada elemento del arreglo con el valor almacenado en la variable
x.
El proceso de eliminacin consiste en recorrer los elementos desde la posicin del datos
hasta el final del arreglo y moverlos una posicin hacia la izquierda, para lo cual se coloca
el elemento pos+1 en la posicin pos .

14,15,
16,17

Otra de las operaciones que son muy comunes cuando trabajamos con arreglos es la insercin de nuevos
elementos, en este caso se debe tener en cuenta que si el arreglo ya esta lleno el ultimo elemento se
perder, y la lgica es muy similar al problema presentado anteriormente puesto que los elementos se
deben mover para crear el espacio para el nuevo elemento.

Figura 2.5 Algoritmo para insertar elementos en un arreglo ordenado


Anlisis del programa Insertar (Figura 2.5)
Lnea
7
9,10,
11
12,13,
14
16

26

Descripcin
Se especifica el elemento que se quiere insertar
Se busca la posicin de insercin, y teniendo en cuenta que el arreglo esta ordenado
ascendentemente, en este caso se recorre el arreglo mientras el elemento que se quiere
insertar sea menor que cada valor recorrido
Se recorre el arreglo desde el ltimo elemento hasta la posicin de insercin y se va
moviendo cada elemento una posicin a la derecha
Finalmente se copia el valor que se quiere insertar en la posicin encontrada en el proceso
anterior.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Como se puede dar cuenta el trabajo con arreglos no es complicado puesto que lo mas importante es
manejar de forma consistente la informacin, antes de escribir el cdigo se debe analizar la solucin
para de esta manera tener la idea clara del algoritmo que se desea programar, para finalizar esta unidad
revisemos un ejercicio especfico, en esta ocasin vamos a presentar la frecuencia de ocurrencia de cada
valor en un arreglo.

Figura 2.6 Nmero de ocurrencias de los elementos en un arreglo


Anlisis del programa Frecuencia (Figura 2.6)
Lnea

Descripcin

11

La idea de este ejercicio es presentar cuantas veces esta cada elemento en el arreglo, para
lo cual se recorren todos sus elementos
Anlisis del programa Frecuencia (Figura 2.6)

Lnea
12
13,14,
15,16,
17
18
19

Descripcin
A cada elemento que lo vamos a comparar con el resto le llamaremos valorPrincipal
Es necesario verificar si cada valor principal que visitemos ya existe anteriormente en el
arreglo es decir ya ha sido contabilizado o analizado, esto para evitar presentar dos o mas
veces dicho valor, en este caso se recorre los elementos desde la posicin de valor principal
hasta el primer elemento, si elemento ya existe se coloca true en la variable correspondiente.
El proceso de contabilidar los valores se realiza nicamente si el elemento no existe
previamente, es decir si la variable yaExiste esta en false
Se inicializa el contador de elementos en 0

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

27

Gua didctica: Programacin de Algoritmos

20,21,
22,23,
24

PRIMER BIMESTRE

Finalmente se visita cada casillero del arreglo para contabilizar nicamente aquellos
elementos que son iguales al valor principal

2.5. Operaciones con la clase Arrays


La API de Java proporciona una amplia cantidad de recursos para facilitar el trabajo del programador,
ahora quiero presentarles un ejemplo para trabajar con arreglos utilizando la clase Arrays la cual
proporciona varios mtodos para realizar tareas de bsqueda y ordenacin principalmente:

Figura 2.7 Uso de la clase Arrays


Anlisis del programa EjercicioArrays (Figura)
Lnea

Descripcin

Importamos la clase Arrays, recordemos que nicamente las clases que estn en java.lang
se importan automticamente
Anlisis del programa EjercicioArrays (Figura)

Lnea

Descripcin

10

La clase Arrays dispone de un mtodo llamada sort, ejecutamos este mtodo envindole
como parmetro el nombre del arreglo, la posicin inicial y final que nos interesa que se
ordene, en nuestro caso queremos que se ordene todo el arreglo

12,13

Se presentan los elementos ordenados

16,17

En esta segunda parte se busca un elemento mediante la tcnica de bsqueda binaria disponible en la clase Arrays.

19

28

Tenga en cuenta que la posicin presentada corresponde al arreglo ordenado


Puesto que la bsqueda binaria se efecta sobre arreglos ordenados

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Le recomiendo que profundice el estudio de esta clase para lo cual revise


la documentacin en la API de Java y vea que mtodos adicionales existen
y pruebe su funcionamiento en una aplicacin. Adicionalmente seria
recomendable que revise las clases ArrayList y Vector las cuales estn
orientadas tambin para trabajar con colecciones de datos

Autoevaluacin 2

N.

Pregunta

Los arreglos son estructuras de datos que consisten de elementos de datos


relacionados, del mismo tipo.

Los arreglos una vez creados, son entidades de longitud variable.

Un ejemplo de la declaracin de un arreglo es: int c [ ] = new int [ 12]

Los arreglos multidimensionales de dos dimensiones de utilizan con frecuencia para


representar tablas de valores, que consisten de informacin de filas y columnas.

Los arreglos que requieren dos subndices para identificar un elemento especfico se
llaman arreglos tridimensionales

Para almacenar las calificaciones de los estudiantes, se utiliza un arreglo bidimensional.

El primer elemento en cada arreglo tiene el subndice cero, y algunas veces se llama
elemento cero.

Para hacer referencia a un elemento especfico en un arreglo, especificamos el


nombre de la referencia al arreglo y el ndice (subndice) del elemento en el arreglo.

Cuando se crea un arreglo , cada elemento del mismo de recibe un valor


predeterminado , cero para los elementos numricos de tipo primitivo, false para los
elementos booleanos y null para las referencias.

10

Un programa puede crear un arreglo e inicializar sus elementos con un inicializador


de arreglos.

11

La instruccin for mejorada permite a los programadores iterar a travs de los


elementos de un arreglo o de una coleccin, sin utilizar un contador.

12

Para pasar a un mtodo una referencia a un objeto, simplemente se especifica en la


llamada al mtodo el nombre de la variable que hace referencia al objeto.

13

El nmero de argumentos en el arreglo se puede obtener mediante el campo string


del arreglo.

14

Las listas y tablas de valores pueden guardarse en arreglos.

15

La bsqueda de datos implica determinar si una clave de bsqueda est presente en


los datos y, de ser as, encontrar su ubicacin.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

29

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

16

El algoritmo de bsqueda lineal busca cada elemento en el arreglo en forma


secuencial, hasta que encuentra el elemento correcto.

17

Una de las principales diferencias entre los algoritmos de bsqueda es la cantidad de


esfuerzo que requieren para poder devolver un resultado.

18

El algoritmo de bsqueda binaria es menos eficiente que la bsqueda lineal.

19

La bsqueda binaria se ejecuta en un tiempo O(log n), ya que cada paso elimina la
mitad de los elementos restantes.

20

El ordenamiento por seleccin es un algoritmo de ordenamiento simple, pero


eficiente.

21

El ordenamiento por combinacin es un algoritmo de ordenamiento que es ms


rpido, pero ms complejo de implementar que el ordenamiento por seleccin y el
ordenamiento por insercin.

22

En el ordenamiento por insercin, despus de la i-sima iteracin quedan ordenados


los primeros i elementos del arreglo original.

23

Una invariante es una asercin que es verdadera antes y despus de la ejecucin de


una parte del cdigo de un programa.

24

En el ordenamiento por insercin se utiliza una clave de bsqueda

25

El algoritmo de ordenamiento por insercin, se ejecuta en un tiempo O (n 2 )

Ejercicios propuestos

1.
2.
3.
4.

Desarrolle un programa para modificar un elemento en un arreglo ordenado.


Desarrolle un programa para invertir los elementos de un arreglo
Desarrolle un programa para ordenar cada una de las filas de una matriz
Desarrolle un algoritmo para buscar un elemento en una matriz

Ir a solucionario

30

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Unidad 3: Algoritmos Recursivos


Recursos educativos multimedia

Hola estimados participantes, estamos entrando al estudio de nuestra tercera unidad, espero que los
temas tratados anteriormente estn claros. La presente unidad esta orientado al tratamiento de una
tcnica muy especial de programacin, la recursividad en primera instancia puede ser algo complicado
entender su funcionamiento, lo importante en este aspecto es empezar el estudio con ejemplos
pequeos, en este punto vale la pena comentarles que si bien es cierto existen algunos programas
que se pueden resolver tanto de forma recursiva como de forma iterativa (mediante ciclos for o while),
existen otros problemas que son netamente recursivos, en la seccin 15.1 del texto base se mencionan
algunos ejemplos de los cuales quiero resaltar que el tratamiento de arboles binarios, Torres de Hanoi,
Fractales, entre otros son de naturaleza recursiva y en algunos casos es muy complicado resolverlos de
forma iterativa como mencione anteriormente, bueno vamos a empezar y como siempre desendoles
xitos en el presente estudio y adicionalmente les recomiendo que lean el texto base en las secciones
indicadas, recuerde que la programacin es como las matemticas, debe hacer ejercicios para entender
los contenidos.
3.1. Introduccin y conceptos bsicos de recursividad

Sr. estudiante lea el captulo 15, las secciones 2,3,4,5 en el cual existe la fundamentacin terica de la recursividad y adicionalmente ejercicios explicados
sobre este tema.

Fuente: http://lanza-un-d100000.blogspot.com/
Figura 3.1 Recursividad
Tal como usted se pudo dar cuenta en la lectura realizada la recursividad es una tcnica de programacin
en la cual un mtodo se llama a si mismo, esa es la idea principal en este tema, a continuacin quiero
mostrarles algunos aspectos claves en el tratamiento de un algoritmo recursivo.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

31

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

El 99%(por no decir el 100%) de los mtodos recursivos deben tener una estructura condicional
(if ).

Uno de los bloques de la estructura condicional (ya sea el bloque if o el bloque else) contiene la
instruccin de terminacin del algoritmo, es decir en esta parte el algoritmo ya no realiza llamadas
a si mismo, lo cual implica el fin de las llamadas recursivas.
En el otro bloque de la estructura condicional, se implementa la llamada recursiva, es decir se
llama al mismo mtodo con nuevos valores en los parmetros.

Cada llamada recursiva implica que en la memoria del computador se estn guardando copias
de los valores que tienen las variables en ese momento, esto es muy importante puesto que un
numero excesivo de llamadas recursivas puede hacer ms lento el equipo.

Recuerde algo importante, todo mtodo recursivo debe tener una condicin de finalizacin, la ausencia
de este componente puede causar que el programa realice un nmero infinito de llamadas a si mismo,
es decir el programa nunca terminar su ejecucin y tendramos que terminar el programa de forma
inesperada, saliendo de la plataforma de desarrollo y en algunos casos es necesario reiniciar el equipo
puesto que la memoria del computador ha sido saturada.
Recuerde que es necesario leer los temas indicados en el texto base, esta actividad reforzara su
aprendizaje.
3.2. Aplicacin de la recursividad

Sr. estudiante en la seccin 15.3 existe un ejercicio explicado sobre factoriales,


adicionalmente en la gua se propone otro problema para que refuerce su
estudio
En el texto base se ha desarrollado como primer ejemplo el desarrollo del clculo de factorial mediante
un mtodo recursivo, adicionalmente quiero mostrarles otro ejercicio, el desarrollo de la bsqueda
binaria, pienso que este ejemplo es mas claro y sobre todo objetivo desde el punto de vista grfico para
entender el funcionamiento de los mtodos recursivos.

32

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Figura 3.2 Arreglo de bsqueda binaria


Anlisis del programa BusquedaBinaria (Figura 3.2)
Lnea

Descripcin

11

Se llama a la funcin de bsqueda binaria para lo cual se enva la posicin del primero y
ltimo elemento del arreglo, adicionalmente se enva el valor que se quiere buscar.

16

La condicin para terminar las llamadas recursivas es que la posicin del elemento final sea
mayor que la posicin del elemento inicial, en este caso se calculan nuevos valores para
estas variables y se realiza otra llamada al mismo mtodo con estos nuevos valores.

27

En caso contrario no se realizan llamadas recursivas.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

33

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

Autoevaluacin 3

Conteste verdadero (V) o falso (F).


N.

Pregunta

Un mtodo recursivo de llama a s mismo en forma directa o indirecta a travs de otro


mtodo.

Si se llama a un mtodo recursivo con un problema ms complejo que el caso base,


por lo general, divide el problema en dos piezas conceptuales: una pieza que el
mtodo sabe cmo resolver y otra pieza que no sabe cmo resolver.

Una llamada recursiva puede ser una llamada a otro mtodo, que a su vez realiza una
llamada de vuelta al mtodo original.

La obtencin del factorial de un nmero, es un ejemplo de recursividad.

La serie Fibonacci, se puede resolver aplicando algoritmos recursivos, esta serie


empieza con 0 y 1 , y tiene la propiedad de que cada nmero subsiguiente de
Fibonacci es la suma de los dos anteriores.

Una pila es una estructura de datos en la que slo se pueden agregar o eliminar datos
de la parte inferior.

Las pilas se conocen como estructuras de datos ltimo en entrar, primero en salir, el
ltimo elemento que se insert en la pila, es el primero que se elimina de ella.

Si hay ms llamadas o mtodos recursivos o anidadas de las pueden almacenarse en la


pila de ejecucin del programa, se produce un error conocido como desbordamiento
de pila.

Tanto la iteracin como la recursividad se basan en una instruccin de control: la


iteracin utiliza una instruccin de repeticin, la recursividad una instruccin de
seleccin.

10

Tanto la iteracin como la recursividad no implican repeticin ni prueba de


terminacin

11

Tanto la iteracin como la recursividad pueden ocurrir en forma infinita.

12

Los problemas que se pueden resolver en forma recursiva, no se pueden resolver de


forma iterativa.

13

Se prefiere un mtodo recursivo en vez de uno iterativo cuando el primero refleja el


problema con ms naturalidad, y produce un programa ms fcil de comprender y
de depurar.

14

Un fractal es una figura geomtrica que se genera a partir de un patrn que se repite
en forma recursiva, un nmero infinito de veces.

15

Los fractales tienen una propiedad de auto - similitud; las subpartes son copias de
tamao reducido de toda la pieza.

16

Al uso de la recursividad para regresar a un punto de decisin anterior se la conoce


como vuelta atrs recursiva.

34

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

PRIMER BIMESTRE

17

Si un conjunto de llamadas recursivas no `produce como resultado una solucin al


problema , el programa retrocede hasta el punto de decisin anterior y toma una
decisin distinta.

18

Un mtodo que se llama a s mismo en forma indirecta no es un ejemplo de


recursividad.

19

La recursividad puede ser eficiente en la computacin, debido a la reduccin en el


uso del espacio en memoria.

20

Cuando se llama a un mtodo recursivo para resolver un problema, es capaz de


resolver solo el caso base o simple.

21

Para terminar la recursividad se requiere de un caso base.

Ejercicios propuestos

Desarrolle los siguientes ejercicios planteados al final del captulo 15 del texto base: 15.7, 15.8, 15.9,
15.12, 15.13, 15.17

Ir a solucionario

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

35

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

SEGUNDO BIMESTRE
7.4. Planificacin para el trabajo del alumno
COMPETENCIAS
ESPECFICAS
Definir

requerimientos,
disear, implementar,
integrar, administrar
y optimizar

soluciones software
centralizadas,
distribuidas

soluciones web.

Aplicar la lgica
matemtica en
el contexto de
las Ciencias de
la Computacin,
con proyeccin, al
diseo de circuitos,
programacin,
anlisis y desarrollo
de algoritmos.

Conocer los conceptos


relacionados con
el almacenamiento
permanente en Java
Aplicar las tcnicas de
acceso a ficheros

Unidades/Temas
Unidad 4: Programacin de ficheros
con Java

Conceptos preliminares sobre los


datos

Flujos en Java


Evaluar las tcnicas de
manejo de archivos para
seleccionar las mejor

opcin en funcin de datos
y aplicaciones especificas.

CRONOGRAMA
ORIENTATIVO

ACTIVIDADES
DE APRENDIZAJE

Tiempo estimado
Semana 9, 10 y 11:
12 horas de
autoestudio.
12 horas de
interaccin.

Lectura
comprensiva
de la primera
unidad.

Desarrollo de
actividades
recomendadas
en la gua
didctica.

Interaccin con
el EVA

Escritura y lectura de datos en


ficheros.
Uso de las clases FileInputStream y
FileOutputStream

Unidad 5: Clases y Objetos en


JavaFactores Humanos y motivacin.

Entender la filosofa de la
POO.

Aplicar los conceptos de


Que es programacin orientada a
POO en el desarrollo de
objetos
programas en lenguaje Java
Clases
Aplicar el concepto de
Atributos o Propiedades
herencia en el desarrollo de
aplicaciones
Mtodos

Definir y calcular
la eficiencia de los
algoritmos utilizando

pseudocodigo
y midiendo el
desempeo de
los algoritmos
elaborados y
valorando su utilidad.
Analizar y disear
sistemas digitales
aplicables a
la tecnologa
computacional

CONTENIDOS

OBJETIVOS DE APRENDIZAJE

Semana 12, 13 y 14
12 horas de
autoestudio.
12 horas de
interaccin.

Encapsulamiento, ocultacin

Inicio del
desarrollo de
la evaluacin a
distancia.
Lectura
comprensiva
de la primera
unidad.

Desarrollo de
actividades
recomendadas
en la gua
didctica.

Interaccin con
el EVA

Herencia

Unidades de la 4 a la 5

Semana 15 y 16
8 horas de
autoestudio.

Inicio del
desarrollo de
la evaluacin a
distancia.
Preparacin para la
evaluacin presencial
correspondiente al
primer bimestre

8 horas de interaccin.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

37

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

7.5. Orientaciones especficas para el aprendizaje por competencias

Unidad 4. Programacin con ficheros en Java


Recursos educativos multimedia

Una vez que hemos estudiado los temas relacionados con el control de excepciones, arreglos y
algoritmos recursivos; revisemos los mecanismos de almacenamiento de datos, tal como se indica en el
texto base la informacin que se procesa en un programa es voltil puesto que los datos se almacenan
temporalmente en la memoria del computador y la informacin esta disponible mientras la aplicacin
se este ejecutando, para tener disponibles los datos de forma permanente es necesario guardarlos
en los dispositivos de almacenamiento secundarios tales como un disco duro o un flash memory, en
esta unidad estudiaremos los mecanismos que dispone el lenguaje Java para almacenar y recuperar
informacin de estos dispositivos.
4.1. Conceptos preliminares sobre los datos.

Sr. estudiante lea el captulo 14 del texto base, las secciones 1,2,3,4,5,6
se presentan bases tericas para el manejo de archivos y ejercicios,
adicionalmente en la gua didctica se presenta otros ejemplos mas simples,
le recomiendo codificarlos para ver los resultados.

http://4.bp.blogspot.com/_jlIpEQ2vSNo/SRM6ORmt2RI/AAAAAAAAACE/5oqzKDCgrYg/s200/
Figura 4.1 Ficheros fsicos

38

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

En la seccin 14.2 del texto base se presentan ciertas indicaciones sobre los datos y su organizacin
jerrquica desde la perspectiva informtica, se puede ver como esta estructurada la informacin desde
el elemento mas pequeo que es un bit hasta los niveles superiores y que agrupan mayor cantidad de
informacin como son los registros y los archivos, es muy importante tener claro este modelo puesto
que este es la base para crear aplicaciones que guarden informacin de forma ordenada y sobre todo
estructurada, preste principal atencin al ejemplo de registro (Nmero, Nombre, Direccin, ) que se
indica en esta parte del texto base puesto que la informacin se guarda mediante un formato de registro
en los archivos.
4.2. Flujos en Java

Sr. estudiante lea la seccin 14.3 para reforzar el estudio de los flujos.
Antes de entrar al estudio de los archivos propiamente, revisemos un concepto que es fundamental en
este tema; los flujos, desde el punto de vista del lenguaje Java un flujo es un objeto que se encuentra en
un punto intermedio entre nuestra aplicacin y el punto de origen o destino de la informacin, esto se
puede entender mediante la siguiente ilustracin.

Figura 4.2 Flujos en Java


Cualquier aplicacin por simple que sea utiliza por lo menos estos flujos de informacin: para entrada de
datos (in) el teclado y para salida de datos (out) la pantalla, a continuacin les presento un programa que
utiliza estos flujos bsicos, espero que el mismo aclare de mejor manera el concepto relacionado con
este tema, se podrn dar cuenta que en el mismo se crean dos objetos: teclado y pantalla los cuales
representan los flujos de entrada y salida respectivamente.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

39

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

Figura 4.3 Demostracin de los flujos


Anlisis del programa Flujos (Figura 4.2)
Lnea

Descripcin

7,8

Declaramos dos objetos como flujos de entrada y salida, teclado y pantalla respectivamente.

12

Creamos un objeto de esta clase

13,14,
15,16
17
20
13,14,
25,25
27
30,31,
32,33

Se realiza la llamada al mtodo leer


Se realiza la llamada al mtodo escribir
El mtodo leer declara explcitamente que puede ocurrir un error del tipo IOException, por
lo tanto en las lneas 13,14,15 y 16 es necesario atrapar este tipo de Excepcin
En este proceso se recogen los caracteres digitados en el teclado, este proceso se realiza
hasta que se digita el carcter de fin de lnea (\n) o tecla Enter. Adicionalmente estos
caracteres se estn concatenando en la variable texto.
Finalmente se debe cerrar el flujo correspondiente.
En el mtodo escribir se utiliza el flujo de salidad de datos para presentar informacin en la
pantalla, la informacin esta en la variable texto, finalmente se cierra este flujo.

4.3. Escritura y Lectura de datos en ficheros


Para la lectura o escritura desde o hacia un archivo, es necesario tomar en cuenta algunos parmetros
como por ejemplo: el tipo de datos y la forma de acceder a estos, en esta seccin del curso nos ocuparemos
del acceso y escritura a los datos de un archivo de forma secuencial.

40

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

Tal como indique en el prrafo anterior se debe tener en cuenta el tipo de dato que se va ha escribir o
leer del archivo:


Flujos de bytes
Flujos de caracteres
Flujos de datos primitivos

El paquete java.io contiene todas las clases necesarias para desarrollar aplicaciones que manipulen estos
tipos de datos; el siguiente grfico muestra algunas clases de este paquete, podr darse cuenta que en
la mayora de los casos existen clases correspondientes para el acceso y para la escritura de datos en los
ficheros:
4.4. Uso de las clases FileInputStream y FileOutputStream
Estas clases se utilizan para grabar o leer datos de tipo byte; a continuacin presento el cdigo necesario
para escribir datos en un archivo utilzando la clase FileOutputStream.

Figura 4.4 Guardar datos en un archivo de texto

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

41

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

Anlisis del programa EscribirBytes (Figura 4.3)


Lnea

Descripcin
Declaramos un arreglo de datos de tipo byte

8
12,13
19
20
21,22

Se crea un objeto de esta clase y seguidamente se ejecuta el mtodo Escribir


El mtodo read se utiliza para recoger datos del teclado, los datos se guardan en el arreglo
datos, y este mtodo retorna la cantidad de bytes ingresados
Se crea el flujo datosOut con el nombre del archivo para guardar los datos, el parmetro
false indica que la informacin se guarda desde el inicio y no desde el final en caso que el
archivo ya exista.
Finalmente se escriben los datos en el archivo a travs del flujo y finalmente se cierra este.

Autoevaluacin 4

N.

Pregunta

Los datos que se almacenan en variables y arreglos son temporales; se pierden cuando
una variable local queda fuera de alcance o cuando el programa termina.

Las computadoras utilizan archivos para la retencin a largo plazo de grandes


cantidades de datos , incluso despus de que los programas que crearon los datos
terminan de ejecutarse.

Los datos persistentes que se mantienen en archivos existen ms all de la duracin


de la ejecucin del programa.

Las computadoras procesan todos los elementos de datos como combinaciones de


ceros y unos.

Los caracteres en Java son Unicode y estn compuestos de dos bytes, cada uno de los
cuales se compone de ocho bits.

Un campo es un grupo de caracteres o bytes que transmite un significado.

La unin de campos dan como resultado un registro, que se implementan como class
en Java.

Un registro es un grupo de campos que no tienen relacin

Un archivo es un grupo de registros que no guardan relacin entre s.

10

Una clave de registro identifica que un registro pertenece a una persona o entidad
especfica y es nica para cada registro.

11

A un grupo de archivos relacionados se denomina base de datos.

12

Java ve a cada archivo como un flujo secuencia de bytes.

13

Los flujos basados en caracteres representan datos en formato binario.

14

Los archivos que se crean usando flujos basados en bytes son archivos binario.

15

Los archivos que se crean usando flujos basados en caracteres son archivos de texto.

42

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

16

Los archivos de texto se pueden leer mediante editores de texto, mientras que los
archivos binarios se leen mediante un programa que convierte esos datos en formato
legible para los humanos.

17

La clase File se utiliza para obtener informacin acerca de los archivos y directorios.

18

Las operaciones de entrada y salida basadas en caracteres se pueden llevar a cabo


con las clases Scanner y Formatter.

19

Para obtener datos de un archivo en forma secuencial, los programas comnmente


empiezan a leer desde el principio del archivo y leen todos los datos en forma
consecutiva, hasta encontrar la informacin deseada.

20

El objeto System.err normalmente permite a un programa imprimir mensajes de error


en la pantalla.

21

El programador debe crear explcitamente los objetos flujo System.in, System. Out y
System.err

22

El mecanismo de serializacin de objetos permite escribir o leer objetos completos


mediante un flujo.

23

El uso de bfer es una tcnica para mejorar el rendimiento de E/S.

24

La clase JFileChooser se utiliza para mostrar un cuadro de dilogo, que permite a los
usuarios de un programa seleccionar archivos con facilidad , mediante una GUI

25

Los archivos binarios pueden ser ledos por los humanos

26

Los dgitos, letras y smbolos especiales se conocen como caracteres

Ejercicios propuestos

1.
2.

Desarrolle un programa en Java para almacenar los nmeros generados por la funcin seno,
coseno y tangente, desde 0 hasta 360 grados.
Desarrolle un programa en java para grabar y recuperar los datos de un registro definido por usted.

Ir a solucionario

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

43

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

Unidad 5: Clases y Objetos de Java

Recursos educativos multimedia

Estimados participante estamos iniciando el estudio de la ltima unidad de nuestro curso as es


que nimo!, les comento que de una u otra forma ya hemos utilizado estos conceptos en unidades
anteriores, pues el lenguaje java es eminentemente orientado a objetos, es decir para cualquier
programa que usted desarrolle lo que debe hacer es definir una o varias clases con sus respectivos
mtodos, adicionalmente ya les explique en la primera unidad sobre el uso de la API de Java en la cual se
podrn dar cuenta la jerarqua de clases existentes, relaciones de herencia, etc. Bien, empecemos con el
estudio de esta unidad el mismo que mas conceptual, finalmente quiero indicarles que en el texto base
gua existen varios captulos que tratan el tema de la POO desde diferentes nieves.
5.1. Qu es Programacin Orientada a objetos?

Sr. estudiante lea el captulo 3, las secciones 1-8 para reforzar los conceptos
relacionados con POO

Fuente:=http://4.bp.blogspot.com/_jlIpEQ2vSNo/SRM6ORmt2RI/AAAAAAAAACE/5oqzKDCgrYg/s200/
AprendiendoJava_html_
Figura 5.1 Clase y Objetos
Tradicionalmente los programadores han desarrollado sus aplicaciones utilizando la tcnica estructurada
de programacin; la POO es una forma especial de programar en la cual se expresa nuestro desarrollo
como cosas del mundo real, esto implica una filosofa y forma de pensar diferente, pues los objetos o
mecanismos que estn en nuestro entorno tienen unas caractersticas (atributos) y un comportamiento
o forma de actuar (mtodos) , y esta visin debe verse reflejada en nuestra programacin.

44

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

Bajo estos trminos pensemos en un Automvil para tratar de modelarlo en un esquema de POO.
Diramos que este tiene sus atributos como son color, marca, tamao, nmero de puertas, ao de
fabricacin, velocidad (en un determinado instante)etc.; estas caractersticas vendran a ser los datos;
mientras que las funcionalidades o mtodos (en trminos de POO) serian arrancar, parar, girar, acelerar,
etc. Como podr darse cuenta en un objeto se encapsula tanto datos como la programacin de su
funcionamiento; otro ejemplo ms cercano a nuestro medio informtico, sera modelar con orientacin
a objetos una ventana del Sistema Operativo Windows:

Figura 5.2 Clase Ventana


En un ejemplo anterior se presenta el objeto ventana y se ha definido algunos atributos respectivos, por
otra parte tengo definidos tres mtodos, tenga en cuenta que los mtodos definen un comportamiento
el mismo que puede involucrar un cambio de valor de los atributos.
5.2. Clases
Hemos visto que los objetos son:

Definicin de datos o atributos, y


Programacin, por otra parte.

La declaracin de todos estos componentes del objeto es una clase, tambin se podra decir que una
clase de abstraccin de objetos o que es la generalizacin de un tipo especfico de objetos; siendo
ms prcticos podramos comparar a una clase como un molde de hacer pasteles, con el cual se crean
pasteles que vendran a ser los objetos los mismos que se crean de acuerdo a las caractersticas del
molde, en realidad una clase es algo as como una plantilla que se utiliza para crear objetos.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

45

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

Hablando desde el punto de vista informtico y concretamente en Java se crean objetos cuando se
define e instancia una variable de un tipo de clase, es decir de la siguiente manera:

Cuenta Ahorros cliente1 = new Cuenta Ahorros ( );


En el siguiente grfico la clase Barras Estadsticas la cual define algunas propiedades como cantidad de
barras, color, valor, aumentar_barras, etc. En la parte inferior del grfico se podr dar cuenta que se
han creado objetos los cuales tienen diferentes valores para cada uno de los atributos.

Figura 5.3 Clase Barras Estadsticas


5.3. Atributos o Propiedades.
Tal como lo hemos comentado anteriormente los atributos o propiedades son las caractersticas de un
objeto, retomando el ejemplo del automvil las caractersticas sern : color, ao de fabricacin, marca,
velocidad en un determinado instante, entre otras; podr darse cuenta que las caractersticas siempre
estn asociadas con su respectivo valor, ya sea este, de tipo texto o de tipo numrico; dicho de otra
forma, los atributos almacenan los datos de los objetos, o tambin son los datos encapsulados en un
objeto. Pueden existir dos tipos de atributos:

Propios: Son aquellos que han sido declarados explcitamente en la clase que crea el objeto.

Heredados: Son aquellos que pertenecen al objeto pero que no han sido declarados explcitamente
en la clase duea del objeto, sino mas bien han sido el resultado de un proceso de herencia de
clases antecesoras.

46

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

5.4. Mtodos
Igualmente ya lo hemos comentado que un objeto no solo est compuesto de funcionalidades o
lgica de comportamiento; los mtodos en POO son lo que para la programacin estructurada son los
procedimientos o funciones; sea que estos pueden recibir parmetros e igualmente pueden devolver
algn dato. Adicionalmente tambin pueden ser propios y heredados como los atributos.
5.3. Encapsulamiento, ocultacin
Tal parece que Encapsulamiento viene de palabra capsula; en todo caso esta define claramente lo
que es un objeto, en lo cual tanto los datos como sus funcionalidades estn encerradas dentro de esta
cpsula; esto permite el ocultamiento de estos datos; permitindole al objeto relacionarse con el exterior
nicamente a travs de mensajes; la respuesta a estos mensajes ser la informacin que otros objetos
requieren.
5.4. Herencia.

Sr. estudiante lea el captulo 9, en esta parte del texto base se explica lo relacionado con herencia en Java
La herencia es la caracterstica que permite crear clases a partir de otras ya existentes; con lo cual
reutilizamos los componentes (atributos y mtodos) de la clase inicial.
Existen dos tipos de herencia, tal como se muestra en el siguiente grfico:

Herencia Simple

Herencia Mltiple

Figura 5.2 Herencia simple y herencia mltiple


Por otra parte es importante mencionar que Java implementa el tipo de herencia Simple lo que permite
ser ms prctico y ordenado. Una alternativa al uso de herencia mltiple en Java es el uso de Interfaces

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

47

Gua didctica: Programacin de Algoritmos

SEGUNDO BIMESTRE

Autoevaluacin 5

N.

Pregunta

Una clase y objeto es lo mismo.

Para realizar una tarea en una aplicacin orientada a objetos se requiere un mtodo.

El constructor de una clase permite inicializar los valores de cada objeto.

Los objetos de una misma clase deben tener los mismos datos.

Las clases se pueden declarar como public.

Un mtodo describe los mecanismos que se encargan de realizar sus tareas y oculta
al usuario las tareas complejas que realiza.

El nombre del archivo (.java) debe ser el mismo que el nombre de la clase principal.

La instruccin javac se utiliza para compilar una aplicacin.

A los atributos tambin se los llama campos.

10

Los campos prvate de una clase pueden manipularse solo mediante los mtodos de
esa clase; para lo cual se utilizan los mtodos establecer y obtener.

11

Los atributos de una clase pueden ser atributos de instancia y atributos de clase.

12

Los tipos de datos en Java pueden ser primitivos y por referencia.

13

La palabra clave new se utiliza para llamar a un constructor de clase.

14

Superclases y subclases son trminos utilizados en Herencia en Java.

15

Para llamar al constructor de la superclase se puede utilizar las palabras super y this
indistintamente.

16

Declarar variables de instancia como public es una mala prctica de ingeniera del
software.

Ir a solucionario

48

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SOLUCIONARIO

8. Solucionario
UNIDAD 1
Pregunta

Respuesta

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

49

Gua didctica: Programacin de Algoritmos

SOLUCIONARIO

UNIDAD 2

50

Pregunta

Respuesta

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SOLUCIONARIO

UNIDAD 3
Pregunta

Respuesta

10

11

12

13

14

15

16

17

18

19

20

21

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

51

Gua didctica: Programacin de Algoritmos

SOLUCIONARIO

UNIDAD 4

52

Pregunta

Respuesta

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Programacin de Algoritmos

SOLUCIONARIO

UNIDAD 5
Pregunta

Respuesta

10

11

12

13

14

15

16

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

53

Gua didctica: Programacin de Algoritmos

SOLUCIONARIO

ESTRATGIAS PARA SOLUCIN DE LOS EJERCICIOS PROPUESTOS


Unidad 1: Gestin de excepciones en java
Las estrategias a de solucin para los ejercicios de la unidad 1 se encuentran en la definicin del mismo
en el texto base.
Unidad 2: Algoritmos sobre arreglos
1.

2.
3.
4.

Para este ejercicio le recomiendo que tome como base la lgica para bsqueda de elementos,
luego reemplace este valor, tenga en cuenta que si el arreglo esta ordenado, al finalizar el proceso
debe quedar el elemento en la posicin correcta.
Recorra los elemento hasta la mitad e intercambie cada elemento de la primera mitad con el
correspondiente de la segunda mitad.
En este caso extraiga los elementos de cada fina ejecute un proceso de ordenamiento
independiente.
Igualmente tome como base la lgica estudiada para el caso de los arreglos

Unidad 3: Algoritmos Recursivos


Las estrategias a de solucin para los ejercicios de la unidad 1 se encuentran en la definicin del mismo
en el texto base.
Unidad 4: Programacin de ficheros con Java
1.
2.

Utilice la lgica estudiada para almacenar datos en un fichero, luego desarrolle un proceso
repetitivo y almacene en cada iteracin el valor de la funcin solicitada.
Construya una clase con los datos del registro, luego cree un objeto de esta clase y guarde estos
datos.

Unidad 5: Clases y Objetos en java


Los ejercicios planteados en esta unidad los puede resolver revisando los contenidos planteados tanto
en la gua como en los captulo correspondientes del texto base, adicionalmente tenga en cuenta que la
opinin personal de lo que usted comprendi en este tema es muy importante.

GERC/ymtm/15-07-2011/47
vjg/2013-10-29

54

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Вам также может понравиться