PROGRAM
import java.io.*; class AdditionExp extends Exception { AdditionExp(String msg) { super(msg); } } class MultiplicationExp extends Exception { MultiplicationExp(String msg) { super(msg); } } class MatrixExp { public static void main(String arg[]) { int i,j,k,r1,c1,r2,c2,op=0; int a[][]=new int[3][3]; int b[][]=new int[3][3]; int c[][]=new int[3][3]; char co='b'; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); do { System.out.println("MENU\n\n1.Multiplication\n2.Addition\n"); System.out.println("Enter ur choice"); try { op=Integer.parseInt(br.readLine()); } catch(Exception e) { } if(op==1) { try { System.out.println("Enter order of first matrix"); r1=Integer.parseInt(br.readLine()); c1=Integer.parseInt(br.readLine()); System.out.println("Enter order of second matrix"); r2=Integer.parseInt(br.readLine()); c2=Integer.parseInt(br.readLine()); if(r1!=r2) { throw new MultiplicationExp("Multiplication is not possible"); } else { System.out.println("Enter a matrix order"+r1+"*"+c1); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) a[i][j]=Integer.parseInt(br.readLine()); } System.out.println("Enter a matrix of order"+r2+"*"+c2); for(i=0;i<r2;i++) { for(j=0;j<c2;j++) b[i][j]=Integer.parseInt(br.readLine()); } for(i=0;i<r1;i++) { for(j=0;j<c2;j++) { c[i][j]=0; for(k=0;k<c1;k++) c[i][j]+=a[i][k]*b[k][j]; } } System.out.println("Resultant matrix is"); for(i=0;i<r1;i++) { for(j=0;j<c2;j++) System.out.print(c[i][j]+"\t"); System.out.print("\n"); } } } catch(Exception e) { System.out.println("Caught multiplication exception"); System.out.println(e.getMessage()); } } if(op==2) { try { System.out.println("Enter order of first matrix"); r1=Integer.parseInt(br.readLine()); c1=Integer.parseInt(br.readLine()); System.out.println("Enter order of second matrix"); r2=Integer.parseInt(br.readLine()); c2=Integer.parseInt(br.readLine()); if(r1!=r2||c1!=c2) { throw new AdditionExp("Addition is not possible"); } else { System.out.println("Enter a matrix of order"+r1+"*"+c1); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) a[i][j]=Integer.parseInt(br.readLine()); } System.out.println("Enter a matrix of order"+r2+"*"+c2); for(i=0;i<r2;i++) { for(j=0;j<c2;j++) b[i][j]=Integer.parseInt(br.readLine()); } for(i=0;i<r1;i++) { for(j=0;j<c2;j++) c[i][j]=a[i][j]+b[i][j]; } System.out.println("Resultant Matrix is:"); for(i=0;i<r1;i++) { for(j=0;j<c2;j++) System.out.print(c[i][j]+"\t"); System.out.print("\n"); } } } catch(Exception e) { System.out.println("Caught addition exception"); System.out.println(e.getMessage()); } } System.out.println("Do U want to continue(y/n)"); try { co=(br.readLine()).charAt(0); } catch(Exception e) { } }while(co!='n'); } } |
OUTPUT
MENU
1.Multiplication
2.Addition
Enter ur choice
1
Enter order of first matrix
2
2
Enter order of second matrix
2
3
Enter a matrix order2*2
4
3
2
1
Enter a matrix of order2*3
4
3
5
3
2
1
Resultant matrix is
25 18 23
11 8 11
Do U want to continue(y/n)
y
MENU
1.Multiplication
2.Addition
Enter ur choice
2
Enter order of first matrix
2
3
Enter order of second matrix
2
1
Caught addition exception
Addition is not possible
Do U want to continue(y/n)
n