Evaluacion Final - Escenario 8 - Primer Bloque-Teorico - Practico - Programacion de Computadores

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 33

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.

com/courses/40125/quizzes/81225

Fecha de entrega 26 de oct en 23:55 Puntos 100 Preguntas 20


Disponible 23 de oct en 0:00 - 26 de oct en 23:55 4 días Límite de tiempo 90 minutos
Intentos permitidos 2

1 de 33 24/10/2021, 11:44 p. m.
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

Volver a realizar el examen

Intento Hora Puntaje


MÁS RECIENTE Intento 1 87 minutos 100 de 100

Las respuestas correctas ya no están disponibles.

Puntaje para este intento: 100 de 100


Entregado el 24 de oct en 23:43
Este intento tuvo una duración de 87 minutos.

Pregunta 1 5 / 5 pts

Se dice que Leonardo de Pisa, más conocido como Fibonacci,


descubrió la sucesión que lleva su nombre estudiando cómo crecía
una población de conejos. El crecimiento de la población seguía 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.

Así, en los meses 1 y 2 se tendría únicamente una pareja. Para el


mes 3, habría ya una nueva pareja, para un total de 2. En el mes 4,
la pareja ya madura tendría una nueva pareja, completando 3
parejas. En el mes 5, la primera pareja y su primera pareja cría
engendrarían dos nuevas parejas, siendo la población total 5
parejas.

El número de parejas que conforman la población en el mes n puede


calcularse mediante la ecuación de recurrencia:

El número de parejas que forman la población después de 12 meses


es:

2 de 33 24/10/2021, 11:44 p. m.
Pregunta 2 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 básicas del editor.

Una de las funcionalidades con que David desea que cuente su


editor es la de decidir si un nombre de variable es válido o no.
Recuerde que un nombre de variable válido puede contener
únicamente letras, dígitos, guiones bajos (_) y signos de dólar ($).
Además, el primer símbolo del nombre no puede ser un dígito.

La expresión que permite verificar si el primer símbolo del nombre es


un dígito es:
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 o un 0, de acuerdo a si el color en
dicho píxel es negro o blanco, respectivamente.

Una pieza puede ser rotada 90, 180 o 270 grados. Además, puede
volcarse. Como ejemplo de lo anterior, las siguientes imágenes
corresponden a un mismo tipo de pieza:

Su tarea es implementar un programa que reciba las matrices de dos


imágenes e indique si las imágenes corresponden a piezas del
mismo tipo.

Antes de procesar una imagen, debe verificarse que ésta contenga


únicamente 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 ó 1).

El método que hace correctamente esta verificación es:


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.

Así, en los meses 1 y 2 se tendría únicamente una pareja. Para el


mes 3, habría ya una nueva pareja, para un total de 2. En el mes 4,
la pareja ya madura tendría una nueva pareja, completando 3
parejas. En el mes 5, la primera pareja y su primera pareja cría
engendrarían dos nuevas parejas, siendo la población total 5
parejas.

El número de parejas que conforman la población en el mes n puede


calcularse mediante la ecuación de recurrencia:

El número de parejas que forman la población después de 20 meses


es:
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

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 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 o un 0, de acuerdo a si el color en
dicho píxel es negro o blanco, respectivamente.

Una pieza puede ser rotada 90, 180 o 270 grados. Además, puede
volcarse. Como ejemplo de lo anterior, las siguientes imágenes
corresponden a un mismo tipo de pieza:

8 de 33 24/10/2021, 11:44 p. m.
Su tarea es implementar un programa que reciba las matrices de dos
imágenes e indique si las imágenes corresponden a piezas del
mismo tipo.

Como parte del programa que resuelve el problema enunciado, se


debe implementar un método que tome como entradas dos matrices
correspondientes a dos imágenes y retorne un valor booleano
indicando si las imágenes son idénticas (sin rotaciones ni reflejo).

Para esto, se tiene el siguiente código:

static boolean son_iguales(byte[][] img1, byte[][] img2){


for (int i = 0; i < img1.length; i++)
if (<condicion>) return false;
return true;<condicion>
}

