Duvida!

16 respostas
E

/* Crie um aplicativo que leia uma matriz de 5X5 elementos inteiros. Calcular e imprimir:

a)A soma dos elementos da diagonal principal
b)Gerar um vetor com a soma das colunas
c)Gerar um vetor com a soma das linhas
d)Transpor a matriz
*/

tenho algumas duvidas em matriz principalmnte neste execicio, bem a 1ª duvida, por exemplo tenho uma matriz 5*5 uma matriz quadrada para cada coluna eu tenhu 5 linhas??? pergunto isso porque neste exemplo mostra isso:

import javax.swing.*;

public class Prog17
{
	public static void main(String args[])
	{
		int mat[][]=new int[5][5],c,l;          
	    String saida;   //l  c
		JTextArea saidat = new JTextArea(20,25);
		JScrollPane resultado = new JScrollPane(saidat);
		
		for(c=0;c<5;c++)
		{
			for(l=0;l<5;l++)
			{
				mat[c][l]=Integer.parseInt(JOptionPane.showInputDialog(null,"Dígite na coluna "+c+" e na linha "+l,"CALCULO DE MATRIZ",JOptionPane.WARNING_MESSAGE));
			}
		}
		
		

	}
}

ou e igual na matematica?
como eu faço a soma dos elementos da diagonal principal?? como faço pra descobrir a diagonal principal?

o que é transpor matriz???
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - AnjoSupremo[/color][/size] :joia:

16 Respostas

E

Outra duvida eu acho que diagonal principal e que tem mesma número na linha e na coluna e isso mesmo?

D

Matriz Transposta

Matrizes

Matriz quadrada é a matriz que tem o número de linhas igual ao número de colunas, i.e., m=n.

Diagonal principal: A diagonal principal da matriz é indicada pelos elementos da forma a(i,j) onde i=j.

Mais sobre Matriz

Um Abraço !

D

Achei mais um Boa Matéria sobre Matriz

Um Abraço !

E

Obrigado pela informação, mais estou quebrando minha cabeça aqui e não
consigo resolver. bem a matriz e 5*5 colunas 0,1,2,3,4 e linhas 0,1,2,3,4
trata-se de uma matriz quadrada, bem na coluna 0 ele digita nas linhas 1,2,3,4,5 ate chegar na ultima coluna que é a quarta as colunas e linhas iguais vão ficar assim (linha,coluna)=(1,1)(2,2)(3,3)(4,4) a soma da 20
mais no programa ue eu fiz deu 15?? o programa está ai embaixo!

import javax.swing.*;

public class Prog17
{
	public static void main(String args[])
	{
		int mat[][]=new int[5][5],c,l,S1=0,S2=0,S3=0;
		int vc[]=new int[5],vl[]=new int[5];       
	    String saida;   //l  c
		JTextArea saidat = new JTextArea(20,25);
		JScrollPane resultado = new JScrollPane(saidat);
		saida="Programa 17 \n";
		
		for(c=0;c<5;c++)
		{

			for(l=0;l<5;l++)
			{
				mat[c][l]=Integer.parseInt(JOptionPane.showInputDialog(null,"Dígite na coluna "+c+" e na linha "+l,"CALCULO DE MATRIZ",JOptionPane.WARNING_MESSAGE));
				//Letra A
				if(c==l)
				S1=S1+mat[c][l];
			}
		}
		saida+=S1+"\n";
	   
	    
	    
	    
		saidat.setText(saida);
		JOptionPane.showMessageDialog(null,resultado);
		

	}
}

Porque será???

C

pd desenhar sua matriz com os valoes certinho pra gente ver como que ta?

E

ai está minha matriz desenhada!!!

exemplo em linhas e colunas; bem podemos fazer soma de matrizes se os elementos estiverem na mesma posição; como vcs podem ver na minha martiz exemplo os que são iguais são(1,1),(2,2)(3,3)(4,4) não estão na mesma posição como a soma pode dar 15??? alguém sabe qual será o valor dessa soma pois no meu exemplo a seguir se vc digitar os seguintes elementos vai dar 15

import javax.swing.*;

