Projeto java 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 que isso trabalho da facul?

NÃO… SIMPLESMENTE UM APLICATIVO QUE QUERO DESENVOLVER PARA UTILIZAR EM CASA E APRIMORAR OS CONHECIMENTOS EM JAVA!

Amigo não adianta posta trabalhinho de escola porque ninguem aqui vai resolver para você venha para o forum com duvidas!
e não adianta postar mil vezes a mesma coisa…
AFFZ!!!

isso mesmo … eu ia até ajudar mas vc colocou varios topicos …
entao se vira

BLZA BRÓDER… OLHA SÓH, NÃO É TRABALHINHO DE ESCOLA NÃO! É QUE PASSEI NO VESTIBULAR DE CIÊNCIA DA COMPUTAÇÃO E JAH ESTOU ME PREPARANDO!!!

ME INTERESSA MUITO ESSA LINGUAGEM DE PROGRAMAÇÃO

VLW GALERA!!!

AJUDA AE JCMIRD… É PQ ESTOU EMPOLGADO QUE PASSEI NA FACUL E VI ESSE EXERCICIO NA INTERNET!
COMO GOSTO MUITO DA LINGUAGEM RESOLVI ADERIR HJ AO FORUM
AJUDA AE BRODER…
VLW E DESCULPE AE!!!

É PQ ADERI HJ AO FORUM E AINDA NÃO ENTENDO O FUNCIONAMENTO

VLW ABRAÇOSS BRODER

Cara eu vou te dar um conselho, pega umas apostilas na internet, o Livro do Deitel e começa a fazer exercícios simples.

Vc já ouvir falar da maldição do Hello World?

Se vc não o fizer não aprende a programar.

Parece ser maneirinho oq vc está fazendo, pq vc não faz com swing?

Cara não acho que pegar um exercicio da net e tentar entender seja a melhor forma de aprender java, acho
que voce deve entender os fundamentos da linguagem…
eu aconselho voce a ler o Use a Cabeça Java (Head First).

No site da caelum tbm tem uma de OO legal:

e claro aqui no guj tbm tem ums tutorias bons(Aprendendo java ):
http://www.guj.com.br/artigos.jsp

Mas lembre-se poste apenas uma vez a sua duvida.

RDGMS VLW MESMO BRÓÓDER…

OBRIGADO PELOS CONSELHOS

IREI FAZER O QUE VC ME RECOMENDOU!!

MAS SE VC PUDER AJJUDAR NA MINHA DÚVIDA, SERÁ MUITO BEM VINDO

VLW BRÓDER

FICO NO AGUARDO

ABRAÇOSS…

SEU SHIFT ESTÁ EMPERRADO? :slight_smile:

Não use letras maiúsculas para escrever. Dá uma má impressão e parece que você está querendo se expressar aos berros.

Obrigado marcobiscaro2112 !!!

vlw pelos conselhos !!!

sou novo no fórum e estou aprendendo a usá-lo !

Muito obrigado mesmo pelas recomendações. Desculpe a forma que coloquei minhas dúvidas e obrigado pela compreensão

Se vc puder me ajudar nas dúvidas, será bem vindo

vlw bróóder

Abraços…

[quote=marcobiscaro2112]SEU SHIFT ESTÁ EMPERRADO? :slight_smile:

Não use letras maiúsculas para escrever. Dá uma má impressão e parece que você está querendo se expressar aos berros.[/quote]

e criando varios tópicos iguais da-se a certeza que está aos berros :lol:.

mais um obs: sempre que for postar códigos use a tag “code” o seu código fica mais legivel

Obrigado pelas recomendações

Vlw mesmo

Abraços…

Já que você é novo, primeiramente bem vindo ao GUJ!

Acho que já percebeu que não somos de fazer a lição de casa de ninguém, certo? Mas se quiser ajuda, pode nos procurar!

Quanto aos recursos do fórum, recomendo que leia esse tutorial que explica como usá-los, incluindo a tag ‘code’ que formata seu código deixando mais fácil de ler.

Quanto às apostilas, a FJ11 da Caelum é muito boa para começar. Pode ser baixada gratuitamente no site da Caelum (nada uma busca no Google não resolva :slight_smile: ).

Quanto a esse projeto, não é difícil, mas como já disseram, você precisa de um “Hello World” antes.

Obrigado marcobiscaro2112 !

Estou entendendo agora o funcionamento do fórum !!

Obrigado mais uma vez pelas recomendações

Se vc puder esclarecer um pouco mais sobre esses métodos também será muito bem vindo

vlw mesmo e desculpe a empolgação!!

Abraços…

Se alguém puder ajudar a esclarecer minha dúvida, será muito bem vindo!!

Obrigado a todos que contribuem para a disseminação de conhecimento sobre Java !!

Abraços…

À espera de sugestões que serão muito bem vindas…

não sei se o problema é comigo, mas estes tópicos me dão dor de cabeça. :oops:

Primeiro passo: definir a assinatura dos métodos (ou seja, o que cada método recebe como parâmetro e o que cada método retorna).
Uma possível solução:

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");
		}
	}

	public Matriz somar(Matriz outra) {
		return null;
		// TODO
	}

	public void somaEAtribuir(Matriz outra) {
		// TODO
	}

	public Matriz subtrair(Matriz outra) {
		return null;
		// TODO
	}

	public void subtrairEAtribuir(Matriz outra) {
		// TODO
	}

	public Matriz multiplicar(Matriz outra) {
		return null;
		// TODO
	}

	public void copiar(Matriz destino) {
		// TODO
	}

	public Matriz obterTransposta() {
		return null;
		// TODO
	}
}

O próximo passo já é começar a implementar os métodos. Como? Pense um pouco. A soma e subtração será fácil: basta soma ou subtrair o elemente na posição n x m de uma matriz pelo elemento na mesma posição n x m na outra matriz. Pode ser facilmente resolvido com laços de repetição. Sugiro que pense na multiplicação e na transposta somente após ter o resto pronto.

Quando tiver progressos, poste aqui. E qualquer dúvida, basta perguntar.

Obrigado pelos esclarecimentos marcobiscaro2112 !!

Estou desenvolvendo aqui

se tiver mais sugestões, pode colocá-las aqui

Vlw Bróóder

Abraços…