[b]Bom dia Pessoal,
Como sou novo em Java…
Gostaria de saber se alguem poderia me ajudar…
Necessito de um programa que faça:
Seja uma matriz A(nxn), onde n seja fornecido como entrada. Preencha aleatoriamente a matriz com valores de 1 a 50. Deverão ser calculados:
a) o Produto dos elementos situados na diagonal principal.
b)a soma dos elementos situados na diagonal secundaria.
c) produto dos elementos situados acima da diagonal principal.
d) a soma dos elementos situados abaixo da diagonal principal.
Preencher a matriz com os 50 valores é tranquilo. E não sei que tem uma forma de usar o vector, mais gostaria de fixar o programa de maneira mais simples para não ter essas pequenas duvidas mais.
Obrigado!![/b]
Então faz o seguinte, faz a parte que você sabe e depois vamos por partes, poste a parque que deu erro, ou que você não sabe fazer, porque senão pra responder a as pergutas a pessoa praticamente tem que fazer todo o seu programa 
Aguardo sua postagem.
[code]import javax.swing.*;
import java.util.Random;
public class Exercicio08 {
public static void main (String Args[])
{
int mat[][]=new int[50][50],a,b,t=0;
int soma=0;
String flag="",saida="";
JTextArea saidat=new JTextArea();
Random r=new Random();
for(a=0;a<50;a++)
{
for(b=0;b<50;b++)
{
mat[a][b]=r.nextInt(100);
saida+=mat[a][b]+"\t";
}
saida+="\n";
}
for(a=0;a<50;a++)
{
for(b=0;b<=t;b++)
{
soma+=mat[a][b];
}
t++;
}
saida+="\n A soma dos elementos abaixo e da diagonal principal é: "
+soma;
saida+="\n A média é: "+(soma/15);
saidat.setText(saida);
JOptionPane.showMessageDialog(null,saidat,"Matriz 50 x 50",JOptionPane.PLAIN_MESSAGE);
soma=t=0;
saida="";
System.exit(0);
}
}
}
[/code]
Segue o que eu fiz, foi só a soma e ainda ta dando erro =(
E ainda acho que fiz errado, pq se seriam 50 valores, não seria uma 50x50…
Vacilei grandão!!!
[code]import javax.swing.*;
import java.util.Random;
public class Exercicio08 {
public static void main (String Args[])
{
int mat[][]=new int[7][7],a,b,t=0;
int soma=0;
String flag="",saida="";
JTextArea saidat=new JTextArea();
Random r=new Random();
for(a=0;a<7;a++)
{
for(b=0;b<7;b++)
{
mat[a][b]=r.nextInt(100);
saida+=mat[a][b]+"\t";
}
saida+="\n";
}
for(a=0;a<7;a++)
{
for(b=0;b<=t;b++)
{
soma+=mat[a][b];
}
t++;
}
saida+="\n A soma dos elementos abaixo e da diagonal principal é: "
+soma;
saida+="\n A média é: "+(soma/15);
saidat.setText(saida);
JOptionPane.showMessageDialog(null,saidat,"Matriz 7 x 7",JOptionPane.PLAIN_MESSAGE);
soma=t=0;
saida="";
System.exit(0);
}
}
[/code]
Bom, usei seu exercício como treino.
Primeiro, devemos ter em mente o seguinte:
- O que é diagonal principal?
- O que diagonal secundária?
Podemos encontrar essas respostas aqui: http://pt.wikipedia.org/wiki/Diagonal_de_uma_matriz
Depois o exercício pede para fazer a soma dos elementos acima e abaixo da diagonal principal. Vamos supor que temos a seguinte matriz:
0 4 7
2 3 5
4 2 1
A soma da diagonal principal seria: 0 + 3 + 1 = 4
A soma da diagonal secundária seria: 4 + 3 + 7 = 14
Soma dos elementos ACIMA da diagonal principal: 4 + 7 + 5 = 16
Soma dos elementos ABAIXO da diagonal principal: 2 + 4 + 2 = 8
Ficou claro isso?
Abaixo o código de como fiz:
[code]import java.util.Scanner;
public class Teste {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite um valor para N: ");
int n = scanner.nextInt();
Vetor v = new Vetor();
v.criaMatriz(n);
v.calculaDiagonalPrincipal();
v.calculaDiagonalSecundaria();
v.somaAcimaDiagonalPrincipal();
v.somaAbaixoDiagonalPrincipal();
}
}[/code]
[code]public class Vetor {
int[][] matriz;
public void criaMatriz(int n) {
int[][] array = new int[n][n];
for(int i = 0; i < array.length; i++) {
System.out.println();
for(int j = 0; j < array.length; j++) {
array[i][j] = (int) (Math.random() * 51);
System.out.print(array[i][j] + "\t");
}
matriz = array;
}
}
public void calculaDiagonalPrincipal() {
int diagonalPrincipal = 0;
for(int i = 0; i < matriz.length; i++) {
for(int j = 0; j < matriz.length; j++) {
if(i == j) {
diagonalPrincipal += matriz[i][j];
}
}
}
System.out.println("\n\nDiagonal Principal = " + diagonalPrincipal);
}
public void calculaDiagonalSecundaria() {
int diagonalSecundaria = 0;
for(int i = matriz.length - 1; i >= 0; i--) {
for(int j = matriz.length - 1; j >= 0; j--) {
if(i + j == matriz.length - 1) {
diagonalSecundaria += matriz[i][j];
}
}
}
System.out.println("Diagonal Secundária = " + diagonalSecundaria);
}
public void somaAcimaDiagonalPrincipal() {
int soma = 0;
for(int i = 0; i < matriz.length; i++) {
for(int j = 0; j < matriz.length; j++) {
if(i >= j) {
continue;
}
soma += matriz[i][j];
}
}
System.out.println("Produto dos elementos acima da Diagonal Principal: " + soma);
}
public void somaAbaixoDiagonalPrincipal() {
int soma = 0;
loop1:
for(int i = 0; i < matriz.length; i++) {
for(int j = 0; j < matriz.length; j++) {
if(i <= j) {
continue loop1;
}
soma += matriz[i][j];
}
}
System.out.println("Produto dos elementos abaixo da Diagonal Principal: " + soma);
}
}[/code]
Estude o código, entenda ele!
Qualquer dúvida poste aqui que lhe ajudamos.
[quote=gustavo_mb]Bom, usei seu exercício como treino.
Primeiro, devemos ter em mente o seguinte:
- O que é diagonal principal?
- O que diagonal secundária?
Podemos encontrar essas respostas aqui: http://pt.wikipedia.org/wiki/Diagonal_de_uma_matriz
Depois o exercício pede para fazer a soma dos elementos acima e abaixo da diagonal principal. Vamos supor que temos a seguinte matriz:
0 4 7
2 3 5
4 2 1
A soma da diagonal principal seria: 0 + 3 + 1 = 4
A soma da diagonal secundária seria: 4 + 3 + 7 = 14
Soma dos elementos ACIMA da diagonal principal: 4 + 7 + 5 = 16
Soma dos elementos ABAIXO da diagonal principal: 2 + 4 + 2 = 8
Ficou claro isso?
Abaixo o código de como fiz:
[code]import java.util.Scanner;
public class Teste {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite um valor para N: ");
int n = scanner.nextInt();
Vetor v = new Vetor();
v.criaMatriz(n);
v.calculaDiagonalPrincipal();
v.calculaDiagonalSecundaria();
v.somaAcimaDiagonalPrincipal();
v.somaAbaixoDiagonalPrincipal();
}
}[/code]
[code]public class Vetor {
int[][] matriz;
public void criaMatriz(int n) {
int[][] array = new int[n][n];
for(int i = 0; i < array.length; i++) {
System.out.println();
for(int j = 0; j < array.length; j++) {
array[i][j] = (int) (Math.random() * 51);
System.out.print(array[i][j] + "\t");
}
matriz = array;
}
}
public void calculaDiagonalPrincipal() {
int diagonalPrincipal = 0;
for(int i = 0; i < matriz.length; i++) {
for(int j = 0; j < matriz.length; j++) {
if(i == j) {
diagonalPrincipal += matriz[i][j];
}
}
}
System.out.println("\n\nDiagonal Principal = " + diagonalPrincipal);
}
public void calculaDiagonalSecundaria() {
int diagonalSecundaria = 0;
for(int i = matriz.length - 1; i >= 0; i--) {
for(int j = matriz.length - 1; j >= 0; j--) {
if(i + j == matriz.length - 1) {
diagonalSecundaria += matriz[i][j];
}
}
}
System.out.println("Diagonal Secundária = " + diagonalSecundaria);
}
public void somaAcimaDiagonalPrincipal() {
int soma = 0;
for(int i = 0; i < matriz.length; i++) {
for(int j = 0; j < matriz.length; j++) {
if(i >= j) {
continue;
}
soma += matriz[i][j];
}
}
System.out.println("Produto dos elementos acima da Diagonal Principal: " + soma);
}
public void somaAbaixoDiagonalPrincipal() {
int soma = 0;
loop1:
for(int i = 0; i < matriz.length; i++) {
for(int j = 0; j < matriz.length; j++) {
if(i <= j) {
continue loop1;
}
soma += matriz[i][j];
}
}
System.out.println("Produto dos elementos abaixo da Diagonal Principal: " + soma);
}
}[/code]
Estude o código, entenda ele!
Qualquer dúvida poste aqui que lhe ajudamos.
[/quote]
Gustavo,
Valeu demais!!! Com certeza vou estudar o codigo e entender mais sobre o exercicio…
Bom demais, muito obrigado!!!