Sie sind auf Seite 1von 40

MODALIDAD ABIERTA Y A DISTANCIA

Departamento de Ciencias de la Computación y Electrónica


Sección Tecnologías Avanzadas de la Web y SBC

Programación de Algoritmos
Evaluación a distancia
4 créditos

Titulación Ciclo
§§ Informática III

Profesor Principal:
Pedro Daniel Irene Robalino

Le recordamos que el envío de evaluaciones a distancia a través del EVA


(Entorno Virtual de Aprendizaje) es obligatorio; y, el ingreso se lo realiza
de manera impostergable de acuerdo a la segmentación publicada en el
siguiente enlace:

http://distancia.utpl.edu.ec/calendarioevaluacionesadistancia

TUTORÍAS: El profesor asignado publicará en el Entorno Virtual de Aprendizaje (EVA) su número telefónico y horario de tutoría, para
contactarlo utilice la opción “Contactar al profesor”
Más información puede obtener llamando al Call Center 07 3701444, línea gratuita 1800 88758875 o al correo electrónico callcenter@utpl.
edu.ec

Abril – Agosto 2017

La Universidad Católica de Loja Asesoría virtual:


www.utpl.edu.ec
PRIMER BIMESTRE
Indicaciones generales.

• Para el desarrollo de la prueba objetiva, deberá revisar su guía de estudio,


texto básico, y anuncios/recursos que se publican en el EVA (EVA).

• Acuda a la bibliografía complementaria citada en el guía de estudio y


EVA, así enriquecerá sus conocimientos para el óptimo desarrollo de esta
evaluación.

• Solo una vez revisados los temas de: Excepciones, Arreglos y Recursividad,
inicie el desarrollo de esta Evaluación a Distancia ; no olvide que el fin de
ésta, es ofrecerle un indicador del nivel de conocimientos y competencias
de cada unidad y así refuerce su estudio en aquellas que obtenga menor
puntaje.

• Al rendir ésta evaluación a distancia, lea y analice con atención cada una
de las siguientes preguntas/códigos y seleccione el literal de la alternativa
correcta o la que mejor defina el concepto o programa. Recuerde que Ud.
deberá ingresar sus respuestas en el EVA, este documento únicamente le
sirve como borrador.

• De las cuatro alternativas que se muestran en cada pregunta (a, b, c, d),


más de una le podrá parecer correcta, pero no es así; existe una única
solución.

PRUEBA OBJETIVA (2 puntos)

1. ¿Que es una excepción?

a. Un error de compilación del .java


b. Una alerta para depurar mejor el código
c. Error lanzado/atrapado en tiempo de ejecución.
d. Error lanzado/atrapado en tiempo de diseño.

2. El bloque try - catch permite el tratamiento de excepciones. En el bloque try se


coloca el código que podría ____________ la excepción; y en el bloque catch el
código que ______________ la excepción.

a. manejar – genera
b. capturar – genera
c. generar – maneja
d. manejar – limpia

La Universidad Católica de Loja


3
Evaluaciones a distancia: Programación de Algoritmos

3. En cuál de los siguientes escenarios se recomienda aplicar manejador de


excepciones:

a. Cualquier error asincrónico.


b. Cualquier error sincrónico.
c. Índices fuera de rango.
d. División entre cero.

4. El manejador de excepciones permite:

a. Lanzar una excepción para ser controlada.


b. Manipular errores durante su aparición.
c. Vigilar, capturar y solucionar excepciones.
d. Reemplazar bloques a conveniencia.

5. El manejador de excepciones permiten a los programadores escribir programas


tolerantes a fallas y robustos, es decir, _________________________________.

a. programas que traten con los problemas que puedan surgir sin dejar de
ejecutarse.
b. que, de haber problemas, los programas puedan cerrarse de forma
adecuada.
c. programas óptimos con garantías de fallas nulas, que jamás se detengan.
d. que, de presentarse errores, los registros de log se creen antes de finalizar.

6. Todo nombre de cada clase de excepción siempre finaliza con la palabra:


_____________, ello con el objetivo de identificar que se trata de una clase de
excepción para el manejador de excepciones.

a. Exception
b. Excepcion
c. Throwable
d. Error

7. ArithmeticException se lanza en el siguiente escenario:

a. int arreglo[] = new int[10];


b. int num = a/b;
c. int num = 0;
d. arreglo[-1];

8. InputMismatchException se se lanza en el siguiente escenario:

a. int arreglo[] = new int[10];


b. int num = a/b;
c. int num = “0”;
d. arreglo[-1];

4 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

9. ArrayIndexOutOfBoundsException ocurre cuando hay un intento por acceder


a un elemento __________________________.

a. en la posición, cero, del arreglo


b. dentro de los límites del arreglo
c. más allá del fin del arreglo
d. nombArreglo.length – 1

10. Según el uso de las clausulas throws y throw:

a. Las dos clausulas son similares, no hay diferencia significativa en ellas.


b. Siempre podemos usar una u otra en su lugar, ya queson iguales.
c. Una permite informar de posibles excepciones, otra, lanza una excepción.
d. Permiten lanzar/atrapar excepciones en tiempo de diseño y ejecución.

11. ¿Cuál de los siguientes tipos de errores se trata de una excepción la cual debe
ser tratada con un manejador de excepciones?

a. 1–No atrapar, 2–No Atrapar, 3–No Atrapar, 4–No Atrapar, 5-No Atrapar
b. 1–Atrapar, 2–Atrapar, 3–Atrapar, 4–Atrapar, 5- Atrapar
c. 1–Atrapar, 2–No Atrapar, 3–Atrapar, 4–No Atrapar, 5-Atrapar
d. 1–No atrapar, 2–Atrapar, 3–Atrapar, 4–No Atrapar, 5-Atrapar

12. Dado el siguiente fragmento de código:

¿Cuál de las siguientes operaciones escritas en la línea de código 7 , es más


propensa a general una Excepción:

a. resp /= arrays;
b. resp += arrays;
c. resp *= arrays;
d. resp -= arrays;

La Universidad Católica de Loja


5
Evaluaciones a distancia: Programación de Algoritmos

13. ¿Cuál de los siguientes es un buen consejo a tener en cuenta al momento de


implementar manejo de excepciones:

a. En la medida de lo posible, reemplazar cualquier if-else con try/catch.


b. Obligar que, para cada bloque catch habrá varios parámetros .
c. Vigilar el 100% del código, codificando bloques de manejo de excepciones.
d. Codificar un catch por cada tipo de excepción que podría generarse.

14. Dados los siguientes fragmentos de código:

FLUJO DE CÓDIGO A FLUJO DE CÓDIGO B

