diff options
Diffstat (limited to 'java/text/MatrixOperations.typ')
-rw-r--r-- | java/text/MatrixOperations.typ | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/java/text/MatrixOperations.typ b/java/text/MatrixOperations.typ new file mode 100644 index 0000000..bcb6ce8 --- /dev/null +++ b/java/text/MatrixOperations.typ @@ -0,0 +1,47 @@ +#import "/template.typ": * +#show: A => apply(A) +#set raw(lang: "java-new") +#set par(leading: 0.6em) + +#assignment(4)[ + Write a menu-driven program to perform addition, subtraction and multiplication operations on matrix objects. +] + +#scos("MatrixOperations") + +=== Discussion + +#skind[Classes, interfaces and methods used from Java standard library] + +- `java.util.Scanner` class: + - `float nextFloat()`: Scan a `float` value from the the input stream. +- `java.util.function.BinaryOperator<T>` Interface: + - Objects of this interface represent operations upon two operands of the same type, producing a result of the same type as the operands. + - This is a subinterface of `BiFunction<T, T, T>` whose functional method is `T apply(T, T)`. +- `java.lang.IllegalArgumentException` class represents the exception to be thrown when an illegal argument is provided to a function. +- `java.util.ArrayList<T>` class provides a resizeable array from the Java Collections framework. + - `T get(int)`: Returns the value at the specified position in the list. + - `void add(T)`: Appends the specified element to the end of the list. +- `java.util.InputMismatchException` is thrown by the methods of `Scanner` class when encountering invalid input. + +#skind[Classes and methods implemented in the program] + +- The `Matrix` class provides sufficient interface to operate on a matrix of `float` values. + - Constructor `Matrix(int, int)`: Creates the underlying two dimensional array with the given matrix dimensions. + - `int rows(), int cols()`: Returns the number of rows and columns of the matrix, respectively. + - `float get(int, int)`: Returns the value at the specified position. + - `void set(int, int, float)`: Sets the value at the specified position. + - `void input(Scanner)`: Take the elements of the matrix from the user using the provided `Scanner` instance. + - `void display()`: Displays the matrix elements in a tabular format. +- The `MatrixOperations` class implements the matrix operations as static methods. + - `static Matrix add(Matrix, Matrix) throws IllegalArgumentException`, + - `static Matrix subtract(Matrix, Matrix) throws IllegalArgumentException`, + - `static Matrix multiply(Matrix, Matrix) throws IllegalArgumentException`: + Perform the respective operations on the provided two matrices, taking care of the compatibility to the operations. +- The `MatrixOperationsCLI` orchestrates the main program with: + - `static void menu()`: Displays the menu. + - `static Matrix takeMatrix(Scanner)`: Takes requisite user input to create a new matrix object. + - `static void displayMatrix(Scanner, ArrayList<Matrix>)`: Asks the user to choose the matrix to display among the available matrices and displays it. + - `static void operate(Scanner, ArrayList<Matrix>, String, BinaryOperator<Matrix>)`: Performs the specified operation on the matrices chosen by the user. + - `public static void main(String[])`: Implements a menu-driven program for the matrix operations. +#signature() |