Autor Mensagem
Assuntos gerais (Off-topic) » PROJETO JAVA I » Ir para mensagem
seguinte galera…
tenho o seguinte projeto!
Defina uma classe para representar uma matriz de ordem m x n, que armazena valores reais. A sua classe deve necessariamente se chamar Matriz, de modo que seja possível criar objetos do tipo Matriz. Declare os atributos necessários de sua classe, disponibilize um construtor para criar uma matriz de uma determinada ordem (passada como parâmetro para o construtor) disponibilize os seguintes métodos públicos (exatamente com os nomes definidos abaixo):
lerMatriz(): lê os elementos da matriz.
exibirMatriz(): exibe os elementos da matriz de forma organizada.
somar(): soma duas matrizes (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna uma terceira matriz que é o resultado.
somarEAtribuir():soma duas matrizes (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e o resultado é armazenado no objeto utilizado na chamada do método.
subtrair(): subtrai duas matrizes (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna uma terceira matriz que é o resultado.
subtrairEAtribuir(): subtrai duas matrizes (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e o resultado é armazenado no objeto utilizado na chamada do método.
multiplicar(): multiplica duas matrizes (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna uma terceira matriz que é o resultado.
copiar(): copia duas matrizes. A matriz origem é o objeto utilizado na chamada do método e a matriz destino é o objeto passado como parâmetro.
obterTransposta(): retorna uma matriz que é a transposta.
Caso seja necessário, você pode definir outros métodos em sua classe.
Após construir a classe Matriz, defina uma outra classe para implementar um programa que realiza as seguintes operações com matrizes:
1 - soma de 2 matrizes;
2 - subtração de 2 matrizes;
3 - multiplicação de 2 matrizes;
4 - determina a transposta de 1 matriz.
5 - sair
Inicialmente, o programa deve solicitar ao usuário que informe qual operação será realizada. Em seguida, o programa deve perguntar ao usuário quais serão as dimensões (linhas e colunas) da(s) matriz(es). O programa deve então solicitar que o usuário informe os elementos da(s) matriz(es). Em seguida, o programa deve fazer os cálculos e imprimir a matriz resultante. Por último, o programa deve imprimir o menu de opções novamente para que o usuário possa realizar outras operações com matrizes. O menu deve disponibilizar uma opção para sair do programa.
Atenção para as particularidades:
a) A operação de soma exige que as duas matrizes tenham as mesmas dimensões. Caso contrário, a operação não pode ser realizada. Caso o usuário deseje fazer uma soma, o seu programa deve solicitar as dimensões das matrizes apenas uma vez.
b) A operação de multiplicação pode ser realizada com matrizes de diferentes dimensões. No entanto, é necessário que o número de colunas da primeira matriz seja igual ao número de linhas da segunda matriz. Caso o usuário deseje fazer uma multiplicação, o seu programa deve solicitar as dimensões de cada uma das matrizes. Caso a operação não possa ser realizada, o seu programa deve informar isso ao usuário e imprimir novamente o menu de opções.
c) O número de linhas ou colunas de uma matriz não pode ser 0 (zero). Caso o usuário entre com um valor inválido para o número de linhas ou colunas da matriz, o seu programa deve adverti-lo e solicitar novamente o valor.
COMECEI ASSIM
import java.util.Scanner;
public class Matriz {
private double mat[][];
private int m;
private int n;
public Matriz (int l, int c){
m = l;
n = c;
mat = new double [m][n];
}
public void lerMatriz(){
Scanner input = new Scanner(System.in);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.println("Digite o elemento da linha [" + (i + 1) + "] da coluna [" + (j + 1) + "]: ");
mat[i][j] = input.nextInt();
System.out.println("");
}
}
}
public void exibirMatriz(){
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(mat[i][j] + " ");
}
System.out.println("\n");
}
}
somar(){ ??????????????????????????????????????
}
somaeEAtribuir(){ ?????????????????????????????????
}
subtrair(){ ?????????????????????
}
subtrairEAtribuir(){ ??????????????????????????
}
multiplicar(){ ??????????????????????????
}
copiar(){ ?????????????????????????????
}
obterTransposta(){ ???????????????????
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int m;
int n;
int x;
Scanner input = new Scanner(System.in);
System.out.println("Informe a operação que será realizada\n\n1 - soma de 2 matrizes\n2 - subtração de 2 matrizes\n3 - multiplicação de 2 matrizes\n4 - determina a tranposta de 1 matriz\n5 - sair\n\n");
x = input.nextInt();
if (x == 5){
System.exit(0);
}
else if (x == 4){
System.out.println("Digite o número de linhas da Matriz: ");
m = input.nextInt();
System.out.println("Digite o número de colunas da Matriz: ");
n = input.nextInt();
Matriz matriz1 = new Matriz( m, n);
matriz1.lerMatriz();
matriz1.exibirMatriz();
}
else if (x == 1 || x == 2){
System.out.println("Digite o número de linhas das Matrizes: ");
m = input.nextInt();
System.out.println("Digite o número de colunas das Matrizes: ");
n = input.nextInt();
System.out.println("Digite os elementos da 1ª matriz: ");
Matriz matriz1 = new Matriz( m, n);
matriz1.lerMatriz();
matriz1.exibirMatriz();
System.out.println("Digite os elementos da 2ª matriz: ");
Matriz matriz2 = new Matriz( m, n);
matriz2.lerMatriz();
matriz2.exibirMatriz();
}
else if (x == 3 ){
System.out.println("Digite o número de linhas da 1ª Matriz: ");
m = input.nextInt();
System.out.println("Digite o número de colunas da 1ª Matriz: ");
n = input.nextInt();
Matriz matriz1 = new Matriz( m, n);
matriz1.lerMatriz();
matriz1.exibirMatriz();
System.out.println("Digite o número de linhas da 2ª Matriz: ");
m = input.nextInt();
System.out.println("Digite o número de colunas da 2ª Matriz: ");
n = input.nextInt();
Matriz matriz2 = new Matriz( m, n);
matriz2.lerMatriz();
matriz2.exibirMatriz();
}
}
}
COMO PODEREI FAZER ESCREVER OS MÉTODOS QUE TENHO DÚVIDAS???
OBRIGADO PELAS SUGESTÕES