FLUJO DE CÓDIGO C FLUJO DE CÓDIGO D

¿Cuál es el flujo que contiene una estructura incorrecta?

a. Flujo de código A
b. Flujo de código B
c. Flujo de código C
d. Flujo de código D

6 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

15. A continuación se le presentan 4 requerimientos que Ud. debe resolver


desarrollando una clase en Java que codifique las instrucciones if()-else o try
– catch (entre otras) para el manejo de errores. Analice cada REQUERIMIENTO
y seleccione la INSTRUCCIÓN que primordialmente debe incluirse en su .java

REQUERIMIENTO
x. Ingreso por teclado de valores para las variables y de tipo: y .
Dadas las edades de 3 personas averiguar cuál es la mayor y cual
y.
la intermedia.
General la nómina a cancelar de una lista de empleados
z.
almacenada en arreglos.

a. x. – if else y. – if else z. – if else


b. x. – try catch y. – try catch z. – try catch
c. x. – try catch y. – if else z. – try catch
d. x. – if else y. – try catch z. – if else

16. Dentro de la instrucción, en _____ se podría lanzar la excepción, y dentro de la


instrucción _____ se debe atrapar dicha excepción.

a. 4–6
b. 1–6
c. 1–4
d. 1 – 4, 6

17. Las excepciones propias deben ____________ de la clase RuntimeException


para ser excepciones no verificadas; o de la clase ____________ para ser una
excepción ____________.

a. heredarse – IOException – verificada


b. heredarse – IOException – no verificada
c. excluirse – Error – no verificada
d. crearse – Error – verificada

18. La excepción FileSystemException es una excepción ____________________,


por que hereda de IOException.

a. verificada
b. no verificada
c. propia
d. impropia

La Universidad Católica de Loja


7
Evaluaciones a distancia: Programación de Algoritmos

19. Dado el fragmento de código siguiente que excepciones y en qué orden se las
debe atrapar.

a. InputMismatchException, ArrayIndexOutOfBoundsException,
FileSystemException – En este orden.
b. InputMismatchException, ArrayIndexOutOfBoundsException – En este orden.
c. InputMismatchException, ArrayIndexOutOfBoundsException,
FileSystemException – En cualquier orden.
d. FileSystemException, InputMismatchException,
ArrayIndexOutOfBoundsException – En cualquier orden.

20. Pueden ocurrir errores lógicos si usted supone que después de manejar una
excepción, el control ________________ a la ________________ instrucción
después del punto de lanzamiento.

a. avanza – siguiente
b. avanza – final de las
c. regresará – primera
d. finaliza – bloque try

21. ¿Cuál es el motivo por el que las excepciones deben ser atrapadas en un orden
determinado dentro de los n bloques catch que se defina para un solo bloque try?

a. La excepción RuntimeException (y sus hijas) al ser no verificadas deben


ser atrapadas solo al final.
b. Para cada bloque catch se debe definir un solo tipo de excepción heredada
de la clase Throwable
c. La estructura jerárquica de herencia de la clase Exception de la que se
deriva cada tipo de excepción.
d. Todas las excepciones que no hereden de RutimeExcepction pueden ser
atrapadas en los últimos catch

8 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

22. Dado el siguiente flujo:

En la línea número ____ se lanza la excepción que pause al programa, y en la


línea de código ____ se atrapa y trata dicha excepción.

a. 13, 16 – 3
b. 16 – 3
c. 13 – 7
d. 16 – 4

23. En la siguiente jerarquía de excepciones, ¿Cuál es una excepción propia definida


de forma incorrecta?

a. MiException1
b. MiException2
c. MiException3
d. MiException4

La Universidad Católica de Loja


9
Evaluaciones a distancia: Programación de Algoritmos

24. Las clases y forman parte del siguiente código, que tiene el objetivo solicitar
al usuario el ingreso de la primera letra de su nombre “inicial”, sin embargo
puede ocurrir que el usuario en vez de una letra ingrese uno o varios caracteres
numérico o especiales (- / 5 ; … ,), motivo por el cual el programa debería
finalizar su ejecución, ya que el mismo solo funcionaría cuando el usuario
ingreso correctamente un carácter alfabético (de la a-z o de la A-Z)

Analice el flujo del código y a continuación responda la siguiente pregunta


seleccionando una de las cuatro alternativas siguientes:

Si el usuario por error ingresa desde el teclado el valor de 6 para la variable


inicial, que es lo que se muestra por pantalla:

a. Por pantalla se presenta Error al ingreso desde la línea 22.


b. Por pantalla se presenta Error al ingreso desde la línea 27.
c. No hay ningún error por pantalla ya que el 6 igual es un carácter.
d. Captura la excepción de la línea 27.

25. Dadas las siguientes declaraciones, y en algunos casos inicializaciones:

Existen ____ variables de tipo primitivo.

a. 3
b. 4
c. 5
d. 7

10 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

26. Dadas las siguientes declaraciones, y en algunos casos inicializaciones:

Existen ____ variables de tipo por referencia.

a. 3
b. 4
c. 5
d. 7

27. ¿Cuál de los siguientes arreglos contiene datos de tipo por referencia?

a. double array_a[][] = {{1.4, 0.2, 9.0, 4, 5}, {15.5, 40.5, 12.4, 8.4}};
b. Exception array_b[] = {new RuntimeException(), new
ArithmeticException()};
c. char array_c[] = {‘a’, ‘b’, ‘c’};
d. boolean array_d[][] = new boolean[2][];

28. Para obtener la longitud de un arreglo unidimensional o multidimensional se


puede usar la instrucción length y la forma de usarla es la siguiente:

int longitud = Nombre_arreglo_o_Matriz.intruccion;

Dada la definición anterior; ¿cuál es la salida por pantalla del siguiente flujo?:

Primero se muestra el número de _________ de la matrizA y luego el número


de elementos de la _________ fila de dicha matriz.

a. filas – primera
b. filas – tercera
c. filas – segunda
d. columnas – primera

La Universidad Católica de Loja


11
Evaluaciones a distancia: Programación de Algoritmos

29. Dado el siguiente flujo, indicar cuál es el resultado que se muestra por pantalla.

Nota: evaluar correctamente el “for mejorado”.

a. 8
b. -3
c. 5
d. 4

30. ¿Cuál es la salida por pantalla que se muestra del siguiente flujo?

a. 26.0
b. 30.0, -5.0, 1.0
c. -6.0, -5.0, 1.0
d. 30.0, 15.0, 16

31. Con el método de búsqueda binario, cuantas iteraciones se requieren para


encontrar el número 49 en el siguiente arreglo:

a. arreglo.length() – 1;
b. 15
c. 7
d. 1