public class Prog17
{
	public static void main(String args[])
	{
		int mat[][]=new int[5][5],c,l,S1=0,S2=0,S3=0;
		int vc[]=new int[5],vl[]=new int[5];       
	    String saida;   //l  c
		JTextArea saidat = new JTextArea(20,25);
		JScrollPane resultado = new JScrollPane(saidat);
		saida="Programa 17 \n";
		
		for(c=0;c<5;c++)
		{

			for(l=0;l<5;l++)
			{
				mat[c][l]=Integer.parseInt(JOptionPane.showInputDialog(null,"Dígite na coluna "+c+" e na linha "+l,"CALCULO DE MATRIZ",JOptionPane.WARNING_MESSAGE));
				//Letra A
				if(c==l)
				S1=S1+mat[c][l];
			}
		}
		saida+=S1+"\n";
	   
	    
	    
	    
		saidat.setText(saida);
		JOptionPane.showMessageDialog(null,resultado);
		

	}
}

podem ver que o valor da 15 essa e minha duvida!

C

ela n comecaria da posicao 0.0 nao kra ?

0.0 | 1.0 | 2.0 | 3.0 | 4.0 |
0.1 | 1.1 | 2.1 | 3.1 | 4.1 |
0.2 | 1.2 | 2.2 | 3.2 | 4.2 |
0.3 | 1.3 | 2.3 | 3.3 | 4.3 |
0.4 | 1.4 | 2.4 | 3.4 | 4.4 |

soma agora 0 + 1 + 2 +3 + 4 = 10

o resultado n teria q ser 10 nao ?

E

bem no diagrama que eu estou mostrando, estou colocando como o usuário
está digitando no caso da minha matriz ele digite 1 na linha 0 e coluna 0,
essa matriz que vc fez

e sem valores dígitados pelo usuario mais se na posição |0.0| o usuario
dígitar 1 na linha 0 ai vai ficar
|1.0| que dizer posição zero,zero que recebeu 1 na linha zero da coluna zero
um exemplo e essa matriz minha

vai seguindo assim o usuario dígita 1 na linha da (0,0), ai vai ficar
(1,que e da linha, receber o valor,0 que e da coluna) ai vai ficar (1,0)
meu exemplo o usuário dígita 1,2,3,4,5 na linhas; essa soma que esta me confundindo
mais sua informação me deu uma noção melhor!

C

Certo.. entoa c agora tu somas

1 + 2 + 3 + 4 + 5 = 15 certo ?

da uma olhada no aplicativo q fiz

public class Teste {
        public static void main( String[] args ) {
                int[][] x = new int[5][5];

                // Incializa o Array
                for( int i = 0; i < 5; i++ ) {
                        for(int j = 0; j < 5; j++)
                                x[i][j] = i+1;


                }

                // Soma os dados do Array
                int soma = 0;

                for( int i = 0; i < 5; i++ ) {
                        for(int j = 0; j < 5; j++) {
                                if(i==j)
                                        soma += x[i][j];

                        }

                }
        }
}

Entendeu ?

E

No cara valeu mesmo pelo seu exemplo eu entendi vo tentar fazer
as outras perguntas do exercicio qualquer coisa se eu naum estiver entedendo
eu mando outra menssagem mais valew mesmo!

E
bateu outra duvida este execicio
/* Crie um aplicativo que leia uma matriz de 5X5 elementos inteiros. Calcular e imprimir:
 
 a)A soma dos elementos da diagonal principal
 b)Gerar um vetor com a soma das colunas
 c)Gerar um vetor com a soma das linhas
 d)Transpor a matriz
*/

import javax.swing.*;

