Problem
Bu soru, bir boyutlu ve iki boyutlu dizileri manipüle eder. Kısım (a)'da, tek boyutlu bir dizinin elemanlarını tersine çevirmek için bir yöntem yazacaksınız. (b) ve (c) kısımlarında, iki boyutlu bir dizinin elemanlarını tersine çevirmek için yöntemler yazacaksınız.
(a) Statik bir reverseArray yöntemi içeren aşağıdaki tamamlanmamış ArrayUtil sınıfını göz önünde bulundurun.
ArrayUtil yöntemini reverseArray yazın. Örneğin, arr {2,7,5,1,0} dizisiyse, reverseArray'e yapılan çağrı arr'yi {0,1,5,7,2} olarak değiştirir. Aşağıdaki reverseArray yöntemini tamamlayın.
/** Dizi dizisinin ters öğeleri.
* Önkoşul: dizi.uzunluk > 0.
* Son koşul: dizi öğesinin öğeleri tersine çevrildi.
* @param işlenecek diziyi arr
*/
public statik void reverseArray style="color:#666666">(int[] arr)
b) İki boyutlu bir tam sayı matrisini temsil eden aşağıdaki tamamlanmamış Matrix sınıfını ele alalım. Matrisin en az bir tamsayı içerdiğini varsayalım.
Matrix yöntemini reverseAllRows yazın. Bu yöntem, her satırın öğelerini tersine çevirir. Örneğin, mat1 bir Matrix nesnesine başvuruyorsa mat1.reverseAllRows() çağrısı matrisi aşağıda gösterildiği gibi değiştirir.
reverseAllRows yazarken, (a) bölümünde reverseArray yöntemini çağırmalısınız. Kısım (a)'da yazdıklarınızdan bağımsız olarak reverseArray'in doğru çalıştığını varsayalım. Aşağıdaki reverseAllRows yöntemini tamamlayın.
/** Matın her satırındaki öğeleri tersine çevirir.
* Son koşul: Her satırdaki öğeler tersine çevrilmiştir.
*/
genel void reverseAllRows()
c) Matrix yöntemini reverseMatrix yazın. Bu yöntem, bir matrisin öğelerini, matrisin son öğeleri, satır ana sırayla okunduğunda, sağdan sola, yukarı doğru alt köşeden okunduğunda orijinal öğelerle aynı olacak şekilde tersine çevirir. Yine mat1'in bir Matrix nesnesine referans olmasına izin verin. mat1.reverseMatrix() çağrısı matrisi aşağıda gösterildiği gibi değiştirecektir.
reverseMatrix yazarken, (b) kısmındaki reverseAllRows yöntemini çağırmalısınız. Kısım (b)'de yazdıklarınızdan bağımsız olarak reverseAllRows'un doğru çalıştığını varsayalım. Aşağıdaki reverseMatrix yöntemini tamamlayın.
/** Matın öğelerini tersine çevirir.
* Önkoşul:
* - Satır ana sırayla okunduğunda matın son öğeleri,
*, okunduğunda mat'ın orijinal öğeleriyle aynıdır
* alt köşeden, sağdan sola, yukarı doğru.
* - mat[0][0], orijinal olarak son öğeyi içerir.
* - mat[mat.uzunluk-1][mat[0].uzunluk-1] eski olanı içerir
* başlangıçta ilk öğe.
*/
genel void reverseMatrix()