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.