This repository contains a Java project that performs operations on matrices of rational numbers. The project includes classes for defining rational numbers, handling matrix operations, and displaying results.
- Rational Number Representation: Defines rational numbers with methods for basic arithmetic operations.
- Matrix Operations: Implements operations such as addition, subtraction, and multiplication for matrices of rational numbers.
- User Interaction: Handles user input to create matrices and perform operations.
- Result Display: Outputs the results of the matrix operations.
The main class initializes the program, handles user input, and invokes methods for matrix operations.
public class Principal {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Read matrix dimensions
System.out.print("Enter the number of rows: ");
int rows = scanner.nextInt();
System.out.print("Enter the number of columns: ");
int cols = scanner.nextInt();
// Create and read matrices
TMatrizRacional matrix1 = new TMatrizRacional(rows, cols);
TMatrizRacional matrix2 = new TMatrizRacional(rows, cols);
System.out.println("Enter the elements of the first matrix:");
matrix1.readMatrix(scanner);
System.out.println("Enter the elements of the second matrix:");
matrix2.readMatrix(scanner);
// Perform operations
TOpMatricesRacionales operations = new TOpMatricesRacionales();
TMatrizRacional sum = operations.add(matrix1, matrix2);
TMatrizRacional difference = operations.subtract(matrix1, matrix2);
TMatrizRacional product = operations.multiply(matrix1, matrix2);
// Display results
System.out.println("Sum of matrices:");
sum.printMatrix();
System.out.println("Difference of matrices:");
difference.printMatrix();
System.out.println("Product of matrices:");
product.printMatrix();
}
}The TRacional class represents a rational number and includes methods for arithmetic operations and simplification.
public class TRacional {
private int numerator;
private int denominator;
public TRacional(int numerator, int denominator) {
this.numerator = numerator;
this.denominator = denominator;
simplify();
}
private void simplify() {
int gcd = gcd(numerator, denominator);
numerator /= gcd;
denominator /= gcd;
}
private int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
public TRacional add(TRacional other) {
int num = this.numerator * other.denominator + other.numerator * this.denominator;
int den = this.denominator * other.denominator;
return new TRacional(num, den);
}
public TRacional subtract(TRacional other) {
int num = this.numerator * other.denominator - other.numerator * this.denominator;
int den = this.denominator * other.denominator;
return new TRacional(num, den);
}
public TRacional multiply(TRacional other) {
int num = this.numerator * other.numerator;
int den = this.denominator * other.denominator;
return new TRacional(num, den);
}
public TRacional divide(TRacional other) {
int num = this.numerator * other.denominator;
int den = this.denominator * other.numerator;
return new TRacional(num, den);
}
@Override
public String toString() {
return numerator + "/" + denominator;
}
}The TMatrizRacional class represents a matrix of rational numbers and includes methods for reading and printing matrices.
public class TMatrizRacional {
private TRacional[][] matrix;
private int rows;
private int cols;
public TMatrizRacional(int rows, int cols) {
this.rows = rows;
this.cols = cols;
matrix = new TRacional[rows][cols];
}
public void readMatrix(Scanner scanner) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
System.out.print("Enter numerator for element [" + i + "][" + j + "]: ");
int num = scanner.nextInt();
System.out.print("Enter denominator for element [" + i + "][" + j + "]: ");
int den = scanner.nextInt();
matrix[i][j] = new TRacional(num, den);
}
}
}
public void printMatrix() {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
public TRacional getElement(int row, int col) {
return matrix[row][col];
}
public void setElement(int row, int col, TRacional value) {
matrix[row][col] = value;
}
public int getRows() {
return rows;
}
public int getCols() {
return cols;
}
}The TOpMatricesRacionales class contains methods for performing operations on matrices of rational numbers.
public class TOpMatricesRacionales {
public TMatrizRacional add(TMatrizRacional m1, TMatrizRacional m2) {
int rows = m1.getRows();
int cols = m1.getCols();
TMatrizRacional result = new TMatrizRacional(rows, cols);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
TRacional sum = m1.getElement(i, j).add(m2.getElement(i, j));
result.setElement(i, j, sum);
}
}
return result;
}
public TMatrizRacional subtract(TMatrizRacional m1, TMatrizRacional m2) {
int rows = m1.getRows();
int cols = m1.getCols();
TMatrizRacional result = new TMatrizRacional(rows, cols);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
TRacional difference = m1.getElement(i, j).subtract(m2.getElement(i, j));
result.setElement(i, j, difference);
}
}
return result;
}
public TMatrizRacional multiply(TMatrizRacional m1, TMatrizRacional m2) {
int rows = m1.getRows();
int cols = m1.getCols();
TMatrizRacional result = new TMatrizRacional(rows, cols);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
TRacional product = new TRacional(0, 1);
for (int k = 0; k < cols; k++) {
TRacional temp = m1.getElement(i, k).multiply(m2.getElement(k, j));
product = product.add(temp);
}
result.setElement(i, j, product);
}
}
return result;
}
}- Compile the Java files using a Java compiler (e.g.,
javac). - Run the main class (
Principal) to start the program. - Follow the prompts to enter the dimensions and elements of the matrices.
- The program will perform the specified operations and display the results.
Principal: The main class that handles user input and program execution.main(String[] args): The entry point of the program.
TRacional: A class representing a rational number with methods for arithmetic operations and simplification.TRacional(int numerator, int denominator): Constructor that initializes the rational number.add(TRacional other),subtract(TRacional other),multiply(TRacional other),divide(TRacional other): Methods for arithmetic operations.toString(): Method that returns the string representation of the rational number.
TMatrizRacional: A class representing a matrix of rational numbers with methods for reading and printing matrices.TMatrizRacional(int rows, int cols): Constructor that initializes the matrix dimensions.readMatrix(Scanner scanner): Method that reads matrix data from the user.printMatrix(): Method that prints the matrix.getElement(int row, int col),setElement(int row, int col, TRacional value): Methods to get and set matrix elements.
TOpMatricesRacionales: A class containing methods for performing matrix operations.add(TMatrizRacional m1, TMatrizRacional m2): Method that adds two matrices.subtract(TMatrizRacional m1, TMatrizRacional m2): Method that subtracts two matrices.multiply(TMatrizRacional m1, TMatrizRacional m2): Method that multiplies two matrices.