ICSE Class 12 Computer Science Question 2 of 3

Solved 2018 Practical Paper ISC Computer Science — Question 2

Back to all questions
2
Question

Question 2

Write a program to declare a matrix a[][] of order (m × n) where 'm' is the number of rows and 'n' is the number of columns such that the values of both 'm' and 'n' must be greater than 2 and less than 10. Allow the user to input integers into this matrix. Perform the following tasks on the matrix:

  1. Display the original matrix.
  2. Sort each row of the matrix in ascending order using any standard sorting technique.
  3. Display the changed matrix after sorting each row.

Test your program for the following data and some random data:

Example 1

INPUT:
M = 4
N = 3

ENTER ELEMENTS OF MATRIX:

11235167904318\begin{matrix} 11 & -2 & 3 \\ 5 & 16 & 7 \\ 9 & 0 & 4 \\ 3 & 1 & 8 \end{matrix}

OUTPUT:
ORIGINAL MATRIX

11235167904318\begin{matrix} 11 & -2 & 3 \\ 5 & 16 & 7 \\ 9 & 0 & 4 \\ 3 & 1 & 8 \end{matrix}

MATRIX AFTER SORTING ROWS

23115716049138\begin{matrix} -2 & 3 & 11 \\ 5 & 7 & 16 \\ 0 & 4 & 9 \\ 1 & 3 & 8 \end{matrix}

Example 2

INPUT:
M = 3
N = 3

ENTER ELEMENTS OF MATRIX

22519736129136\begin{matrix} 22 & 5 & 19 \\ 7 & 36 & 12 \\ 9 & 13 & 6 \end{matrix}

OUTPUT:
ORIGINAL MATRIX

22519736129136\begin{matrix} 22 & 5 & 19 \\ 7 & 36 & 12 \\ 9 & 13 & 6 \end{matrix}

MATRIX AFTER SORTING ROWS

51922712366913\begin{matrix} 5 & 19 & 22 \\ 7 & 12 & 36 \\ 6 & 9 & 13 \end{matrix}

Example 3

INPUT:
M = 11
N = 5

OUTPUT:
MATRIX SIZE OUT OF RANGE.

Solution
import java.util.Scanner;

public class ArraySort
{
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        System.out.print("ENTER THE VALUE OF M: ");
        int m = in.nextInt();
        System.out.print("ENTER THE VALUE OF N: ");
        int n = in.nextInt();

        if (m <= 2 
        || m >= 10 
        || n <= 2 
        || n >= 10) {
            System.out.println("MATRIX SIZE OUT OF RANGE.");
            return;
        }

        int a[][] = new int[m][n];
        System.out.println("ENTER ELEMENTS OF MATRIX:");
        for (int i = 0; i < m; i++) {
            System.out.println("ENTER ELEMENTS OF ROW " + (i+1) + ":");
            for (int j = 0; j < n; j++) {
                a[i][j] = in.nextInt();
            }
        }

        System.out.println("ORIGINAL MATRIX");
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(a[i][j] + " ");
            }
            System.out.println();
        }

        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n - 1; j++) {
                for (int k = 0; k < n - j - 1; k++) {
                    if (a[i][k] > a[i][k + 1]) {
                        int t = a[i][k];
                        a[i][k] = a[i][k+1];
                        a[i][k+1] = t;
                    }
                } 
            }
        }
        
        System.out.println("MATRIX AFTER SORTING ROWS");
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(a[i][j] + " ");
            }
            System.out.println();
        }
    }
}
Output
BlueJ output of ArraySort.java
BlueJ output of ArraySort.java
BlueJ output of ArraySort.java
Answer

import
java.util.Scanner
;
public
class
ArraySort
{
public
static
void
main
(
String
args
[]) {
Scanner
in
=
new
Scanner
(
System
.
in);
System
.
out
.
print(
"
ENTER THE VALUE OF M:
"
);
int
m
=
in
.
nextInt();
System
.
out
.
print(
"
ENTER THE VALUE OF N:
"
);
int
n
=
in
.
nextInt();
if
(m
<=
2
||
m
>=
10
||
n
<=
2
||
n
>=
10
) {
System
.
out
.
println(
"
MATRIX SIZE OUT OF RANGE.
"
);
return
;
}
int
a[][]
=
new
int
[m][n];
System
.
out
.
println(
"
ENTER ELEMENTS OF MATRIX:
"
);
for
(
int
i
=
0
; i
<
m; i
++
) {
System
.
out
.
println(
"
ENTER ELEMENTS OF ROW
"
+
(i
+
1
)
+
"
:
"
);
for
(
int
j
=
0
; j
<
n; j
++
) {
a[i][j]
=
in
.
nextInt();
}
}
System
.
out
.
println(
"
ORIGINAL MATRIX
"
);
for
(
int
i
=
0
; i
<
m; i
++
) {
for
(
int
j
=
0
; j
<
n; j
++
) {
System
.
out
.
print(a[i][j]
+
"
"
);
}
System
.
out
.
println();
}
for
(
int
i
=
0
; i
<
m; i
++
) {
for
(
int
j
=
0
; j
<
n
-
1
; j
++
) {
for
(
int
k
=
0
; k
<
n
-
j
-
1
; k
++
) {
if
(a[i][k]
>
a[i][k
+
1
]) {
int
t
=
a[i][k];
a[i][k]
=
a[i][k
+
1
];
a[i][k
+
1
]
=
t;
}
}
}
}
System
.
out
.
println(
"
MATRIX AFTER SORTING ROWS
"
);
for
(
int
i
=
0
; i
<
m; i
++
) {
for
(
int
j
=
0
; j
<
n; j
++
) {
System
.
out
.
print(a[i][j]
+
"
"
);
}
System
.
out
.
println();
}
}
}
Output