Design a class MatRev to reverse each element of a matrix. Example: Some of the members of the…
Computer Science201910 marksProgram
Design a class MatRev to reverse each element of a matrix.
Example:
Some of the members of the class are given below:
Class name : MatRev
Data members/instance variables:
arr[ ][ ] : to store integer elements
m : to store the number of rows
n : to store the number of columns
Member functions/methods:
MatRev(int mm, int nn) : parameterised constructor to initialise the data members m = mm and n = nn
void fillarray( ) : to enter elements in the array
int reverse(int x) : returns the reverse of the number x
void revMat( MatRev P) : reverses each element of the array of the parameterized object and stores it in the array of the current object
void show( ) : displays the array elements in matrix form
Define the class MatRev giving details of the constructor( ), void fillarray( ), int reverse(int), void revMat(MatRev) and void show( ). Define the main( ) function to create objects and call the functions accordingly to enable the task.
Answer
Answer
AI
import java.util.Scanner;
class MatRev
{
int arr[][];
int m, n;
MatRev(int mm, int nn)
{
m = mm;
n = nn;
arr = new int[m][n];
}
void fillarray()
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter " + (m * n) + " elements:");
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
arr[i][j] = sc.nextInt();
}
int reverse(int x)
{
int rev = 0;
while (x != 0)
{
rev = rev * 10 + x % 10;
x = x / 10;
}
return rev;
}
void revMat(MatRev P)
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
arr[i][j] = reverse(P.arr[i][j]);
}
void show()
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
System.out.print(arr[i][j] + "\t");
System.out.println();
}
}
public static void main(String args[])
{
MatRev A = new MatRev(3, 3);
A.fillarray();
MatRev B = new MatRev(3, 3);
B.revMat(A);
System.out.println("Original matrix:");
A.show();
System.out.println("Reversed matrix:");
B.show();
}
}
Explanation: reverse(x) reverses the digits of a single integer x using the standard while-loop technique. revMat(P) takes another MatRev object P as a parameter, and for every cell (i,j) stores in the current object's arr the reverse of P's corresponding element, leaving P itself unchanged. Tested (run for real) with the example matrix {{72,371,5},{12,6,426},{5,123,94}}: the program correctly produced the reversed matrix {{27,173,5},{21,6,624},{5,321,49}}, matching the example exactly.