PROGRAMACION DE COMPUTADORES
.
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:
a. 233
b. 12
c. 89
d. 144 Respuesta Correcta
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
Pregunta
2
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 tenga el tamaño adecuado (5 filas y 5 columnas). La expresión que permita hacer dicha verificación es:
a. img.rows
== 5 && img.cols == 5
b. length
== 5 && img[0].length == 5
c. img.length == 5
d. img.length
== 25
IInccorrrreecctto
Pregunta 3 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
(<condicion>)
contador
= contador + 1;
return
contador;
}
Para
que el método sea correcto, <condicion> debe ser reemplazado por:
a. codigo.charAt(i)=='\n'
b. codigo.charAt(i)!='\n'
&& codigo.charAt(i-1)=='\n'
c. codigo.charAt(i)=='\n'
&& i>0 && codigo.charAt(i-1)!='\n'
d. codigo.charAt(i)=='\n'
&& codigo.charAt(i-1)!='\n'
IInccorrrreecctto
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.
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:
a. removeLeftMargin();
b. linea =
linea.trim();
c. trim();
d. linea =
linea.removeLeftMargin();
Pregunta
5
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:
a. byte[][]
b. int[][]
c. double[][]
d. double[]
Pregunta
6
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 20 meses es:
a. 10946
b. 4181
c. 2584
d. 6765
parejas(20)
= parejas(19) + parejas(18)
parejas(19)
= parejas(18) + parejas(17)
parejas(18)
= parejas(17) + parejas(16)
parejas(17)
= parejas(16) + 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)
= 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
parejas(13)
= 144 + 89 = 233
parejas(14)
= 233 + 144 = 377
parejas(15)
= 377 + 233 = 610
parejas(16)
= 610 + 377 = 987
parejas(17)
= 987 + 610 = 1597
parejas(18)
= 1597 + 987 = 2584
parejas(19)
= 2584 + 1597 = 4181
parejas(20)
= 4181 + 2584 = 6765
Pregunta 7
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 cree que si representa el texto como un arreglo de valores char en lugar de como un String, su programa será más eficiente. La instrucción que le permite convertir el código representado como String en un arreglo de chars es:
a. char[]
cod_arr = cod.toCharArray();
b. char[] cod_arr = cod;
c. char[]
cod_arr = cod.toArray();
d. char[]
cod_arr = (char[]) cod;
Pregunta
8
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 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:
a. 100 * ((cll_destino - cll_origen) + (car_destino - car_origen)) Respuesta Correcta
b. Incorrecta porque el valor de 100 no es precedido por el símbolo $.
c. Incorrecta
porque se invierte el orden de los puntos origen y destino.
d. Incorrecta. 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.
Pregunta
9
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 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:
a. static
byte[][] reflejar(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[i][4-j];
return
rotada;
}
b. static
byte[][] reflejar(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;
}
c. static
byte[][] reflejar(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[j][i];
return
rotada;
}
d. static
byte[][] reflejar(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;
}
Pregunta
10
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 ipo.
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:
a. static
boolean verificar_colores(byte[][] img){
for
(int i = 0; i < 5; i++)
for
(int j = 0; j < 5; j++)
if
(img[i][j]==1 ||
img[i][j]==0)
return true;
return
false;
}
b. static
boolean verificar_colores(byte[][] img){
for
(int i = 0; i < 5; i++)
for
(int j = 0; j < 5; j++)
if
(img[i][j]==1 &&
img[i][j]==0)
return true;
return
false;
}
c. static
boolean verificar_colores(byte[][] img){
for
(int i = 0; i < 5; i++)
for
(int j = 0; j < 5; j++)
if
(img[i][j]!=1 &&
img[i][j]!=0)
return false;
return
true;
}
d. static
boolean verificar_colores(byte[][] img){
for
(int i = 0; i < 5; i++)
for
(int j = 0; j < 5; j++)
if
(img[i][j]!=1 ||
img[i][j]!=0)
return false;
return
true;
}
Pregunta
11
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 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:
a. 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[i][4-j];
return
rotada;
}
b. 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;
}
c. 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[j][i];
return
rotada;
}
d. 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;
}
Pregunta
12 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:
De los siguientes, un método que no evalúa correctamente la ecuación de recurrencia presentada es:
a. static
long parejas(int n){
if
(n==1 || n==2) return 1;
if
(n>2) return parejas(n-1) + parejas(n-2);
}
b. static
long parejas(int n){
if
(n>2) return parejas(n-1) + parejas(n-2);
return
1;
}
c. static
long parejas(int n){
if
(n==1 || n==2) return 1;
return
parejas(n-1) + parejas(n-2);
}
d. static
long parejas(int n){
return
(n==1 || n==2)?1:parejas(n-1) + parejas(n-2);
}
Pregunta
13
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 las líneas que ontienen únicamente comentarios. La expresión que le permite determinar si una línea de código consiste únicamente de un comentario
es:
a. hasPrefix(“//”);
b. beginsWith(“//”);
c. startsWith(“//”);
d.linea.prefix(“//”);
IInccorrrreecctto
Pregunta 14 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 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.
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:
a. Resuelve
el problema de manera correcta.
b. No resuelve el problema ya que rotar_imagen debería rotar la imagen en el sentido de las manecillas del reloj, y no en sentido contrario.
c. No resuelve el problema ya que solamente se refleja una de las imágenes, no las dos.
d. No resuelve el problema ya que solamente se rota una de las imágenes, no las dos. Respuesta InCorrecta
Pregunta
15
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:
a. nombre.length()
> 0 && nombre.charAt(0)>=9 && nombre.charAt(0)<=0
b. length() > 0 && nombre.charAt(0)>=0 && nombre.charAt(0)<=9
c. length()
> 0 && nombre.charAt(0)>=’0’ && nombre.charAt(0)<=’9’
d. length() > 0 && nombre.charAt(0)>=’9’ && nombre.charAt(0)<=’0’
Pregunta
16
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 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:
a. 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]);
}
b. 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]);
}
}
c. 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]);
}
}
d. 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]);
}
}
IInccorrrreecctto
Pregunta 17 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 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 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:
a. Arrays.not_equals(img1[i],
img2[i])
b. img1 !=
img2
c. !Arrays.equals(img1[i],
img2[i])
d. img1[i]
!= img2[i]
Pregunta
18
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 un símbolo c es una letra, un dígito, un guión bajo o un signo de dólar es:
a. ((c >= ’A’ || c <= ’Z’) && (c >= ’a’ || c <= ’z’)) || (c >= ’0’ || c <= ’9’) || c == ’_’ || c == ’$’
b. (c >= ’A’ && c <= ’a’) || (c >= ’Z’ && c <= ’z’) || (c >= ’0’ && c <= ’9’) || c == ’_’ || c == ’$’
c. ((c >= ’A’ || c <= ’a’) && (c >= ’Z’ || c <= ’z’)) || (c >= ’0’ || c <= ’9’) || c == ’_’ || c == ’$’
d. (c >= ’A’ && c <= ’Z’) || (c >= ’a’ && c <= ’z’) || (c >= ’0’ && c <= ’9’) || c == ’_’ || c == ’$’ Respuesta Correcta
Pregunta
19
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 eliminar líneas vacías del código. El siguiente método recibe un código y retorna el código sin líneas vacías.
static
String eliminar_lineas_vacias(String codigo){
String
nuevo_codigo = "";
codigo
= "\n" + codigo;
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:
a. charAt(i)!='\n'
|| codigo.charAt(i-1)!='\n'
b. charAt(i-1)=='\n'
c. charAt(i)=='\n'
&& codigo.charAt(i-1)=='\n'
d. charAt(i)!='\n'
Pregunta
20
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 decada 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 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:
a. astatic
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[i][4-j];
return
rotada;
}
b. 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;
}
c. 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;
}
d. 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[j][i];
return
rotada;
}
Publicar un comentario
0 Comentarios