You are on page 1of 33
Evaluacion final - Escenario 8 Fecha de entrega 31demayoen 23:55 Puntos 100 —Preguntas 20 Disponible 8 de mayo en 0:00 - 31 de mayo en 23:55 24 dias Limite de tiempo 90 minutos Intentos permitidos 2 Instrucciones Apreciado estudiante, presents tus exdmenes como SERGIO EL ELEFANTE, quien con honestidad, uso su sabiduria para mejorar cada dia. Lee detenidamente las siguientes indicaciones y minimiza inconvenier 4. Tienes dos intentos pare desarrolar 7, Solo puedes. recurrir a tu evaluacion intento en caso de un tecnoly 2, Si respondiste uno. de los intentos sin ningln inconveniente y tuviste 8, Si tu examen incluye prey roblemas con el otro, el examen no —_respuestes abertas, ‘esta: Sera hablitado nuevamente. calificadas automaticament requierer le revision del tute 3. Cuando estés respondiendo la evaluacion, evita abrir paginas 9. Si presentas inconvenier dferentes'a tu examen, Esto puede itacién del examer ocasionar el cierre del mismo y la crear un caso explicando pérdida de un intento. adjuntando | sempre "ims ____evidencia, con fecha y hore 4, Asegirate de tener buena conexion Soporte Tecnologico pued: a interRet, cierra cualquier programa —_una respuesta lo antes posb que puede consumir el anche de Banda ynoutlices internet mévil 10. Podrés verificar la solu examen Gnicamente durar 5, Debes empezar a responder el horas siguient re. examen por © menos dos Aoras antes del cierre, es decir, maximo a las 9:55 Nl Te recomendamos e itar B.m-S legeda bsi'55 p.m. nolo hes telefonos ntelgentesotabl Enviado, el mismo se cerrara y no presentacion “de tus: podra sér calificado, evaluativas 6.E| tiempo maxima que tienes para 12, Al terminar de_ res) resdlver cada evaluacién es de'90 examen debes dar clic er minutos. *Ervier todo y terminar® de cel examen permanecers abic {Confiamos en que sigas, paso a paso, en el camino hacia la excelencia {Das tu palabra de que realizarés esta actividad asumiendo de corazé PACTO DE HONOR? » Volver a realizar el examen Historial de intentos Intento Hora Puntaje MAS RECIENTE Intento 1 84 minutos 90 de 100 | © Las respuestas correctas ya no estan disponibles. Puntaje para este intento: 90 de 100 Entregado el 8 de mayo en 16:06 Este intento tuvo una duracién de 84 minutos. | Pregunta 1 5/5 pts | Se dice que Leonardo de Pisa, ms conocido como Fibonacci, descubrié la sucesién que lleva su nombre estudiando cémo crecia una poblacién de conejos. El crecimiento de la poblacién seguia las. siguientes reglas: + La poblacién inicia con una pareja de conejos jévenes. + Una pareja de conejos jévenes madura al cumplir un mes. + Una pareja de conejos concibe una nueva pareja de conejos jévenes cada mes, iniciando un mes después de su maduracién. Asi, en los meses 1 y 2 se tendria tnicamente una pareja. Para el mes 3, habria ya una nueva pareja, para un total de 2. En el mes 4, la pareja ya madura tendria una nueva pareja, completando 3 parejas. En el mes 5, la primera pareja y su primera pareja cria engendrarian dos nuevas parejas, siendo la poblacién total 5 parejas. El numero de parejas que conforman la poblacién en el mes n puede calcularse mediante la ecuacién de recurrencia: rejas(n) = {2 n=1én= parejas\n) = Uyarejas(n — 1) + parejas(n—2), n> EI ntimero de parejas que forman la poblacién después de 20 meses es: 4181 2584 10946 6765 Incorrecto parejas(20) parejas(19) parejas(18) = parejas(19) + parejas(28) parejas(17) parejas(16) parejas(17) + parejas(15) parejas(16) parejas(15) + parejas(14) parejas(15) = parejas(14) + parejas(13) parejas(14) parejas(13) + parejas(12) parejas(13) = parejas(12) + parejas(11) parejas(12) arejas(11) + parejas(1@) parejas(11) = pareJas(10) + parejas(9) parejas(10) arejas(9) + parejas(8) parejas(9)” » pareJas(8) + parejas(7) parejas(8) parejas(7) + parejas(6) parejas(7) parejas(6) + parejas(S) parejas(6) = parejas(5) + parejas(4) parejas(5) parejas(4) + parejas(3) parejas(4) = parejas(3) + parejas(2) parejas(3) parejas(2) + parejas(1) parejas(2) = 1 parejas(1) = 1 entonces parejas(3) parejas(4) parejas(5) parejas(6) parejas(7) parejas(8) parejas(9) parejas(19) parejas(11) parejas(12) parejas(13) parejas(14) parejas(15) parejas(16) parejas(17) parejas(18) parejas(19) parejas(28) Pregunta 2 0/5 pts David quiere desarrollar un programa de edicién de cédigo java que le permita hacer su cédigo mas legible y calcule algunos datos interesantes. Dado que el procesamiento de informacién textual no es su fuerte, David le ha pedido su ayuda para codificar algunas de las. tareas basicas del editor. Una de las funcionalidades con que David desea que cuente su editor es la de eliminar lineas vacias del cédigo. El siguiente método recibe un cédigo y retorna el cédigo sin lineas vacias. static String eliminar_ineas_vacias(String codigo){ String nuevo_codigo = 7"; codigo = "\n™ + codigo; for (int i = 1; i < codigo-length(); i+) Lf () uevo_codigo = nuevo_codigo + codigo.charat (i); return nuevo_codigos Para que el método sea correcto, debe ser reemplazado por: charat(i)!="\n" || codigo.charat(i-1)!="\n" charat(i-1 charat(i) charat(i) "\n' 8& codigo. charAt (i-1): Pregunta 3 515 pts Las calles de la ciudad de Bacata forman una cuadricula perfecta, como se muestra en la ilustracion 1 Cate 1 Fa TNT OT L OO000 Ooooc Cio CL Cate 2 CL) Cale 4 OOGoOc OOO0C Cate 6 llustracién 1. Area de la ciudad de Bacata entre las calles 1 2 6 y las. carreras 1a 6. Las vias horizontales son llamadas calles y estan enumeradas iniciando en 1. Las vias verticales son llamadas carreras y estan numeradas de igual forma El alcalde de Bacata ha decidido modificar la forma en que las tarifas de los taxis son calculadas, considerando la geometria de la ciudad. Las nuevas tarifas se calculardn de acuerdo a la calle y carrera de la interseccién donde se toma el taxi, asi como a la calle y carrera donde finaliza el viaje. Especificamente, el costo de un viaje se calcula como = calle sesing Costo = $100 % ({eatlesricen lortgen ~ CA t [car rera, donde |x| representa el valor absoluto de x. El alcalde le ha pedido personalmente a usted que construya la aplicacién que calculara las nuevas tarifas y reemplazara a los taximetros actuales. La aplicacién debe solicitar la informacién de los puntos de inicio y finalizacién del viaje, e informar al usuario cuanto deberd pagar al llegar a su destino. A continuacién se propone una expresién para calcular el costo de un viaje 100 * ((cll_destino - cll_origen) + (car_destino - car_origen)) La expresién propuesta es: Incorrecta porque se omite el cdlculo de los valores absolutos. La expresién es incorrecta debido a que omite la evaluacién de los valores absolutos de las diferencias. Esto puede ocasionar incluso que ‘se obtenga un costo de viaje negativo, lo cual no tiene interpretacién alguna. Debido a que la ecuacién original incluye el valor absoluto de cada diferencia, el orden de los puntos de origen y destino no tiene efecto alguno sobre el resultado. En la ecuacién presentada en ol enunciado, el signo $ indica que el resultado esté en unidades monetarias; sin embargo, esto no debe ser tenido en cuenta en el programa. Incorrecta porque se invierte el orden de los puntos origen y destino. Correcta. Dado que la calle y carrera de destino son siempre mayores que la calle y carrera de origen, no es necesario el uso de valor absoluto, Incorrecta porque el valor de 100 no es precedido por el simbolo S. Pregunta 4 5/5 pts David quiere desarrollar un programa de edicién de cédigo java que le permita hacer su cédigo mas legible y calcule algunos datos interesantes. Dado que el procesamiento de informacién textual no es su fuerte, David le ha pedido su ayuda para codificar algunas de las tareas basicas del editor. Una de las funcionalidades con que David desea que cuente su editor es la de decidir si un nombre de variable es valido o no. Recuerde que un nombre de variable valido puede contener tinicamente letras, digitos, guiones bajos (_) y signos de délar ($). Ademds, el primer simbolo de! nombre no puede ser un digito La expresién que permite verificar si un simbolo ¢ es una letra, un digito, un guién bajo o un signo de délar es: BB (co 72? | I] c == 78" OW BRC & "vy Ile 22) IIe vile = 2a? BRC <= 72) IT (98 70? BB 7° Un cardcter corresponde a una letra si su cédigo se encuentra entre el cédigo de ‘A’ y el cédigo de z "0 entre el c6digo de ‘a’ y el cédigo de De igual forma, un cardcter corresponde a un digito si su cédigo se ‘encuentra entre el cédigo de ‘0’ y el cédigo de ‘9. Por tanto, la opcién correcta es «c 7A? BRC <= 72’) || (C >= 2a? BRC <= 727) || (Cc 9 v= 70? BR c <= 79") |] c a8 Pregunta 5 5/5 pts Se desea implementar el sistema de visién de un robot clasificador de piezas. El robot ve a través de una camara que transforma la imagen de cada pieza en una matriz de § filas y 5 columnas. Cada celda de la matriz contiene un 1 0 un 0, de acuerdo a si el color en dicho pixel es negro o blanco, respectivamente. Una pieza puede ser rotada 90, 180 0 270 grados. Ademas, puede volcarse. Como ejemplo de lo anterior, las siguientes imagenes corresponden a un mismo tipo de pieza: ee et ae at a Fe Su tarea es implementar un programa que reciba las matrices de dos imagenes e indique si las imagenes corresponden a piezas del mismo tipo. Antes de procesar una imagen, debe verificarse que ésta contenga Gnicamente los valores 0 y 1. Se desea un método que retorne verdadero si la imagen es correcta o falso si contiene colores no aceptados (valores diferentes a 0 6 1). El método que hace correctamente esta verificacién es: static boolean verificar_colores(oyte[]{] ine){ for (int i= 0; 1 <5; des) for (int j= 05 4 <5; S++) af (ingli}(5]!=1 8& ing[S]LJ]!=@) return falses return trues } Debe verificarse para cada elemento de la matriz si es 10 0. En caso contrario, sabremos que la condicién verificada no se cumple. Solamente es posible afirmar que la condicién se cumple cuando se ha recorrido en su totalidad la matriz. Las opciones if (img{IUF && imal] verificar toda la matriz. [| imgfi}==9) return true; y if (imgfi return true; terminan el método prematuramente sin En if img[ifj!=1 || img[if}!=0) return false;, la condicién siempre se satisface ya que la posicién no puede contener simulténeamente un 1 y Un 0, Esto hace que el método siempre retomne falso, independientemente del contenido de la matriz. La opcién correcta es if img[ili]i=1 && img[ilf]!=0) return false;, ya que solamente afirma que la condicién verificada no es satisfecha cuando ‘se encuentra una posicién que no contiene un 1 y tampoco contiene un 0. static boolean veri 88 inel @) return trues } static boolean verificar_colores(byte{][] img){ ee For (int j= 05 4. < 55 444) # (img A} (5) !=1 || imgli)[4]!=0) retunn fais ; 5 Pregunta 6 5/5 pts Se desea implementar el sistema de visién de un robot clasificador de piezas. El robot ve a través de una cémara que transforma la imagen de cada pieza en una matriz de 5 filas y 5 columnas. Cada celda de la matriz contiene un 1 0 un 0, de acuerdo a si el color en dicho pixel es negro o blanco, respectivamente. er Fa FE De Una pieza puede ser rotada 90, 180 0 270 grados. Ademas, puede volcarse. Como ejemplo de lo anterior, las siguientes imagenes corresponden a un mismo tipo de pieza: Su tarea es implementar un programa que reciba las matrices de dos imagenes e indique si las imagenes corresponden a piezas del mismo tipo. Como solucién definitiva al problema enunciado, se propuso el siguiente método’ static boolean conparar_imagenes(byte[]{] imgl, byte[]{] img2)< for (int 1 = @; <2} S44) { for (int j = 8} 5 < 4) j++) ¢ Af (son_iguales(imgi, img2)) return true; ing? = rotar_imagen(ing2); ing? = reflejar(ing2); return false; * La funcién rotar_imagen retoma una copia de la imagen de entrada rotada 90 grados en sentido contrario a las manecillas del reloj. + La funcién reflejar retorna una copia de la imagen de entrada invirtiendo el orden de sus columnas + La funcién son_iguales retorna un valor booleano indicando si las dos matrices son idénticas 0 no. Sobre el método comparar_imagenes es posible afirmar que: No resuelve el problema ya que solamente se rota una de las imagenes, no las dos. No resuelve el problema ya que solamente se refleja una de las. imagenes, no las dos. Resuelve el problema de manera correcta, EI método toma como referencia la imagen img1 y modifica la imagen img2 intentando hacerlas idénticas. La rotacién de img2 ocurre 4 veces, probando todas las rotaciones posibles, Esto hace que sea indiferente si se rota en el sentido de las manecillas del reloj o en sentido contrario. Adicionalmente, la imagen es reflejada y rotada 4 veces nuevamente, por lo que todas las distintas versiones de una misma pieza son verificadas. En conclusién, el método es correcto. No resuelve el problema ya que rotar_imagen deberia rotar la imagen en el sentido de las manecillas del reloj, y no en sentido contrario, Pregunta 7 5/5 pts Se dice que Leonardo de Pisa, mas conocido como Fibonacci, descubrié la sucesién que lleva su nombre estudiando cémo crecia una poblacién de conejos. El crecimiento de la poblacién seguia las siguientes reglas: + La poblacién inicia con una pareja de conejos jévenes. + Una pareja de conejos jévenes madura al cumplir un mes. + Una pareja de conejos concibe una nueva pareja de conejos jévenes cada mes, iniciando un mes después de su maduracién. Asi, en los meses 1 y 2 se tendria tnicamente una pareja. Para el mes 3, habria ya una nueva pareja, para un total de 2. En el mes 4, la pareja ya madura tendria una nueva pareja, completando 3 parejas. En el mes 5, la primera pareja y su primera pareja cria engendrarian dos nuevas parejas, siendo la poblacién total 5 parejas. El numero de parejas que conforman la poblacién en el mes n puede calcularse mediante la ecuaci6n de recurrencia: u -ejas(n) ( 16n Parejas\) ~ Vnarejas(n — 1) + parejas(n—2), n v EI nimero de parejas que forman la poblacién después de 12 meses es: 89 233 144 parejas(12) = parejas(11) + parejas(10) parejas(11) = parejas(10) + parejas(9) parejas(10) = parejas(9) + parejas(8) parejas(9) = parejas(8) + parejas(7) parejas(8) yarejas(7) + parejas(6) parejas(7) = parejas(6) + parejas(5) parejas(6) = parejas(5) + parejas(4) parejas(5) = parejas(4) + parejas(3) parejas(4) = parejas(3) + parejas(2) parejas(3) = parejas(2) + parejas(1) parejas(2) parejas(1) entonces parejas(3) = 1+1 parejas(4) =2+1=3 parejas(5) =3+2=5 parejas(6) =5+3=8 parejas(7) =8+5=13 parejas(8) = 13 +8 = 21 parejas(9) = 21+ 13 = 34 parejas(10) = 34+ 21 = 55 parejas(11) = 55 + 34 = 89 parejas(12) = 89 +55 = 144 12 Pregunta 8 5/5 pts David quiere desarrollar un programa de edicién de cédigo java que le permita hacer su cédigo més legible y calcule algunos datos interesantes. Dado que el procesamiento de informacién textual no es su fuerte, David le ha pedido su ayuda para codificar algunas de las tareas basicas del editor. David cree que si representa el texto como un arreglo de valores char en lugar de como un String, su programa sera mas eficiente. La instruccién que le permite convertir el cédigo representado como String en un arreglo de chars es: char[] cod_ar cod; char[] cod_arr = cod.toarray(); char[] cod_arr = cod.tochararray(); No es posible hacer una conversion directa de String a char], por lo que las instrucciones charl] cod_arr= cod; y chal] cod_arr= (char{) cod; generaran errores de compilacién. El método de la clase String que permite convertir una cadena a arreglo de chars es toCharArray. char[] cod_arr = (char ]) cod; Pregunta 9 515 pts Se desea implementar el sistema de visién de un robot clasificador de piezas. El robot ve a través de una camara que transforma la imagen de cada pieza en una matriz de 5 filas y 5 columnas. Cada celda de la matriz contiene un 1 0 un 0, de acuerdo a si el color en dicho pixel es negro o blanco, respectivamente Una pieza puede ser rotada 90, 180 0 270 grados. Ademas, puede volcarse. Como ejemplo de lo anterior, las siguientes imagenes corresponden a un mismo tipo de pieza: ee A a Ee Su tarea es implementar un programa que reciba las matrices de dos imagenes e indique si las imagenes corresponden a piezas del mismo tipo. El tipo de dato mas apropiado para representar una imagen en el lenguaje java es byte La matriz que representa una imagen esté compuesta Unicamente de 41s 0s, los cuales son valores enteros. Ademas, cada dato hace uso solamente de un bit, por lo que deberia usarse un tipo de dato lo mas equerio posible. E! tipo de dato entero mas pequefio es byte, Dado que es una matfiz, el tipo byte debe ir acompafiado de dos parejas de corchetes (byte(I0) doublef] doublef]] int Pregunta 10 0/5 pts Se desea implementar el sistema de visién de un robot clasificador de piezas. El robot ve a través de una camara que transforma la imagen

You might also like