32. Con el método de búsqueda lineal, cuantas iteraciones se requieren para


encontrar el número 23 en el siguiente arreglo:

a. 1
b. 2
c. 3
d. 4

12 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

33. ¿Cuál es el mejor método para buscar dentro del siguiente arreglo?

a. Burbuja
b. Lineal
c. Binario
d. Burbuja mejorado

34. La clase permite ordenar, buscar, compara, insertar, copiar, etc. elementos
dentro de los _________.

a. Arrays – arreglos
b. Arrays – registros
c. Exception – arreglos
d. Throwable – arreglos

35. A continuación, mostramos un arreglo de 5 elemento inicializados en su


declaración, luego un conjunto de 5 pasos que se cumplieron para ordenar
dicho arreglo.

4, -5, 12, -16, 9;


4, -5, -16, 9, 12;
4, -5, -16, 9, 12;
-5, -16, 4, 9, 12;
-16, -5, 4, 9, 12;

Expuesto lo anterior, se puede ver que el arreglo fue ordenado ascendentemente


en varias iteraciones, pero mediante el método de ordenamiento:
________________.

a. combinación
b. selección
c. inserción
d. burbuja

36. En cuanto al método de búsqueda lineal.

a. Es el único método que está incluido en la clase ArrayList


b. Iniciar su búsqueda con un array en orden.
c. No es tan eficiente como si lo es la búsqueda binaria.
d. Va partiendo el array ordenado en 2 sucesivamente.

La Universidad Católica de Loja


13
Evaluaciones a distancia: Programación de Algoritmos

37. El ordenamiento por selección es un algoritmo de ordenamiento simple, pero


ineficiente. En la primera iteración, se selecciona el elemento más pequeño en
el arreglo y se intercambia con el primer elemento; en la segunda iteración,
se selecciona el segundo elemento más pequeño (el restante más pequeño)
y se intercambia con el segundo elemento, y continúa hasta que en la última
iteración se selecciona el segundo elemento más grande, y se intercambia con el
antepenúltimo elemento, dejando el elemento más grande en el último índice.

¿Dado lo anterior y el siguiente arreglo, como queda ordenado el arreglo con el


método por selección en la primera iteración?

a. 25, 95, 55, 56, 63, 81, 76, 59, 75, 66


b. 25, 75, 95, 55, 56, 63, 81, 76, 59, 66
c. 75, 95, 55, 56, 63, 81, 76, 59, 66, 25
d. 95, 55, 56, 63, 81, 76, 59, 66, 75, 25

38. Cuando se llama a un método recursivo para resolver un problema, en realidad


el método es capaz de resolver sólo el caso más simple, o ____________. Si se
llama con un ____________, el método devuelve un resultado.

a. caso base – paso recursivo


b. caso(s) base – caso base
c. paso recursivo – caso base
d. método recursivo – ciclo iterativo

39. En el siguiente .java recursividadBasic.java se ha codificado y llamado el


método recursivo recursivoA([parametros]). Analice su flujo e indique en que
línea de código se encuentra codificado el caso base.

a. 9
b. 3
c. 7-8
d. 6-10

14 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

40. Dada la clase recursividadLlamadas.java; ¿Cuál es el valor que se muestra por


pantalla en la línea número tres?

a. 3
b. 6
c. 24
d. 120

PRUEBA ENSAYO (4 puntos)

• Para el desarrollo de la prueba de ensayo, deberá revisar su guía de estudio, texto


básico, y anuncios/recursos que se publican en el EVA (EVA-UTPL). Además, se
sugiere participar de los foros, chats y cuestionarios en los cuales Ud. podrá
mejorar sus competencias de análisis, diseño y codificación de algoritmos sobre
arreglos y manejo de excepciones.

• Solo una vez revisados los temas de: Excepciones y Arreglos, inicie el desarrollo
de esta Evaluación a Distancia ; no olvide que el fin de éste trabajo, es ofrecerle
un indicador del nivel de conocimientos y competencias de cada unidad y así
refuerce su práctica en programación en el caso de no obtener un puntaje o
comentarios satisfactorios en su programa o componente objetivo.

• Una vez desarrollada su solución Ud. debe presentarla considerando las


siguientes instrucciones para facilitar al tutor la revisión, de no hacerlo se ira
restando puntaje.

En el EVA debe subir obligatoriamente dos archivos, y solo dos, NO, MÁS.

1er. archivo:

Correspondiente al informe del programa, el cual corresponde a un


documento en Microsoft Word .docx con la siguiente información y
código con formato bajo ningún caso se deben pegar imágenes
capturadas como código.

La Universidad Católica de Loja


15
Evaluaciones a distancia: Programación de Algoritmos

El nombre del informe debe ser [usernameDelEva_ProgAlg_AA17_1B] ( _2B para el


2do. bimestre) y su contenido es el siguiente:

Desarrollo de la solución ([usernameDelEva_ProgAlg_AA17_1B].JAVA)

Para copiar el código del ÚNICO .java al informe en word [usernameDelEva_ProgAlg_


AA17_1B], desde NetBeans (o de cualquier framework con el que esté trabajando)
éste código será copiado con formato, es decir, con la numeración, colores, sangrías,
etc. típicos del lenguaje java, para ello Ud. no debe copiar del NetBeans (si usa este
IDE) directamente al documento .docx, sino, debe usar algún intermediario que le dé
formato al código para no perderlo al pegar al .docx. De entre muchos intermediarios
existentes en la Red o Herramientas de escritorio aquí le proponemos tres (siéntase en
la libertar usar el que mejor domine):

16 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

• Notepad++: http://notepad-plus-plus.org/

• Source code (en line): http://markup.su/highlighter/

• Made by Alexander Kojevnikov (en line): http://hilite.me/


Nota: Éstos tres recursos fueron consultados el 15 de diciembre del 2016, 18H:00.

Y por favor, para no tener en muchas lineas/hojas su código, reduzca el tamaño de


letra mínimo 8pts, y con interlineado mínimo.

