Module: Ciencias de la Computación AP Sección II 2015


Problem

2/4

contrarrestar

Problem

Esta pregunta manipula matrices unidimensionales y bidimensionales. En la parte (a), escribirá un método para invertir elementos de un arreglo unidimensional. En las partes (b) y (c) escribirá métodos para invertir elementos de una matriz bidimensional.

(a) Considere la siguiente clase ArrayUtil incompleta, que contiene un método reverseArray estático.
Escriba el método ArrayUtil reverseArray. Por ejemplo, si arr es la matriz {2,7,5,1,0}, la llamada a reverseArray cambia arr para que sea {0,1,5,7,2}. Complete el método reverseArray a continuación.

/** Invertir elementos de matriz arr.
* Condición previa: arr.longitud > 0.
* Poscondición: Los elementos de arr se han invertido.
* @param arr la matriz a manipular
*/
público estático void reverseArray(int[] arr)

b) Considere la siguiente clase Matrix incompleta, que representa una matriz bidimensional de enteros. Suponga que la matriz contiene al menos un número entero.
Escriba el método Matrix reverseAllRows. Este método invierte los elementos de cada fila. Por ejemplo, si mat1 se refiere a un objeto Matrix, entonces la llamada mat1.reverseAllRows() cambiará la matriz como se muestra a continuación.

Al escribir reverseAllRows, debe llamar al método reverseArray en la parte (a). Suponga que reverseArray funciona correctamente independientemente de lo que escribió en la parte (a). Complete el método reverseAllRows a continuación.

/** Invierte los elementos en cada fila del tapete.
* Condición posterior: los elementos de cada fila se han invertido.
*/
público void reverseAllRows()

 c) Escriba el método de Matrix reverseMatrix. Este método invierte los elementos de una matriz de manera que los elementos finales de la matriz, cuando se leen en orden de fila principal, son los mismos que los elementos originales cuando se leen desde la esquina inferior, de derecha a izquierda, yendo hacia arriba. Nuevamente, permita que mat1 sea una referencia a un objeto Matrix. La llamada mat1.reverseMatrix() cambiará la matriz como se muestra a continuación.


Al escribir reverseMatrix, debe llamar al método reverseAllRows en la parte (b). Suponga que reverseAllRows funciona correctamente independientemente de lo que escribió en la parte (b). Complete el método reverseMatrix a continuación.
 
/** Invierte los elementos de mat.
* Poscondición:
* - Los elementos finales de mat, cuando se leen en orden de fila principal,
* son los mismos que los elementos originales de mat cuando se leen
* desde la esquina inferior, de derecha a izquierda, subiendo.
* - mat[0][0] contiene lo que originalmente era el último elemento.
* - mat[mat.length-1][mat[0].length-1] contiene lo que era
* originalmente el primer elemento.
*/
público vacío matriz inversa()