Module: AP Computer Science Section II 2015


Problem

2/4

معکوس

Problem

این سوال آرایه های یک بعدی و دو بعدی را دستکاری می کند. در بخش (الف) روشی برای معکوس کردن عناصر یک آرایه یک بعدی خواهید نوشت. در قسمت های (b) و (c) روش هایی برای معکوس کردن عناصر یک آرایه دو بعدی خواهید نوشت.

(الف) کلاس ArrayUtil ناقص زیر را در نظر بگیرید که حاوی یک متد reverseArray استاتیک است.
متد ArrayUtil reverseArray را بنویسید. به عنوان مثال، اگر arr آرایه {2،7،5،1،0} باشد، فراخوانی reverseArray arr را به {0،1،5،7،2} تغییر می‌دهد. روش reverseArray زیر را کامل کنید.

ایجاد شد
/** عناصر معکوس آرایه.
* پیش شرط: arr.length > 0.
* Postcondition: عناصر arr معکوس شده اند.
* @param آرایه را برای دستکاری آرایه کنید
*/
عمومی ایستا باطل آرایه معکوس(int[] arr)

ب) کلاس ماتریس ناقص زیر را در نظر بگیرید که نشان دهنده یک ماتریس دو بعدی از اعداد صحیح است. فرض کنید که ماتریس حاوی حداقل یک عدد صحیح است.
روش Matrix reverseAllRows را بنویسید. این روش عناصر هر ردیف را معکوس می کند. برای مثال، اگر mat1 به یک شی ماتریس اشاره داشته باشد، فراخوانی mat1.reverseAllRows() ماتریس را مطابق شکل زیر تغییر می دهد.

در نوشتن reverseAllRows، باید متد reverseArray را در part(a) فراخوانی کنید. فرض کنید که معکوس آرایه بدون توجه به آنچه در قسمت (الف) نوشته اید به درستی کار می کند. روش reverseAllRows را کامل کنید.

ایجاد شد
/** عناصر موجود در هر ردیف حصیر را معکوس می کند.
* Postcondition: عناصر موجود در هر ردیف معکوس شده اند.
*/
عمومی باطل reverseAllRows()

 ج) روش Matrix reverseMatrix را بنویسید. این روش عناصر یک ماتریس را معکوس می کند، به طوری که عناصر نهایی ماتریس، زمانی که به ترتیب ردیف اصلی خوانده می شوند، مانند عناصر اصلی در هنگام خواندن از گوشه پایین، راست به چپ، به سمت بالا هستند. دوباره اجازه دهید mat1 یک مرجع به یک شی ماتریس باشد. فراخوانی mat1.reverseMatrix() ماتریس را مطابق شکل زیر تغییر می دهد.


در نوشتن reverseMatrix باید متد reverseAllRows را در قسمت (b) فراخوانی کنید. فرض کنید که reverseAllRows بدون توجه به آنچه در قسمت (ب) نوشته اید، به درستی کار می کند. روش reverseMatrix زیر را کامل کنید.
  ایجاد شد
/** عناصر mat را معکوس می کند.
* شرط بعد:
* - عناصر نهایی حصیر، هنگامی که به ترتیب ردیف اصلی خوانده می شوند،
* هنگام خواندن همان عناصر اصلی حصیر است
* از گوشه پایین، راست به چپ، بالا رفتن.
* - mat[0][0] حاوی چیزی است که در ابتدا آخرین عنصر بود.
* - mat[mat.length-1][mat[0].length-1] حاوی آنچه بود
* در اصل اولین عنصر بود.
*/
عمومی باطل reverseMatrix()