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
III
Informática
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 a l 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 anuncios/recursos que se publican en el EVA ( (EVA EVA).).
•
Acuda a la bibliografía complementar complementaria ia 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 Recursivida Recursividad, d, 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 alternati alternativas vas que se muestran en cada pregunta (a, b, c, d), 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 excepción?? a. b. c. d.
2.
Un error de compilación del .java Una alerta para depurar mejor el código Error lanzado/atrap lanzado/atrapado ado en tiempo de ejecución. Error lanzado/atrap lanzado/atrapado ado en tiempo de diseño.
El bloque try - catch permite el tratamien tratamiento to de excepciones. En el bloque try se se coloca el código que podría ____________ la excepción; y en el bloque b loque catch el código que ______________ la excepción. a. b. c. d.
manejar – genera capturar – genera generar – maneja manejar – limpia
La Universidad Católica de Loja
3
Evaluaciones Evaluacio nes a distancia: Programación de Algoritmos
3.
En cuál de los siguientes escenarios se recomienda aplicar manejador de excepciones: a. b. c. d.
4.
El manejador de excepciones permite: a. b. c. d.
5.
b. c. d.
int arreglo[] = new int[10]; int num = a/b; int num = 0; arreglo[-1];
InputMismatchException se se lanza en el siguiente escenario:
a. b. c. d. 4
Exception Excepcion Throwable Error
ArithmeticException se lanza en el siguiente escenario:
a. b. c. d. 8.
programas que traten con los problemas que puedan surgir sin dejar de ejecutarse. que, de haber problemas, los programas puedan cerrarse de forma adecuada. programas óptimos con garantías de fallas nulas, que jamás se detengan. que, de presentarse errores, los registros de log se creen antes de finali finalizar. zar.
Todo nombre de cada clase de excepción siempre finaliz finalizaa con la palabra: _____________, ello con el objetivo de identificar que se trata de una clase de excepción para el manejador de excepciones. a. b. c. d.
7.
Lanzar una excepción para ser controlada. Manipularr errores durante su aparición Manipula aparición.. Vigilar, capturar y solucionar excepciones. Reemplazar bloques a convenien conveniencia. cia.
El manejador de excepciones permiten a los programadores escribi escribirr programas tolerantes a fallas y robustos robustos,, es decir decir,, _________________________________. a.
6.
Cualquier error asincrónico. Cualquier error sincrónico. Índices fuera de rango. División entre cero.
int arreglo[] = new int[10]; int num = a/b; int num = “0”; arreglo[-1]; 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. b. c. d. 10.
Según el uso de las clausulas throws y throw: a. b. c. d.
11.
Las dos clausulas son similares, no hay diferencia significativa en ellas. Siempre podemos usar una u otra en su lugar, ya queson iguales. Una permite informar de posibles excepciones, otra, lanza una excepción. Permiten lanzar/atrapar excepciones en tiempo de diseño y ejecución.
¿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. b. c. d. 12.
en la posición, cero, del arreglo dentro de los límites del arreglo más allá del fin del arreglo nombArreglo.length – 1
1–No atrapar, 2–No Atrapar, 3–No Atrapar, 4–No Atrapar, 5-No Atrapar 1–Atrapar, 2–Atrapar, 3–Atrapar, 4–Atrapar, 5- Atrapar 1–Atrapar, 2–No Atrapar, 3–Atrapar, 4–No Atrapar, 5-Atrapar 1–No atrapar, 2–Atrapar, 3–Atrapar, 4–No Atrapar, 5-Atrapar
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. b. c. d.
resp /= arrays; resp += arrays; resp *= arrays; 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. b. c. d.
14.
En la medida de lo posible, reemplazar cualquier if-else con try/catch. Obligar que, para cada bloque catch habrá varios parámetros . Vigilar el 100% del código, codificando bloques de manejo de excepciones. Codificar un catch por cada tipo de excepción que podría generarse.
Dados los siguientes fragmentos de código: FLUJO DE CÓDIGO A
FLUJO DE CÓDIGO C
FLUJO DE CÓDIGO B
FLUJO DE CÓDIGO D
¿Cuál es el flujo que contiene una estructura incorrecta? a. b. c. d.
6
Flujo de código A Flujo de código B Flujo de código C Flujo de código D
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
a. b. c. d. 16.
y.
Dadas las edades de 3 personas averiguar cuál es la mayor y cual la intermedia.
z.
General la nómina a cancelar de una lista de empleados almacenada en arreglos.
x. – if else x. – try catch x. – try catch x. – if else
y. – if else y. – try catch y. – if else y. – try catch
z. – if else z. – try catch z. – try catch z. – if else
4–6 1–6 1–4 1 – 4, 6
Las excepciones propias deben ____________ de la clase RuntimeException para ser excepciones no verificadas; o de la clase ____________ para ser una excepción ____________. a. b. c. d.
18.
Ingreso por teclado de valores para las variables y de tipo: y .
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. b. c. d. 17.
x.
heredarse – IOException – verificada heredarse – IOException – no verificada excluirse – Error – no verificada crearse – Error – verificada
La excepción FileSystemException es una excepción ____________________, por que hereda de IOException. a. b. c. d.
verificada no verificada propia impropia
La Universidad Católica de Loja
7
Evaluaciones a distancia: Programación de Algoritmos
19.
20.
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. c.
InputMismatchException, ArrayIndexOutOfBoundsException – En este orden.
d.
FileSystemException, InputMismatchException, ArrayIndexOutOfBoundsException – En cualquier orden.
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. b. c. d.
21.
avanza – siguiente avanza – final de las regresará – primera finaliza – bloque try
¿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. b. c. d. 8
InputMismatchException, ArrayIndexOutOfBoundsException, FileSystemException – En cualquier orden.
La excepción RuntimeException (y sus hijas) al ser no verificadas deben ser atrapadas solo al final. Para cada bloque catch se debe definir un solo tipo de excepción heredada de la clase Throwable La estructura jerárquica de herencia de la clase Exception de la que se deriva cada tipo de excepción. Todas las excepciones que no hereden de RutimeExcepction pueden ser atrapadas en los últimos catch 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. b. c. d. 23.
13, 16 – 3 16 – 3 13 – 7 16 – 4
En la siguiente jerarquía de excepciones, ¿Cuál es una excepción propia definida de forma incorrecta?
a. b. c. d.
MiException1 MiException2 MiException3 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. b. c. d. 25.
Por pantalla se presenta Error al ingreso desde la línea 22. Por pantalla se presenta Error al ingreso desde la línea 27. No hay ningún error por pantalla ya que el 6 igual es un carácter. Captura la excepción de la línea 27.
Dadas las siguientes declaraciones, y en algunos casos inicializaciones:
Existen ____ variables de tipo primitivo. a. b. c. d. 10
3 4 5 7 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. b. c. d. 27.
¿Cuál de los siguientes arreglos contiene datos de tipo por referencia? a. b. c. d.
28.
3 4 5 7
double array_a[][] = {{1.4, 0.2, 9.0, 4, 5}, {15.5, 40.5, 12.4, 8.4}}; Exception array_b[] = {new RuntimeException(), ArithmeticException()}; char array_c[] = {‘a’, ‘b’, ‘c’}; boolean array_d[][] = new boolean[2][];
new
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. b. c. d.
filas – primera filas – tercera filas – segunda 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. b. c. d. 30.
¿Cuál es la salida por pantalla que se muestra del siguiente flujo?
a. b. c. d. 31.
arreglo.length() – 1; 15 7 1
Con el método de búsqueda lineal, cuantas iteraciones se requieren para encontrar el número 23 en el siguiente arreglo:
a. b. c. d. 12
26.0 30.0, -5.0, 1.0 -6.0, -5.0, 1.0 30.0, 15.0, 16
Con el método de búsqueda binario, cuantas iteraciones se requieren para encontrar el número 49 en el siguiente arreglo:
a. b. c. d. 32.
8 -3 5 4
1 2 3 4 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. b. c. d. 34.
La clase permite ordenar, buscar, compara, insertar, copiar, etc. elementos dentro de los _________. a. b. c. d.
35.
Burbuja Lineal Binario Burbuja mejorado
Arrays – arreglos Arrays – registros Exception – arreglos Throwable – arreglos
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. b. c. d. 36.
combinación selección inserción burbuja
En cuanto al método de búsqueda lineal. a. b. c. d.
Es el único método que está incluido en la clase ArrayList Iniciar su búsqueda con un array en orden. No es tan eficiente como si lo es la búsqueda binaria. 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. b. c. d. 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. b. c. d.
39.
caso base – paso recursivo caso(s) base – caso base paso recursivo – caso base método recursivo – ciclo iterativo
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. b. c. d.
14
25, 95, 55, 56, 63, 81, 76, 59, 75, 66 25, 75, 95, 55, 56, 63, 81, 76, 59, 66 75, 95, 55, 56, 63, 81, 76, 59, 66, 25 95, 55, 56, 63, 81, 76, 59, 66, 75, 25
9 3 7-8 6-10
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. b. c. d.
3 6 24 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 2 - 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. 24
•
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 2 - 2, o 65.534 hosts. 16
•
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 2 - 2, o 254 hosts. 8
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 desarrollarlas sin la utilización de estos materiales.
La Universidad Católica de Loja
para
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. b. c. d.
2.
bytes – megabyte megabytes – gigabytes caracteres – números ceros – unos
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. b. c. d.
parcial – pequeñas persistente – grandes temporal – pequeñas 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. b. c. d.
4.
bit bites caracteres ceros – unos
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. b. c. d.
5.
Dado el siguiente flujo, ¿cuál de las siguientes premisas es verdadera?
a. b. c. d. 6.
Existe dos constantes Existe una referencia absoluta Existe una referencia relativa fileTestA1.txt no se podrá aperturar
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. b. c. d.
22
La entidad UTPL es una representación de un Directorio. La unión de varios estudiantes representa un campo. Las calificaciones de un estudiante varios files. La entidad estudiante presenta varios campos.
se re abrirá – final – final debe cerrarse y volver a abrirse – final – final debe cerrarse y volver a abrirse – principio – principio debe cerrarse y volver a abrirse – principio – final
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. b. c. d.
8.
Si los caracteres están compuestos por bits y los campos compuestos por caracteres, los _______ están compuestos por campos. a. b. c. d.
9.
registros archivos bites campos
Escriba una instrucción que aperture el archivo “miFileTest.txt” en modo entrada: a. b. c. d.
10.
Los archivos binarios pueden ser leídos por los humanos. Los archivos de texto pueden ser leídos por los humanos. Una ruta relativa contiene todos los directorios, empezando con el directorio raíz. La clase Formatter contiene el método printf , que permite imprimir datos con formato.
Scanner inFile = new Formatter( new File( “miFileTest.txt” ) ); File inFile = new File( new File( “miFileTest.txt” ) ); Formatter inFile = new Formatter( new File( “miFileTest.txt” ) ); Scanner inFile = new Scanner( new File( “miFileTest.txt” ) );
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. b. c. d.
un campo – un registro – una DB un archivo – un registro – un campo un campo – un registro – varios campos 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. b. c. d.
12.
de entre mil registros cada uno es igual gracia a una clave de registro o llave primaria. los valores de los campos son todos exactamente iguales en cada registro relacionado. los campos representan inequívocamente a un registro a través de una llave primaria. tanto los campos como los registros están compuestos por bit, byte y caracteres.
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 5 = 0101 y no el binario del carácter ‘5’: 53 = 00110101 Se envía el caracter ‘5’: 53 = 00110101 y el número 5 = 0101 por redundancia. Se envía directamente el 5 pero en palabras, es decir, “cinco” como conjunto de caracteres. El código binario del caracter ‘5’: 53 = 00110101 y no los bit del número 5 = 0101 10
10
b. c. d.
2
10
2
10
10
13.
2
10
2
2
2
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. b. c. d.
14.
8 – bytes 5 – caracteres 0 – bytes 1 – caracteres
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. b. c. d. 24
lectura – lectura escritura – escritura lectura – escritura escritura – lectura 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. b. c. d. 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. b. c. d. 17.
1–N0; 3–ESCRIBE; 4–NO; 7–LEE 1–ESCRIBE; 3–NO; 4–LEE; 7–NO 1–ESCRIBE; 3–ESCRIBE; 4–LEE; 7–LEE 2–NO; 3–LEE; 4–LEE; 7–NO
System.out.println(entrada.nextLine()); System.out.println(salida.nextLine()); salida.format(“%s”, entrada.toString()); entrada.format(“%s”, entrada.toString());
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. b. c. d.
1–x, 2–w, 3–z, 4–y 1–x, 2–y, 3–w, 4–z 1–x, 2–z, 3–w, 4–y 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. b. c. d.
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. b. c. d.
20.
d.
Especificar que ejecuciones futuras se realizarán en el directorio \cap17 Compilar la clase en el directorio actual con todas sus clases actuales. Especificar donde encontrar los archivos de clase del usuario/paquete, etc. Compilar y ejecutar todas las clases del directorio actual y del \cap17
¿Qué es un objeto? a. b. c. d.
26
un programa – editores de texto editores de texto - un programa editores de texto – editores de texto programas especiales – programas especiales
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. b. c.
21.
Scanner archivo = new Scanner(new File(C:\file.txt)); Formatter archivo = new Formatter(“C:\folder\”); Formatter archivo = new Scanner(ruta_adsoluta); Scanner archivo = new Scanner(System.in);
Es una abstracción del mundo real, apunta o instancia una clase con atributos, propiedades y métodos. Son variables especiales que pueden ser de tipo public, private o static lo cual define su nivel y alcance. Representan todos los paquetes de la clase Java.* que son importados de forma implícita hacia cualquier clase. Representan todos los paquetes de la clase Java.* que son importados de forma explícita hacia cualquier clase.
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. b. c. d.
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. b. c. d.
24.
Objeto – Clase – Objeto Método – Clase – Propiedad Método – Objeto – Método Método – Clase – Clase
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. b. c. d.
25.
crear un objeto – private - signo menos definir el constructor – objetos – signo mas crear un objeto – protected –signo numeral definir el constructor – public – signo menos
Objeto Método Clase Variable local
A los métodos get() se les llama comúnmente ___________________ o ___________________. a. b. c. d.
constructores – métodos creados por defecto métodos de inicialización – constructores métodos de inicialización – métodos de asignación 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. b. c. d. 27.
3–3–4 0–3–6 3–0–2 3–0–6
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. b. c. d.
28
1 2 3 4
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. b. c. d.
3y6 6y3 3 y 12 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 1.
Modificar variables de instancia private de la superclase a través de los métodos 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.
4.
Declarar en la superclase las variables de instancia y los métodos comunes de toda la jerarquía .
5.
Anteponer al nombre del método de la superclase la palabra clave y el separador punto (.) al momento de llamar al método de la superclase VALOR
a. b. c. d. 30.
c. d.
E.
Errores
1–B; 2–B; 3–B; 4–B; 5–B 1–B; 2–B; 3–E; 4–B; 5–B 1–E; 2–E; 3–B; 4–E; 5–E 1–B; 2–B; 3–E; 4–B; 5–E
Un método para inicializar variables globales y locales de tipo
Un método especial que tiene el mismo nombre de la clase que lo contiene. La técnica por la cual construimos los atributos privados de la clase padre. Un conjunto de métodos que inicializan únicamente los atributos de la clase.
¿Qué es un constructor sobrecargado? a. b. c. d.
30
Buena práctica
Un constructor es: a. b.
31.
B.
Son métodos de acceso para los miembros de la clase que los contiene. Es un método especial que se llama así mismo de forma recursiva. Son métodos especiales de accedo que tienen el mismo nombre de su clase. Son varios métodos con el mismo nombre de la clase, pero con diferentes parámetros. 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. b. c. d.
33.
¿Cuál de las siguientes afirmaciones es correcta? a. b. c. d.
34.
java.lang java.Scanner java.Throwable java.util
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. 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”. 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. Los campos private de una clase “A” son accesibles en la clase “A” o en otras donde se instancien con un objeto.
Cuál de las afirmaciones es falsa dadas las dos clases siguientes: Clases1_Test() y ClaseX()
a. b. c. d.
En ClaseX() no se crea un constructor vacío implícito o por defecto. atributo1 es accesible desde fuera de la clase a la que pertenece Otra forma de invocar getAll() es: String cad = objClaseX.getAll(); 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. b. c. d. 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. b. c. d.
32
public double opera1(double num) –– public double opera1(double num[ ]) public double opera1(double num[ ], char opera) –– public double opera1(double num) public double opera1(double num[ ]) –– public double opera1(double num[ ], char opera) public double opera1(double num{1,2,3}) –– public double opera1(double num[ ],’+’)
public static private protected
MODALIDAD ABIERTA Y A DISTANCIA