public class Prog17
{
	public static void main(String args[])
	{
		int mat[][]=new int[5][5],c,l,Sc=0,S1=0,S3=0,j=0,x;
		int vc[]=new int[5],vl[]=new int[5];       
	    String saida;   //l  c
		JTextArea saidat = new JTextArea(25,25);
		JScrollPane resultado = new JScrollPane(saidat);
		saida="Programa 17 \n";
		
		for(c=0;c<5;c++)
		{

			for(l=0;l<5;l++)
			{
				mat[c][l]=Integer.parseInt(JOptionPane.showInputDialog(null,"Dígite na coluna "+c+" e na linha "+l,"CALCULO DE MATRIZ",JOptionPane.WARNING_MESSAGE));
				//Letra A
				if(c==l)
				S1=S1+mat[c][l];
			}
		}
		for(c=0;c<5;c++)
			for(l=0;l<5;l++)
			{
				Sc=Sc+mat[c][l];
				if(c==4)
				{
					vc[j++]=Sc;
					Sc=0;
				}
			}
		
		saida+="Letra A \n";
		saida+="A soma da diagonal principal é\t"+S1+"\n";
		saida+="*******************************************\n";
		saida+="Letra B \n";
		for(x=0;x<5;x++)
		{
			saida+=vc[x]+"\n";
		}
	   
	    
	    
	    
		saidat.setText(saida);
		JOptionPane.showMessageDialog(null,resultado);
		

	}
}

estou tentando fazer um algoritimo pra somar as colunas mais não está dando certo, o resultado está totalmente errado ja pensei em tudo mais sai nada alguém tem alguma solução?

C

kra. olhe o codigo q fiz pra ti, e pense um poco mais, isso que tu ta tentano fazer e + simples do que o codigo q eu fiz pra ti, da uma olhada legal q tu vai conseguir.
:joia:

E

e cara penei mais conseguir fazer da uma olhada ai no fonte se vc achar erro vc me da ideia falow!! muito obrigado pela ajuda sem ela naum séria possivel!

/* Crie um aplicativo que leia uma matriz de 5X5 elementos inteiros. Calcular e imprimir:
 
 a)A soma dos elementos da diagonal principal
 b)Gerar um vetor com a soma das colunas
 c)Gerar um vetor com a soma das linhas
 d)Transpor a matriz
*/

import javax.swing.*;

public class Prog17
{
	public static void main(String args[])
	{
		int mat[][]=new int[5][5],c,l,Sc=0,S1=0,Sl=0,j=0,x;
		int vc[]=new int[5],vl[]=new int[5],a=0;   
		int trasmposta[][]= new int [5][5];    
	    String saida;   //l  c
		JTextArea saidat = new JTextArea(25,25);
		JScrollPane resultado = new JScrollPane(saidat);
		saida="Programa 17 \n";
		
		for(c=0;c<5;c++)
		{

			for(l=0;l<5;l++)
			{
				mat[c][l]=Integer.parseInt(JOptionPane.showInputDialog(null,"Dígite na coluna "+c+" e na linha "+l,"CALCULO DE MATRIZ",JOptionPane.WARNING_MESSAGE));
				//Letra A
				if(c==l)
				S1=S1+mat[c][l];
			
			}
		
		}
			saida+="Letra A \n";
		saida+="A soma da diagonal principal é\t"+S1+"\n";
		saida+="*******************************************\n";
		saida+="Letra B \n";
//********************************************* fim da letra a e da entrada de dados *****************************************************************
		for(l=0;l<5;l++)//esse for e das linas
			for(c=0;c<5;c++)// se e soma das colunas, o que representa a coluna veem primeiro
			{
				Sc=Sc+mat[c][l];
				if(c==4)
				{
					
					vc[j++]=Sc;
					Sc=0;
				}
			}
		
		saida+=" A soma das colunas é:\n";
		for(x=0;x<5;x++)
		{
			saida+=vc[x]+"\n";
		}
//**********************************************************fim da letra b **********************************************************************************	
saida+="***********************************************\n";
saida+="Letra C \n";	
		for(c=0;c<5;c++)
		   for(l=0;l<5;l++)
		   {
		   	 Sl=Sl+mat[c][l];
		   	 if(l==4)
		   	 {
		   	 	vl[a++]=Sl;
		   	 	Sl=0;
		   	 }
		   }
		for(x=0;x<5;x++)
		{
			saida+=vl[x]+"\n";
		}
//********************************************************fim da letra c*****************************************************************************
saida+="Transpondo a Matriz \n";
	for(c=0;c<5;c++)
		   for(l=0;l<5;l++)
		   {
		   	  trasmposta[c][l]=mat[l][c];
		   }
           for(c=0;c<5;c++)
		    for(l=0;l<5;l++)
		    {
		    	saida+=trasmposta[c][l];
		    }
		saidat.setText(saida);
		JOptionPane.showMessageDialog(null,resultado);
		

	}
}
C

