Matriz

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

o chega de spammmmm … um topico é suficiente para galera ajudar…

Cara, você está louco, ou está fazendo de sacanagem, você postou pelo menos 7 vezes a mesma coisa.

BLZA… É QUE SOU AQUI!!

DESCULPE AE GALERA

ABRAÇOS…

DESCULPE É QUE SOU NOVO AQUI

ADERI HJ AO FORUM

DESCULPE AE!!!

VLW BRODER

É QUE AINDA NÃO SABIA O FUNCIONAMENTO DO FÓRUM!!!

Mande um tópico por vez e espere o pessoal responder. Assim você atrapalha quem realmente está precisando de ajuda.

Se você tem dificuldade com uma lista de exercícios recomendo o Java como programar que ele ensina você a resolve-los, ou comece a prestar mais atenção nas aulas de Java.

OBRIGADO PELAS RECOMENDAÇÕES BRÓDER!!

VLW MESMO

AGORA ESTOU ENTENDENDO O FUNCIONAMENTO DO FÓRUM

VLW MESMO… SE VC PUDER AJUDAR… VLW MESMO

ABRAÇOS…

URGENTE => Galera, o negocio é o seguinte: esse cara quer que façamos o trabalho para ele! Na parte da manha eu mesmo modelei parte do das duvidas dele e tenho certeza que a partir do ponto em que deixei ele poderá seguir sozinho!

Po, cara…vai estudar!!!

Acho que esta quase resolvido: :smiley:

*Para somar o numero de Linhas e colunas da primeira matriz tem que ser igual ao da segunda matriz!

*Para somar; crie uma nova matriz que receba assim: MatrizNova [i][j] = matriz1[i][j]+mtriz2[i][j];

*Para subtrair MatrizNova3(verifica l==c tb ) [i][j] = matriz1[i][j]-mtriz2[i][j];

*para multipplicar(verifica se N colunas da primeira eh == a N linhas da segunda matriz ); MatrizNova5 [i][j] = matriz1[i][j]*mtriz2[i][j]

*jah a transposta(se naum me engano eh quando coluna vira linha e linha vira coluna neh) vc manda imprimir m[j][i]

  • para copiar MatrizNova[i][j] = MatrizVelha[i][j]

Obs; naum esquece de colocar os dois for(para i e para j) um dentro do outro!

Obrigado is.matt.r!!

Será muito útil suas explicações. Vlw mesmo!!

Vini Fernandes não quero que façam trabalho algum pra mim!! É que passei na facul (Ciência da Computação) e gostei muito dessa linguagem de programação. Daí resolvi pegar um exercício da internet e desenvolvê-lo !!

Tenho muito interesse nesta linguagem!! jah estou até conseguindo implementar algumas coisas.

Se vc puder me ajudar, muito grato mesmo

Vlw mesmo

Abraços…

Eu tive que fazer algo semelhante p/ um trabalho de iniciação científica, incluia também a determinação da inversa de uma matrix(ñ confunda com transposta, nem simétrica). Quer uma dica? Pegue um bom livro de algebra linear, estude e implemente. E pare de ficar GRITANDO isso é considerado falta de educação tanto na vida real quanto na virtual.

Tudo bem que você gostou do fórum, mas não precisa ficar enviando um monte de posts com o mesmo assunto.

Tah certo. Obrigado ROGER75 pelas recomendações

Vlw bróóder, se puder dar su´gestões para minha dúvida, com certeza será bem vindo

Tudo de bom

Abraços…

Mec?ico,
mais uma dica: quando erra na sua mensagem dê edit nela! Assim fica menos poluído o seu tópico. :stuck_out_tongue:
E também me pareceu trabalho de escola… hehe quando li seu enunciado pareceu até o do meu professor…
Mas se empenhe em fazer sozinho os exercícios, mesmo que tenha pego na net igual no seu caso :). Isto que eu disse não é que você nao deva tirar dúvidas. As dúvidas que você deve tirar é por exemplo: “Como acesso a posição [0][1] do array?” Coisas desse tipo e não como faço meu metodo de copiar matrizes. Se voce se empenhar vai aprender bem mais sobre a matéria.

Mas é isso aí,
está no lugar certo para pedir ajuda, aqui tem muita gente que sabe. :wink:
E pode contar comigo também, no que eu souber vou te ajudar…

Boa sorte!

Vou trancar esse tópico por que está repetido. Vocês podem acompanhar o tópico aqui:
http://www.guj.com.br/posts/list/116640.java

Obrigado Tipertuba

Vlw mesmo pelas sugestões… se puder ajudar a esclarecer minhas dúvidas, será bem vindo

Vlw meu Br´´oóder

Abraços…