Para que el método funcione correctamente, <condicion> debe


reemplazarse por:

!Arrays.equals(img1[i], img2[i])
Pregunta 6 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 básicas del editor.

David ha notado que cuando se requiere imprimir el código sería de


gran utilidad (por la cantidad de papel gastado) eliminar la
indentación: el margen izquierdo de las líneas. La instrucción que le
permite tomar una línea de código y eliminar su margen izquierdo es:

linea = linea.trim();
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

Pregunta 7 5 / 5 pts

Las calles de la ciudad de Bacatá forman una cuadrícula perfecta,


como se muestra en la ilustración 1.

Ilustración 1. Área de la ciudad de Bacatá entre las calles 1 a 6 y las


carreras 1 a 6.

Las vías horizontales son llamadas calles y están enumeradas


iniciando en 1. Las vías verticales son llamadas carreras y están
numeradas de igual forma.

El alcalde de Bacatá ha decidido modificar la forma en que las tarifas


de los taxis son calculadas, considerando la geometría de la ciudad.
Las nuevas tarifas se calcularán de acuerdo a la calle y carrera de la
intersección donde se toma el taxi, así como a la calle y carrera
donde finaliza el viaje. Específicamente, el costo de un viaje se
calcula como

donde |x| representa el valor absoluto de x.

El alcalde le ha pedido personalmente a usted que construya la


aplicación que calculará las nuevas tarifas y reemplazará a los

11 de 33 24/10/2021, 11:44 p. m.
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

taxímetros actuales. La aplicación debe solicitar la información de los


puntos de inicio y finalización del viaje, e informar al usuario cuánto
deberá pagar al llegar a su destino.

El alcalde le ha pedido que su programa, además de resolver el


problema ya planteado, permita mostrar en pantalla el mapa de la
ciudad. Dadas las limitaciones de los dispositivos donde se correrá la
aplicación, el mapa debe ser formado por símbolos imprimibles.
Cada manzana de la ciudad será dibujada de la siguiente forma:

Se requiere un método que muestre en pantalla una calle de seis


manzanas:

El arreglo manzana contiene la representación gráfica de una


manzana. De los siguientes, el método que dibuja correctamente una
calle de seis manzanas es:

static void pintar_calle(){


String[] manzana = {"+---+", "| |", "+---+"};
String[] linea = {"", "", ""};
for (int i = 0; i < linea.length; i++) {
for (int j = 0; j < 6; j++) {
linea[i] = linea[i] + " " + manzan
a[i];
}
System.out.println(linea[i]);
}
}

12 de 33 24/10/2021, 11:44 p. m.
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

13 de 33 24/10/2021, 11:44 p. m.
for (int i = 1; i < codigo.length(); i++)
if (<condicion>)
nuevo_codigo = nuevo_codigo + codigo.charAt(i);
return nuevo_codigo;
}

Para que el método sea correcto, <condicion> debe ser reemplazado


por:
Se dice que Leonardo de Pisa, más conocido como Fibonacci,
descubrió la sucesión que lleva su nombre estudiando cómo crecía
una población de conejos. El crecimiento de la población seguía 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.

Así, en los meses 1 y 2 se tendría únicamente una pareja. Para el


mes 3, habría ya una nueva pareja, para un total de 2. En el mes 4,
la pareja ya madura tendría una nueva pareja, completando 3
parejas. En el mes 5, la primera pareja y su primera pareja cría
engendrarían dos nuevas parejas, siendo la población total 5
parejas.

El número de parejas que conforman la población en el mes n puede


calcularse mediante la ecuación de recurrencia:

De los siguientes, un método que no evalúa correctamente la


ecuación de recurrencia presentada es:
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

static long parejas(int n){


if (n==1 || n==2) return 1;
if (n>2) return parejas(n-1) + parejas(n-2);
}

Pregunta 10 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 o un 0, de acuerdo a si el color en
dicho píxel es negro o blanco, respectivamente.

Una pieza puede ser rotada 90, 180 o 270 grados. Además, puede
volcarse. Como ejemplo de lo anterior, las siguientes imágenes
corresponden a un mismo tipo de pieza:

Su tarea es implementar un programa que reciba las matrices de dos


imágenes e indique si las imágenes corresponden a piezas del
mismo tipo.

Como parte del programa que resuelve el problema enunciado, se

17 de 33 24/10/2021, 11:44 p. m.
debe implementar un método que tome como entrada una matriz con
una imagen y retorne la imagen reflejada de manera que se invierte
el orden las columnas.

El método que cumple este propósito es:


String en un arreglo de chars es:
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

Su tarea es implementar un programa que reciba las matrices de dos


imágenes e indique si las imágenes corresponden a piezas del
mismo tipo.

Como parte del programa que resuelve el problema enunciado, se


debe implementar un método que tome como entrada una matriz con
una imagen y retorne una segunda matriz con la imagen rotada 90
grados en sentido contrario a las manecillas del reloj.

El método que cumple este propósito es:

static byte[][] rotar_imagen(byte[][] img) {

byte[][] rotada = new byte[5][5];

for (int i = 0; i < 5; i++)

for (int j = 0; j < 5; j++)

rotada[4-j][i] = img[i][j];

return rotada;

22 de 33 24/10/2021, 11:44 p. m.
Una pieza puede ser rotada 90, 180 o 270 grados. Además, puede
volcarse. Como ejemplo de lo anterior, las siguientes imágenes
corresponden a un mismo tipo de pieza:

Su tarea es implementar un programa que reciba las matrices de dos


imágenes e indique si las imágenes corresponden a piezas del
mismo tipo.

El tipo de dato más apropiado para representar una imagen en el


lenguaje java es:

byte[][]
Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

dicho píxel es negro o blanco, respectivamente.

Una pieza puede ser rotada 90, 180 o 270 grados. Además, puede
volcarse. Como ejemplo de lo anterior, las siguientes imágenes
corresponden a un mismo tipo de pieza:

Su tarea es implementar un programa que reciba las matrices de dos


imágenes e indique si las imágenes corresponden a piezas del
mismo tipo.

Como parte del programa que resuelve el problema enunciado, se


debe implementar un método que tome como entrada una matriz con
una imagen y retorne una segunda matriz con la imagen rotada 90
grados en el sentido de las manecillas del reloj.

El método que cumple este propósito es:

static byte[][] rotar_imagen(byte[][] img) {

byte[][] rotada = new byte[5][5];

for (int i = 0; i < 5; i++)

for (int j = 0; j < 5; j++)

rotada[i][j] = img[4-j][i];

return rotada;

25 de 33 24/10/2021, 11:44 p. m.
}
return false;
}

La función rotar_imagen retorna 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 o no.

Sobre el método comparar_imágenes es posible afirmar que:


Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRA... https://poli.instructure.com/courses/40125/quizzes/81225

como se muestra en la ilustración 1.

Ilustración 1. Área de la ciudad de Bacatá entre las calles 1 a 6 y las


carreras 1 a 6.

Las vías horizontales son llamadas calles y están enumeradas


iniciando en 1. Las vías verticales son llamadas carreras y están
numeradas de igual forma.

El alcalde de Bacatá ha decidido modificar la forma en que las tarifas


de los taxis son calculadas, considerando la geometría de la ciudad.
Las nuevas tarifas se calcularán de acuerdo a la calle y carrera de la
intersección donde se toma el taxi, así como a la calle y carrera
donde finaliza el viaje. Específicamente, el costo de un viaje se
calcula como

donde |x| representa el valor absoluto de x.

El alcalde le ha pedido personalmente a usted que construya la


aplicación que calculará las nuevas tarifas y reemplazará a los
taxímetros actuales. La aplicación debe solicitar la información de los
puntos de inicio y finalización del viaje, e informar al usuario cuánto
deberá 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))

29 de 33 24/10/2021, 11:44 p. m.
La expresión propuesta es:
determinar si una línea de código consiste únicamente de un
comentario es:
Para que el método sea correcto, <condicion> debe ser reemplazado
por:

También podría gustarte