INDISPENSABLE: No olvide que al final del código dentro del .docx - .java y dentro de
un comentario insertado con los caracteres /**, Ud. debe copiar y pegar lo que obtenga
por pantalla como resultado en RUN (resultados de la ejecución, bien tabulados por
el mismo .java, Netbeans, para lo cual Ud. puede revisar el apéndice G Formatted
Output), esta última sección demanda la mayor calificación de este componente de
ensayo, ya que ésta, nos certifica que su aplicación si funciona y genera los resultados
correctos/solicitados.

2do. archivo:

Correspondiente al código en sí, para lo cual Ud. únicamente debe adjuntar el


único archivo .java perfectamente documentado , organizado y limpio (sin
variables que no use, no espacios en blanco innecesarios y con las tabulaciones
correctas).

Por favor, es importante que todo el código este dentro de un solo archivo .java, tenga
o no tenga una o más clases class. Bajo ninguna circunstancia Ud. podrá subir todo un
proyecto comprimido, SINO, SOLO UN ÚNICO ARCHIVO .java, compilable, ejecutable y
no empaquetado (no use la clausula package), para lo cual, el único archivo .java que
entregue, será compilado usando directamente el comando javac y ejecutado con el
comando java desde consola, por lo cual, antes de subir su .java, Ud. deberá validar
que si se compila y ejecuta desde cualquier directorio donde se lo mueva/ubique; por
lo tanto, se le recomienda:

• No empaquetar la(s) clase(s), no usar la clausula package

• Configurar correctamente las variables de entorno del sistema para el JDK

• Compile y ejecute su programa sin usar ningún IDE (sino directamente en CMD
con los comandos javac y java), antes de subirlo a la plataforma.

• Como nombre del único archivo .java se le pide el siguiente formato, ello
con fines de facilitar la revisión de su código y el registro de su calificación:
[usernameDelEva_ProgAlg_AA17_1B]

• Si desea, programe varias clases, pero dentro de un solo archivo .java, para
ello, no olvide que solo una clase debe ser public (con la que guardo su .java)
las demás solo las definirá con class, caso contrario se genera un error de
compilación.

La Universidad Católica de Loja


17
Evaluaciones a distancia: Programación de Algoritmos

Calificación 4 puntos.

Direccionamiento IP (Generando mis propias redes)

Una dirección IP es una etiqueta numérica que identifica de manera lógica y jerárquica,
a una interfaz de un dispositivo dentro de una red que utilice el protocolo IP (Internet
Protocol) . Las computadoras se conectan entre sí mediante sus respectivas direcciones
IP. Éstas se pueden expresar como números de notación decimal en octetos que están
comprendidos en el rango de 0 a 255, ejemplo: 10.128.1.255. El direccionamiento IP
está dividido en las siguientes clases según sus rangos:

• En una red de clase A, se asigna el primer octeto para identificar la red,


reservando los tres últimos octetos (24 bits) para que sean asignados a los hosts,
de modo que la cantidad máxima de hosts es 224 - 2 (se excluyen la dirección
reservada para (últimos octetos en 255) y de red (últimos octetos en 0)), es decir,
16.777.214 hosts.

• En una red de clase B, se asignan los dos primeros octetos para identificar la red,
reservando los dos octetos finales (16 bits) para que sean asignados a los hosts,
de modo que la cantidad máxima de hosts por cada red es 216 - 2, o 65.534 hosts.

• En una red de clase C, se asignan los tres primeros octetos para identificar la red,
reservando el octeto final (8 bits) para que sea asignado a los hosts, de modo
que la cantidad máxima de hosts por cada red es 28 - 2, o 254 hosts.

Restricciones para el direccionamiento:

• El primer número del ID de red no puede ser 127. Este número de ID está
reservado para pruebas de conexión, como realizar un bucle local.

• Los números del ID de host no pueden ser todos 255, ya que esta dirección se
utiliza como dirección de difusión IP .

• El ID de host no puede ser todo cero, ya que esta dirección se utiliza para indicar
un ID de red.

• El ID de host deber ser exclusivo para el ID de red local.

18 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

Se pide:

Desarrollar un .java que permita generar aleatoriamente direcciones IP y de acuerdo


a las validaciones del caso se vaya almacenando en orden dentro de los arreglos A, B,
C que representan a la clase que pertenecen. Las direcciones pueden estar ordenadas
dentro de cada arreglo únicamente por el criterio de los primeros 8 octetos sin importar
los restantes. Implemente las excepciones que considere pertinentes. Al final lo que
se debe visualizar por pantalla son tres listados correspondientes a las tres clases de
direcciones IP; cada arreglo (lista) ordenado, y al final un informe estadistico en el cual
se indique el número total de direcciones Ips por grupo generadas, así como, cual es
el grupo que menos y mas direcciones Ips a generado.

Importante: el usuario no debe ingresar por teclado ningún valor, todo debe
autogenerarse, de forma tal que, cuando el usuario ejecute su programa, cada vez se
listen grupos/arreglos (A, B, C) de direcciones IP diferentes.

Estimado(a) estudiante, una vez resuelta su evaluación a distancia en el


documento impreso (borrador), acceda al Entorno Virtual de Aprendizaje
(EVA) en www.utpl.edu.ec e ingrese las respuestas respectivas.

SEÑOR ESTUDIANTE:
Le recordamos que para presentarse a rendir las
evaluaciones presenciales no está permitido el uso de
ningún material auxiliar (calculadora, diccionario, libros,
Biblia, formularios, códigos, leyes, etc.)
Las pruebas presenciales están diseñadas para
desarrollarlas sin la utilización de estos materiales.

La Universidad Católica de Loja


19
SEGUNDO BIMESTRE
Indicaciones generales.

• Para el desarrollo de la prueba objetiva, deberá revisar su guía de estudio,


texto básico, y anuncios/recursos que se publican en el EVA (EVA).

• Acuda a la bibliografía complementaria citada en el guía de estudio y


EVA, así enriquecerá sus conocimientos para el óptimo desarrollo de esta
evaluación.

• Solo una vez revisados los temas de: Programación con ficheros y POO
en Java, inicie el desarrollo de esta Evaluación a Distancia ; no olvide
que el fin de ésta, es ofrecerle un indicador del nivel de conocimientos
y competencias de cada unidad y así refuerce su estudio en aquellas que
obtenga menor puntaje.

• Al rendir ésta evaluación a distancia, lea y analice con atención cada una
de las siguientes preguntas/códigos y seleccione el literal de la alternativa
correcta o la que mejor defina el concepto o programa. Recuerde que Ud.
deberá ingresar sus respuestas en el EVA, este documento únicamente le
sirve como borrador.

• De las cuatro alternativas que se muestran en cada pregunta (a, b, c, d),


más de una le podrá parecer correcta, pero no es así; existe una única
solución.

PRUEBA OBJETIVA (2 puntos)

1. Básicamente, todos los elementos de datos procesados por una computadora


se reducen en combinaciones de ______________ y ______________.

a. bytes – megabyte
b. megabytes – gigabytes
c. caracteres – números
d. ceros – unos

2. El almacenamiento de datos en variables y arreglos es _____________ y


se pierden cuando quedan fuera de alcance o el programa termina. Las
computadoras utilizan archivos para retención a largo plazo de _____________
cantidades de datos.

a. parcial – pequeñas
b. persistente – grandes
c. temporal – pequeñas
d. temporal – grandes

La Universidad Católica de Loja


21
Evaluaciones a distancia: Programación de Algoritmos

3. El elemento de datos más pequeño que puede procesar una computadora se


conoce como: _____.

a. bit
b. bites
c. caracteres
d. ceros – unos

4. La UTPL cuenta con titulaciones las cuales están conformadas por estudiantes
que matriculados en asignaturas de un determinado ciclo aprueban con una
sumatoria mínima de 28 puntos.

Dado este escenario:

a. La entidad UTPL es una representación de un Directorio.


b. La unión de varios estudiantes representa un campo.
c. Las calificaciones de un estudiante varios files.
d. La entidad estudiante presenta varios campos.

5. Dado el siguiente flujo, ¿cuál de las siguientes premisas es verdadera?

a. Existe dos constantes


b. Existe una referencia absoluta
c. Existe una referencia relativa
d. fileTestA1.txt no se podrá aperturar

6. Al leer datos de un archivo mediante la clase Scanner, si el programador desea


leer datos en el archivo varias veces, el archivo __________________________
________________ para leer desde el __________ del archivo. Esto desplaza el
apuntador de posición de archivo de vuelta hasta el __________ del archivo.

a. se re abrirá – final – final


b. debe cerrarse y volver a abrirse – final – final
c. debe cerrarse y volver a abrirse – principio – principio
d. debe cerrarse y volver a abrirse – principio – final

22 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

7. Hablando del tema ARCHIVOS/Files en java, ¿cuál de las siguientes premisas es


verdadera?

a. Los archivos binarios pueden ser leídos por los humanos.


b. Los archivos de texto pueden ser leídos por los humanos.
c. Una ruta relativa contiene todos los directorios, empezando con el
directorio raíz.
d. La clase Formatter contiene el método printf, que permite imprimir
datos con formato.

8. Si los caracteres están compuestos por bits y los campos compuestos por
caracteres, los _______ están compuestos por campos.

a. registros
b. archivos
c. bites
d. campos

9. Escriba una instrucción que aperture el archivo “miFileTest.txt” en modo


entrada:

a. Scanner inFile = new Formatter( new File( “miFileTest.txt” ) );


b. File inFile = new File( new File( “miFileTest.txt” ) );
c. Formatter inFile = new Formatter( new File( “miFileTest.txt” ) );
d. Scanner inFile = new Scanner( new File( “miFileTest.txt” ) );

10. Un archivo puede contener otros archivos, o también un o varios registros; el


registro a su vez está formado por campos y los campos por caracteres y éstos
últimos por bits.

Con esta aclaración y jerarquía de clases , en la línea 18 se está representado:


__________, en la línea 17: __________ y la clase UTPL representa __________.

a. un campo – un registro – una DB


b. un archivo – un registro – un campo
c. un campo – un registro – varios campos
d. varios campos – un archivo – varios archivos

La Universidad Católica de Loja


23
Evaluaciones a distancia: Programación de Algoritmos

11. ¿Por qué un registro es un grupo de campos relacionados? Porque __________...

a. de entre mil registros cada uno es igual gracia a una clave de registro o
llave primaria.
b. los valores de los campos son todos exactamente iguales en cada registro
relacionado.
c. los campos representan inequívocamente a un registro a través de una
llave primaria.
d. tanto los campos como los registros están compuestos por bit, byte y
caracteres.

12. Los flujos que reciben y envían bytes a archivos son flujos basados en bytes y
los flujos que reciben y envían caracteres son flujos basados en caracteres, y
almacenan datos como una secuencia de caracteres.

¿Dado ello, si se emplea un flujo basado en byte para enviar a guardar el 5 en un


archivo cual es el flujo de bytes que se envía?

a. El código binario del número 510 = 01012 y no el binario del carácter ‘5’:
5310 = 001101012
b. Se envía el caracter ‘5’: 5310 = 001101012 y el número 510 = 01012 por
redundancia.
c. Se envía directamente el 5 pero en palabras, es decir, “cinco” como
conjunto de caracteres.
d. El código binario del caracter ‘5’: 5310 = 001101012 y no los bit del número
510 = 01012

13. El siguiente flujo de hacia un archivo es un ejemplo de guardar el valor ___ a


través de un flujo basado en ______________.

00000000 00110001

a. 8 – bytes
b. 5 – caracteres
c. 0 – bytes
d. 1 – caracteres

14. Las sentencias:

Formatter obj1 = new Formatter(“file.extension”);


Scanner obj2 = new Scanner( new File(“file.extension”) );
Permiten apertura en modo ____________ y apertura en modo ____________
respectivamente, hacia/desde un archivo.

a. lectura – lectura
b. escritura – escritura
c. lectura – escritura
d. escritura – lectura

24 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

15. Las clases FileInputStream y FileOutputStream se utilizan para grabar o leer


datos de tipo byte.

Considerando lo señalado anteriormente, indique en qué línea de código se lee


o escribe datos y en cuál no.

a. 1–N0; 3–ESCRIBE; 4–NO; 7–LEE


b. 1–ESCRIBE; 3–NO; 4–LEE; 7–NO
c. 1–ESCRIBE; 3–ESCRIBE; 4–LEE; 7–LEE
d. 2–NO; 3–LEE; 4–LEE; 7–NO

16. El siguiente fragmento de código crea y lee el archivo de texto MiArchivo.txt;


para efectivizar dicho requerimiento, la línea 7 debe ser completada con la
siguiente sentencia.

a. System.out.println(entrada.nextLine());
b. System.out.println(salida.nextLine());
c. salida.format(“%s”, entrada.toString());
d. entrada.format(“%s”, entrada.toString());

17. La clase File contiene varios métodos que permiten obtener información sobre
un archivo que se va a manipular.

De las siguientes opciones de código indique qué función realiza.

a. 1–x, 2–w, 3–z, 4–y


b. 1–x, 2–y, 3–w, 4–z
c. 1–x, 2–z, 3–w, 4–y
d. 1–w, 2–z, 3–x, 4–y

La Universidad Católica de Loja


25
Evaluaciones a distancia: Programación de Algoritmos

18. Se desea realizar la apertura de un archivo en modo escritura, para ello la línea
a ejecutar es:

a. Scanner archivo = new Scanner(new File(C:\file.txt));


b. Formatter archivo = new Formatter(“C:\folder\”);
c. Formatter archivo = new Scanner(ruta_adsoluta);
d. Scanner archivo = new Scanner(System.in);

19. Los archivos que se crean usando flujos basados en bytes son archivos binarios.
Los archivos que se crean usando flujos basados en caracteres son archivos de
texto. Los archivos de texto se pueden leer mediante ___________, mientras
que los archivos binarios se leen mediante ___________ que convierte esos
datos en un formato legible para los humanos.

a. un programa – editores de texto


b. editores de texto - un programa
c. editores de texto – editores de texto
d. programas especiales – programas especiales

20. La compilación y ejecución de un desde consola se la puede realizar con los


comandos javac y java respectivamente; dichos comandos manejan su propia
sintaxis la cual es necesario conocer para ejecutar cada comando de forma
correcta. Por ejemplo, en la siguiente sintaxis la opción -classpath o lo -cp
permite:

a. Especificar que ejecuciones futuras se realizarán en el directorio \cap17


b. Compilar la clase en el directorio actual con todas sus clases actuales.
c. Especificar donde encontrar los archivos de clase del usuario/paquete,
etc.
d. Compilar y ejecutar todas las clases del directorio actual y del \cap17

21. ¿Qué es un objeto?

a. Es una abstracción del mundo real, apunta o instancia una clase con
atributos, propiedades y métodos.
b. Son variables especiales que pueden ser de tipo public, private o static lo
cual define su nivel y alcance.
c. Representan todos los paquetes de la clase Java.* que son importados de
forma implícita hacia cualquier clase.
d. Representan todos los paquetes de la clase Java.* que son importados de
forma explícita hacia cualquier clase.

26 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

22. Por lo general no se puede invocar a un método de otra clase, sino hasta _______
de esa clase. Las variables declaradas como _______ sólo están accesibles para
los métodos de la clase en que están declarados. En UML, los atributos privados
van precedidos por un _______

a. crear un objeto – private - signo menos


b. definir el constructor – objetos – signo mas
c. crear un objeto – protected –signo numeral
d. definir el constructor – public – signo menos

23. La unidad de programa que aloja a un _______ se llama _______. Un(a) _______
puede contener uno o más métodos, que están diseñados para realizar las
tareas de esa clase.

a. Objeto – Clase – Objeto


b. Método – Clase – Propiedad
c. Método – Objeto – Método
d. Método – Clase – Clase

24. Puede utilizarse una clase para crear una instancia de la clase, a la cual se le llama
_______. Ésta es una de las razones por las que Java se conoce como lenguaje
de programación orientado a objetos.

a. Objeto
b. Método
c. Clase
d. Variable local

25. A los métodos get() se les llama comúnmente ___________________ o


___________________.

a. constructores – métodos creados por defecto


b. métodos de inicialización – constructores
c. métodos de inicialización – métodos de asignación
d. métodos de acceso – métodos de consulta

La Universidad Católica de Loja


27
Evaluaciones a distancia: Programación de Algoritmos

26. El código siguiente corresponde a una jerarquía de clases.

Dicho código contiene el siguiente número de PROPIOS de dicha jerarquía:

___: clases
___: métodos.
___: variables de instancia.

a. 3–3–4
b. 0–3–6
c. 3–0–2
d. 3–0–6

27. Cada método puede especificar parámetros que representan la información


adicional requerida por el método para realizar su tarea correctamente. La
llamada a un método suministra valores para los parámetros del método.

Dado la puntualización anterior, ¿cuál es el resultado que se muestra por


pantalla si ejecutamos la siguiente clase?

a. 1
b. 2
c. 3
d. 4

28 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

28. Cada método puede especificar parámetros que representan la información


adicional requerida por el método para realizar su tarea correctamente. La
llamada a un método suministra valores (llamados argumentos) para los
parámetros del método.

¿Dado la puntualización anterior, cual es el resultado que se muestra por


pantalla si ejecutamos la siguiente clase?

a. 3y6
b. 6y3
c. 3 y 12
d. 12 y 3

La Universidad Católica de Loja


29
Evaluaciones a distancia: Programación de Algoritmos

29. En la POO la herencia es una forma de reutilización de software. Ésta ahorra


tiempo de desarrollo al basar las nuevas clases en el software existente de
calidad.

Conforme a lo indicado anteriormente. Seleccione cuáles de las opciones


señaladas constituyen buenas prácticas de ingeniería o errores en la
programación.

AFIRMACIÓN
Modificar variables de instancia private de la superclase a través de los métodos
1.
set(parametro) que las subclases heredan.
2. Declarar los métodos sobreescritos con la anotación @Override.
3. Sobreescribir un método con un modificador de acceso más restringido.
Declarar en la superclase las variables de instancia y los métodos comunes de toda
4.
la jerarquía .
Anteponer al nombre del método de la superclase la palabra clave y el separador
5.
punto (.) al momento de llamar al método de la superclase

VALOR
B. Buena práctica
E. Errores

a. 1–B; 2–B; 3–B; 4–B; 5–B


b. 1–B; 2–B; 3–E; 4–B; 5–B
c. 1–E; 2–E; 3–B; 4–E; 5–E
d. 1–B; 2–B; 3–E; 4–B; 5–E

30. Un constructor es:

a. Un método para inicializar variables globales y locales de tipo <private>


b. Un método especial que tiene el mismo nombre de la clase que lo
contiene.
c. La técnica por la cual construimos los atributos privados de la clase padre.
d. Un conjunto de métodos que inicializan únicamente los atributos
<public> de la clase.

31. ¿Qué es un constructor sobrecargado?

a. Son métodos de acceso para los miembros de la clase que los contiene.
b. Es un método especial que se llama así mismo de forma recursiva.
c. Son métodos especiales de accedo que tienen el mismo nombre de su
clase.
d. Son varios métodos con el mismo nombre de la clase, pero con diferentes
parámetros.

30 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

32. La clase String que contiene un sin número de métodos para el tratamiento
de cadenas entre otros objetos, es una clase que no requiere el importe del
paquete _______________ a la que pertenece, ya que éste paquete se importa
implícitamente en cada .java.

a. java.lang
b. java.Scanner
c. java.Throwable
d. java.util

33. ¿Cuál de las siguientes afirmaciones es correcta?

a. Para sobrecargar un método se le nombra como uno ya existente y con el


mismo tipo y número de parámetros de entrada.
b. El número de argumentos en la llamada a un método “B” debe diferir con
el número de parámetros recibidos por “B”.
c. No podemos llamar a un método que pertenece a otra clase “A”, sin crear
un objeto de “A” he invocarlo a través del objeto.
d. Los campos private de una clase “A” son accesibles en la clase “A” o en
otras donde se instancien con un objeto.

34. Cuál de las afirmaciones es falsa dadas las dos clases siguientes: Clases1_Test()
y ClaseX()

a. En ClaseX() no se crea un constructor vacío implícito o por defecto.


b. atributo1 es accesible desde fuera de la clase a la que pertenece
c. Otra forma de invocar getAll() es: String cad = objClaseX.getAll();
d. ClaseX() tiene un constructor y una método accesibles desde fuera.

La Universidad Católica de Loja


31
Evaluaciones a distancia: Programación de Algoritmos

35. Cada método puede especificar parámetros que representan la información


adicional requerida por el método para realizar su tarea correctamente. La
llamada a un método suministra valores para los parámetros del método.

Así, la siguiente clase TestCalc realiza la llamada a métodos en las líneas de


código 5 y 6, con lo cual se supone que la definición de los métodos deben ser:
____________________________________ o ___________________________
_________ respectivamente,

a. public double opera1(double num) –– public double opera1(double


num[ ])
b. public double opera1(double num[ ], char opera) –– public double
opera1(double num)
c. public double opera1(double num[ ]) –– public double opera1(double
num[ ], char opera)
d. public double opera1(double num{1,2,3}) –– public double opera1(double
num[ ],’+’)

36. Los miembros de clase _________ existen aun cuando no existan objetos de
la clase; están disponibles tan pronto como se carga la clase en memoria, en
tiempo de ejecución. Para acceder a un miembro cuando no existen objetos de
la clase, debe proporcionarse un método .

a. public
b. static
c. private
d. protected

32 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

37. Dado el siguiente diagrama de clases, indicar cuál de las operaciones es


correcta a la hora de acceder a los miembros de la jerarquía, pero desde la clase
administrativo
Nota: en cada clase, el primer bloque pertenece al nombre de la clase, el segundo
a los atributos o campos de la clase y el último pertenece a las sus operaciones
o métodos.

a. this.sueldo = 0.5 + this.categoria;


b. this.sueldo = 0.5 + bonificaciones();
c. docente.categoria = horas + bonificaciones();
d. empleado.cargo = categoria.publica();

38. En la herencia simple, una clase se deriva de una superclase directa. En la


herencia múltiple, una clase se deriva de más de una superclase directa. Java no
soporta la herencia múltiple.

Dada ésta definición y los siguientes cuatro diagramas de clase, indicar cuál de
ellos no es posible implementar en Java.

Diagrama 1 Diagrama 2

Diagrama 3 Diagrama 4

a. Diagrama 1
b. Diagrama 2
c. Diagrama 3
d. Diagrama 4
La Universidad Católica de Loja
33
Evaluaciones a distancia: Programación de Algoritmos

39. Cuando un método de una subclase sobrescribe a un método de una superclase,


se puede acceder al método de la superclase desde la subclase, si se antepone
al nombre del método de la subclase la palabra clave super y un separador
punto (.)

Dada la aclaración anterior, y suponiendo que las clases del siguiente diagrama
están codificadas con tus atributos, constructores y métodos, indicar cuál de las
sentencias aplica correctamente el uso de la palabra clave super:

a. Dentro de la claseZ codificar: super.metodoZ1()


b. Dentro de la claseY codificar: super.metodoY1()
c. Dentro de la claseY codificar: super.metodoX1()
d. Dentro de la claseX codificar: super.metodoX1()

40. ¿Dado el siguiente diagrama de clases que afirmación es verdadera?

a. estudiante hereda de las clases nacional y extranjero


b. desde estudiante se puede acceder a descuento y costoEstadia
c. desde estudiante no se puede acceder a descuento y costoEstadia
d. los métodos de las clases hijas pueden ser usados por la clase padre

34 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

PRUEBA ENSAYO (4 puntos)

• Para el desarrollo de la prueba de ensayo, deberá revisar su guía de estudio, texto


básico, y anuncios/recursos que se publican en el EVA (EVA-UTPL). Además, se
sugiere participar de los foros, chats y cuestionarios en los cuales Ud. podrá
mejorar sus competencias de análisis, diseño y codificación de algoritmos.

• Solo una vez revisados los temas de: Programación con ficheros, POO en Java,
inicie el desarrollo de esta Evaluación a Distancia ; no olvide que el fin de éste
trabajo, es ofrecerle un indicador del nivel de conocimientos y competencias
de cada unidad y así refuerce su práctica en caso de no obtener un puntaje o
comentarios satisfactorios en su programa o componente objetivo.

• Una vez desarrollada su solución Ud. debe presentarla considerando las


siguientes instrucciones para facilitar al tutor la revisión, de no hacerlo se ira
restando puntaje.

En el EVA debe subir obligatoriamente dos archivos, y solo dos, NO, MÁS.

1er. archivo:

Correspondiente al informe del programa, el cual corresponde a un


documento en Microsoft Word .docx con la siguiente información y código
con formato bajo ningún caso se deben pegar imágenes capturadas como
código.

El nombre del informe debe ser [usernameDelEva_ProgAlg_AA17_2B] y su contenido


es el siguiente:

La Universidad Católica de Loja


35
Evaluaciones a distancia: Programación de Algoritmos

Análisis y diseño de la solución (Diagrama de clases)

(A continuación, un ejemplo de cómo se debe presentar el diagrama de clase, al cual


Ud. lo puede generar con cualquier herramienta, la más oportuna es NetBeans y plugins
respectivos, caso contrario, Visio, o el mismo Word son aplicables. Dicho diagrama
es obligatorio, por cuanto su .java debe aplicar conceptos de Herencia) – Borrar este
comentario al redactar su informe.

Documentación del diagrama de clases:

Nombre de
Descripción
la Clase
La clase <ClaseX> permite definir a un estudiante con sus atributos a, b, c,
etc …
Métodos Descripción
Este método/función retorna el promedio de las
MiMetodoA
calificaciones xyz para el ciclo C1, etc, etc..
Este método/función retorna el promedio de las
MiMetodoB
calificaciones xyz para el ciclo C1, etc, etc..
La clase <ClaseY> hereda de la súper clase <ClaseX> para permitir procesar
los datos a, b, c, etc …
Métodos Descripción
Este método/función retorna el promedio de las
MiMetodoA
calificaciones xyz para el ciclo C1, etc, etc..
Este método/función retorna el promedio de las
MiMetodoB
calificaciones xyz para el ciclo C1, etc, etc..

36 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

Desarrollo de la solución ([usernameDelEva_ProgAlg_AA17_2B.java])

Para copiar el código del ÚNICO .java al informe en word [usernameDelEva_ProgAlg_


AA17_2B], desde NetBeans (o de cualquier framework con el que esté trabajando)
el código será copiado con formato, es decir, con la numeración, colores, sangrías,
etc. típicos del lenguaje java, para ello Ud. no debe copiar del NetBeans (si usa este
IDE) directamente al documento .docx, sino, debe usar algún intermediario que le dé
formato al código para no perderlo al pegar al .docx. De entre muchos intermediarios
existentes en la Red o Herramientas de escritorio aquí le proponemos tres (siéntase en
la libertar usar el que mejor domine):

• Notepad++: http://notepad-plus-plus.org/

• Source code (en line): http://markup.su/highlighter/

• Made by Alexander Kojevnikov (en line): http://hilite.me/


Nota: Éstos tres recursos fueron consultados el 15 de julio del 2016, 18H:00.

Y por favor, para no tener en muchas hojas su código, reduzca el tamaño de la letra
mínimo 8pts, y con interlineado mínimo.

INDISPENSABLE: No olvide que al final del código dentro del .docx - .java y dentro de
un comentario insertado con los caracteres /**, Ud. debe copiar y pegar lo que obtenga
por pantalla como resultado en RUN (resultados de la ejecución, bien tabulados por
el mismo .java, Netbeans, para lo cual Ud. puede revisar el apéndice G Formatted
Output), esta última sección demanda la mayor calificación de este componente de
ensayo, ya que ésta, nos certifica que su aplicación si funciona y genera los resultados
correctos/solicitados.

La Universidad Católica de Loja


37
Evaluaciones a distancia: Programación de Algoritmos

2do. archivo:

Correspondiente al código en sí, para lo cual Ud. únicamente debe adjuntar el


único archivo .java perfectamente documentado , organizado y limpio (sin
variables que no use, no espacios en blanco innecesarios y con las tabulaciones
correctas).

Por favor, es importante que todo el código este dentro de un solo archivo .java, tenga
o no tenga una o más clases class. Bajo ninguna circunstancia Ud. podrá subir todo un
proyecto comprimido, SINO, SOLO UN ÚNICO ARCHIVO .java, compilable, ejecutable y
no empaquetado, (no use la clausula package), para lo cual, el único archivo .java que
entregue, será compilado usando directamente el comando javac y ejecutado con el
comando java desde consola, por lo cual, antes de subir su .java, Ud. deberá validar
que si se compila y ejecuta desde cualquier directorio donde se lo mueva/ubique; por
lo tanto, se le recomienda:

• No empaquetar la(s) clase(s), no usar la clausula package

• Configurar correctamente las variables de entorno del sistema para el JDK

• Compile y ejecute su programa sin usar ningún IDE (sino directamente en


CMD con los comandos javac y java) – esto al final, antes de subirlo a la
plataforma.

• Para la gestión de archivos (lectura/escritura), no use rutas absolutas, si


relativas.

• Como nombre del único archivo .java se le pide el siguiente formato, ello
con fines de facilitar la revisión de su código y el registro de su calificación:
[usernameDelEva_ProgAlg_AA17_2B]

• Programe todas las clases dentro de un solo archivo .java, para ello, no
olvide que solo una clase debe ser public (con la que guardo su .java)
las demás solo las definirá con class, caso contrario se genera un error de
compilación.

• Para la creación y apertura de archivos .csv, use rutas relativas.

Calificación 4 puntos.

Alquiler de Vehículos (Transportes a sus servicios)

Se pretende desarrollar una aplicación que permita calcular los precios de alquiler
de una empresa de alquiler de vehículos; para lo cual cada vehículo se identifica
unívocamente por medio de su matrícula.

La empresa alquila distintos tipos de vehículos, tanto para transporte de personas


como de carga. En la actualidad los vehículos alquilados por la empresa son: coches,
microbuses, furgonetas de carga y camiones.

38 MODALIDAD ABIERTA Y A DISTANCIA


Evaluaciones a distancia: Programación de Algoritmos

El precio del alquiles de cualquier vehículo tiene un componente base que depende
de los días de alquiler a razón de $50 / día.

–– En el caso de alquiler de un coche, al precio base se le suma la cantidad


de $1.5 por día.

–– El precio de alquiler de los microbuses es igual que el de los coches, salvo


que se le añade una cantidad de $2 independientemente de los días de
alquiles.

–– El precio de los vehículos de carga es el precio base más $20 * PMA .

–– Además, en el caso de los camiones, al precio base se le suma un fijo de


$40 independientemente de los días de alquiler.

La interacción del usuario con la aplicación deberá realizarse a través de una interface
de menús con las siguientes opciones: Añade/Alquila vehículo, Obtener precio alquiler,
Obtener Costos totales, entre otros que considere pertinente.

Se pide:

• Codificar la jerarquía de clases que crea conveniente aplicando al máximo


las técnicas de Herencia y dibujando el diagrama de clases (documentarlo
en el informe).

• Los datos para la interacción deben autogenerarse con la clase Random;


cuando su docente vaya a revisar su aplicación, ésta, no debe solicitar el
ingreso de dato alguno, todos los datos que requiera su app. deben ser
autogenerados aleatoriamente, su docente validará los datos de salida
o resultados, en el archivo usernameDelEva_DatosSalida.csv, los cuales
serán una copia de lo visualizado en consola.

• Para este problema en particular defina mínimo una clase por cada tipo
de vehículo, con los atributos y métodos necesarios para el cálculo de
costo, horas, etc.

• Debe instanciar/probar esta jerarquía de clases en una clase CLASE_DE_


PRUEBA (como lo hacen los ejemplos desarrollados en su libro base) en
la cual se instancie las clases, se envíe los valores, realicen los cálculos y
se generen los resultados (por consola y hacia el archivo de salida con
extensión .csv – archivos de texto editables también con Excel).

• Los datos de entrada y resultados deben ser comprensibles, tanto hacia


consola como hacia el archivo de salida .csv; por lo tanto, queda a su
elección presentar dichos datos de entrada/salida de una manera creativa
y usable.

La Universidad Católica de Loja


39
Evaluaciones a distancia: Programación de Algoritmos

Importante: Si en el transcurso del desarrollo de este trabajo a distancia Ud. tuviera


inconvenientes, con todo gusto le atenderemos en los medios compartidos que su
Tutor disponga en la plataforma virtual de aprendizaje.

Estimado(a) estudiante, una vez resuelta su evaluación a distancia en el


documento impreso (borrador), acceda al Entorno Virtual de Aprendizaje
(EVA) en www.utpl.edu.ec e ingrese las respuestas respectivas.

SEÑOR ESTUDIANTE:
Le recordamos que para presentarse a rendir las
evaluaciones presenciales no está permitido el uso de
ningún material auxiliar (calculadora, diccionario, libros,
Biblia, formularios, códigos, leyes, etc.)
Las pruebas presenciales están diseñadas para
desarrollarlas sin la utilización de estos materiales.

40 MODALIDAD ABIERTA Y A DISTANCIA

Das könnte Ihnen auch gefallen