Evaluacion final - Escenario 8 Programacion DE Computadores PDF

Title Evaluacion final - Escenario 8 Programacion DE Computadores
Course Programación de Computadores
Institution Politécnico Grancolombiano
Pages 41
File Size 2.2 MB
File Type PDF
Total Downloads 315
Total Views 608

Summary

Evaluacion final - Escenario 8Fecha de entrega 31 de mayo en 23:55 Puntos 100 Preguntas 20 Disponible 8 de mayo en 0:00 - 31 de mayo en 23:55 24 díasLímite de tiempo 90 minutos Intentos permitidos 2InstruccionesIlustración 1. Área de la ciudad de Bacatá entre las calles 1 a 6 y las carreras 1 a 6.La...


Description

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

Fecha de entrega 31 de mayo en 23:55 Límite de tiempo 90 minutos

Puntos 100

Preguntas 20

Disponible 8 de mayo en 0:00 - 31 de mayo en 23:55 24 días

Intentos permitidos 2

https://poli.instructure.com/courses/21680/quizzes/72032

1/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

https://poli.instructure.com/courses/21680/quizzes/72032

2/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

Volver a realizar el examen

MÁS RECIENTE

Intento

Hora

Puntaje

Intento 1

55 minutos

85 de 100

 Las respuestas correctas ya no están disponibles. Puntaje para este intento: 85 de 100 Entregado el 9 de mayo en 14:36 Este intento tuvo una duración de 55 minutos. Pregunta 1

5 / 5 pts

Las calles de la ciudad de Bacatá forman una cuadrícula perfecta, como se muestra en la ilustración 1.

https://poli.instructure.com/courses/21680/quizzes/72032

3/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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 https://poli.instructure.com/courses/21680/quizzes/72032

4/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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)) La expresión propuesta es:

Incorrecta porque se omite el cálculo 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 el enunciado, el signo $ indica que el resultado está en unidades monetarias; sin embargo, esto no debe ser tenido en cuenta en el programa.

https://poli.instructure.com/courses/21680/quizzes/72032

5/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

Pregunta 2

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 solución definitiva al problema enunciado, se propuso el siguiente método: static boolean comparar_imagenes(byte[][] img1, byte[][] img2){ for (int i = 0; i < 2; i++) { for (int j = 0; j < 4; j++) { if (son_iguales(img1, img2)) return true; img2 = rotar_imagen(img2); } img2 = reflejar(img2); } 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. https://poli.instructure.com/courses/21680/quizzes/72032

6/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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:

Resuelve el problema de manera correcta.

El 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.

Pregunta 3

https://poli.instructure.com/courses/21680/quizzes/72032

5 / 5 pts

7/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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. El tipo de dato más apropiado para representar una imagen en el lenguaje java es:

byte[][]

https://poli.instructure.com/courses/21680/quizzes/72032

8/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

La matriz que representa una imagen está compuesta únicamente de 1s y 0s, los cuales son valores enteros. Además, cada dato hace uso solamente de un bit, por lo que debería usarse un tipo de dato lo más pequeño posible. El tipo de dato entero más pequeño es byte. Dado que es una matriz, el tipo byte debe ir acompañado de dos parejas de corchetes (byte[][]).

Incorrecto

Pregunta 4

0 / 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 calcular el número de líneas de código en un archivo. El editor debe contar únicamente las líneas no vacías. El siguiente método calcula el número de líneas de código en el texto representado por la cadena de entrada. static int contar_lineas(String codigo){ codigo = codigo + "\n"; int contador=0; for (int i = 0; i < codigo.length(); i++) if () contador = contador + 1; return contador; }

Para que el método sea correcto, debe ser reemplazado por:

https://poli.instructure.com/courses/21680/quizzes/72032

9/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

codigo.charAt(i)=='\n'

Pregunta 5

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:

https://poli.instructure.com/courses/21680/quizzes/72032

10/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

De los siguientes, un método que no evalúa correctamente la ecuación de recurrencia presentada es:

static long parejas(int n){ if (n==1 || n==2) return 1; if (n>2) return parejas(n-1) + parejas(n-2); }

La implementación static long parejas(int n){ if (n==1 || n==2) return 1; if (n>2) return parejas(n-1) + parejas(n-2); }

Generará un error de compilación ya que el compilador no sabrá que retornar cuando no se satisfaga ninguna de las dos condiciones (note que el compilador no tiene por qué saber que n nunca será menor a 1). Las implementaciones restantes son equivalentes y correctas.

https://poli.instructure.com/courses/21680/quizzes/72032

11/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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();

https://poli.instructure.com/courses/21680/quizzes/72032

12/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

A pesar de que removeLeftMargin es un nombre razonable para el método, el método de la clase String tiene nombre trim. Además, al ser las cadenas inmutables, éste método no modifica la cadena que le invoca sino que retorna una segunda cadena con el contenido modificado. Por tanto, el valor de retorno del método debe ser asignado nuevamente a la cadena que invoca. De lo anterior se concluye que la respuesta correcta es linea = linea.trim();

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.

https://poli.instructure.com/courses/21680/quizzes/72032

13/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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.

https://poli.instructure.com/courses/21680/quizzes/72032

14/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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. 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:

https://poli.instructure.com/courses/21680/quizzes/72032

15/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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] + " " + manzana[i]; } System.out.println(linea[i]); } }

El método static void pintar_calle(){ String[] manzana = {"+---+", "| |", "+---+"}; for (int j = 0; j < 6; j++) for (int i = 0; i < 3; i++) System.out.println(manzana[i]); }

dibuja una manzana sobre la otra. El método https://poli.instructure.com/courses/21680/quizzes/72032

16/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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

falla debido a los saltos de línea al final de cada cadena de la manzana.

El método 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] + " " + manzana[i]; System.out.println(linea[i]); } }

no compila debido a la ausencia de llaves del ciclo for i. El método 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] + " " + manzana[i]; } System.out.println(linea[i]); } }

dibuja la cuadra correctamente.

https://poli.instructure.com/courses/21680/quizzes/72032

17/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

Pregunta 8

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:

144

https://poli.instructure.com/courses/21680/quizzes/72032

18/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

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) = parejas(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) = 1 parejas(1) = 1 entonces parejas(3) = 1 + 1 = 2 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

https://poli.instructure.com/courses/21680/quizzes/72032

19/41

5/9/2021

Evaluacion final - Escenario 8: PRIMER BLOQUE-TEORICO - PRACTICO/PROGRAMACION DE COMPUTADORES-[GRUPO B04]

parejas(12) = 89 + 55 = 144

Pregunta 9

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:

length() > 0 && nombre.charAt(0)>=’0’ && nombre.charAt(0)= ’A’ && c = ’Z’ && c = ’0’ && c...


Similar Free PDFs