Вы находитесь на странице: 1из 7

Politécnico Grancolombiano – Escuela TIC

Programación de Computadores – Taller Matrices y Recursión

Para cada uno de los siguientes problemas realizar un programa Java que lo solucione. Se
debe garantizar que las precondiciones se cumplan en cada programa. DEL PUNTO 4
EN ADELANTE DEBE USARSE RECURSIÓN.
1. Dada una matriz de caracteres, calcular la matriz transpuesta.
2. Dada una matriz de enteros, ordenarla en forma de Zigzag.
Por ejemplo:
Matriz de Entrada:
4 5 3 2
(3 4 7 9 )
8 23 58 23
5 4 9 −1
Matriz de Salida:
−1 2 3 3
( 5 4 4 4)
5 7 8 9
58 23 23 9
3. Dada una matriz cuadrada de orden n, construir una matriz cuadrada de orden 2n
con los reflejos de la matriz original como se muestra en los siguientes ejemplos:

4. Los vecinos de una cuadra de algún barrio de la ciudad se pusieron de acuerdo para
decorar la cuadra de manera especial para la época decembrina. Dentro de la
decoración se plantó pintar cada casa con uno de k colores. Sin embargo, con el fin
de que la cuadra luciera lo más colorida posible, acordaron que cada casa se pintaría

Cristian Camilo Flórez Novoa Noviembre - 2019


de un color diferente al color que sus vecinas inmediatas. ¿De cuántas formas pueden
pintarse las casas de la cuadra si hay n casas en ella?

5. Las Torres de Hanoi es un juego en el que se tienen k discos, todos de diferentes


diámetros, apilados en una de tres torres en orden descendiente según el diámetro. La
figura muestra el caso en el que k = 3.

El objetivo del juego consiste en trasladar los k discos a la torre del otro extremo,
teniendo en cuenta que en cada paso sólo puede moverse un disco y que nunca pueden
haber discos fuera de las torres (excepto aquel que se está desplazando), ni puede
haber un disco encima de otro de menor diámetro.
Dada una función definida como:
jugarHanoi(discos: int, origen: int, auxiliar: int, destino: int): void
Siendo discos la cantidad de discos con la que se jugará, origen la torre origen (1),
auxiliar la torre auxiliar (2) y destino la torre destino (3), el programa deberá mostrar
en pantalla los pasos necesarios para ganar a las torres de Hanoi.
Por ejemplo, si se ingresa un número de discos igual a 3, deberá mostrarse en la
consola lo siguiente:
¿Con cuántos discos jugará?
3
Mover de la torre 1 a la torre 3
Mover de la torre 1 a la torre 2
Mover de la torre 3 a la torre 2
Mover de la torre 1 a la torre 3
Mover de la torre 2 a la torre 1
Mover de la torre 2 a la torre 3
Mover de la torre 1 a la torre 3

6. Dado un arreglo A de n enteros, decir cuántas veces aparece el entero k en A.


7. En cierto colegio se empieza a hablar sobre las actividades de fin de año y para ello,
las directivas han decidido formar un comité de 7 estudiantes para llevar a cabo toda
la logística requerida. ¿Cuántos comités diferentes pueden formarse si el colegio
cuenta con 237 estudiantes?
8. Usted ha sido contratado para colaborar en el desarrollo de un nuevo editor gráfico.
Específicamente, debe implementar la funcionalidad de colorear regiones en una
imagen. En esta fase, se concentrará en la versión “blanco y negro” de dicha
funcionalidad. Para esto debe tener en cuenta que cada imagen se representa como
una matriz de enteros (cada casilla representando el estado de un pixel), donde el
valor 0 indica ausencia de color, mientras que el valor 1 indica presencia de color. Su

Cristian Camilo Flórez Novoa Noviembre - 2019


función debe recibir una matriz, que representa una imagen, y un par de enteros que
representan la ubicación de un pixel seleccionado por un usuario (posiblemente
usando el ratón del computador) y debe modificar la matriz de tal forma que todos
los pixeles de la región que encierra el pixel seleccionado queden coloreados. A
continuación, se muestra una imagen y la matriz que la representa:

Tomando como entrada la matriz anterior, si se selecciona el pixel ubicado en (3, 4)


(fila 3, columna 4, teniendo en cuenta un indexamiento que comienza en 1), el
resultado debería ser el siguiente:

Cristian Camilo Flórez Novoa Noviembre - 2019


Si se selecciona el pixel ubicado en la posición (2, 13) el resultado debería ser:

Cristian Camilo Flórez Novoa Noviembre - 2019


Si, en cambio, el pixel seleccionado es de la posición (8, 3), el resultado debería ser:

Cristian Camilo Flórez Novoa Noviembre - 2019


Finalmente, note que si se selecciona alguno de los pixeles en las posiciones (6, 14),
(6, 15), (7, 12), (7, 13), (7, 14), (7, 15), (8, 11), (8, 12), entre otros, el resultado debería
ser:

Cristian Camilo Flórez Novoa Noviembre - 2019


Realice la función pedida.

Cristian Camilo Flórez Novoa Noviembre - 2019

Вам также может понравиться