Poste a parte q tu ta com duvidas, e bem + facil pra ajudar, certifique-se que seu codigo esta 100% até o momento de vc percorrer o array, :joia:

E

No cara outra duvida minha!!! o que e trasnpor a matriz!!!
alguém tem o algoritimo??? presciso urgente!!!

E

Bem vo deixar o codigo ai pra galera ver!! conceito sobre matriz eu ja tenho quero é algoritimo no caso de trasmpor a matriz vo deixar o exercicio ai embaixo quem tiver a manha completa ou me da um toque como fazer! tentei…tentei mais naum tem jeito alguém me ajude! lembrado que a LETRA D DO EXERCICIO TODAS AS OUTRAS ESTÂO CERTAS JÀ CONFERI!

/* Crie um aplicativo que leia uma matriz de 5X5 elementos inteiros. Calcular e imprimir:
 
 a)A soma dos elementos da diagonal principal
 b)Gerar um vetor com a soma das colunas
 c)Gerar um vetor com a soma das linhas
 d)Transpor a matriz
*/

import javax.swing.*;

public class Prog17
{
	public static void main(String args[])
	{
		int mat[][]=new int[5][5],c,l,Sc=0,S1=0,Sl=0,j=0,x;
		int vc[]=new int[5],vl[]=new int[5],a=0;   
		int trasmposta[][]= new int [5][5];    
	    String saida;   //l  c
		JTextArea saidat = new JTextArea(30,35);
		JScrollPane resultado = new JScrollPane(saidat);
		saida="Programa 17 \n";
		
		for(l=0;l<5;l++)
		{

			for(c=0;c<5;c++)
			{
				mat[l][c]=Integer.parseInt(JOptionPane.showInputDialog(null,"Dígite na linha ["+l+"] e na coluna ["+c+"]","CALCULO DE MATRIZ",JOptionPane.WARNING_MESSAGE));
				//Letra A
				if(c==l)
				S1=S1+mat[l][c];
			
			   saida+="["+mat[l][c]+"\t"+c+"]";

				//saida+="\r";
			
			}

			saida+="\n";
		   
		}
			saida+="Letra A \n";
		saida+="A soma da diagonal principal é\t"+S1+"\n";
		saida+="*******************************************\n";
		saida+="Letra B \n";
//********************************************* fim da letra a e da entrada de dados *****************************************************************
		for(l=0;l<5;l++)//esse for e das linas
			for(c=0;c<5;c++)// se e soma das colunas, o que representa a coluna veem primeiro
			{
				Sc=Sc+mat[c][l];
				if(c==4)
				{
					
					vc[j++]=Sc;
					Sc=0;
				}
			}
		
		saida+=" A soma das colunas é:\n";
		for(x=0;x<5;x++)
		{
			saida+=vc[x]+"\n";
		}
//**********************************************************fim da letra b **********************************************************************************	
saida+="***********************************************\n";
saida+="Letra C \n";	
		for(c=0;c<5;c++)
		   for(l=0;l<5;l++)
		   {
		   	 Sl=Sl+mat[c][l];
		   	 if(l==4)
		   	 {
		   	 	vl[a++]=Sl;
		   	 	Sl=0;
		   	 }
		   }
		 	saida+=" A soma das linhas é:\n";
		for(x=0;x<5;x++)
		{
			saida+=vl[x]+"\n";
		}
//********************************************************fim da letra c*****************************************************************************
saida+="Transpondo a Matriz \n";

  // Minha grande dúvida alguém me ajude tenho que fazer isso o mais rapido possivel!
   
		  
		saidat.setText(saida);
		JOptionPane.showMessageDialog(null,resultado);
		

	}
}
Criado 17 de maio de 2006
Ultima resposta 18 de mai. de 2006
Respostas 16
Participantes 3