Somar linhas e colunas

9 respostas
D

Boa tarde,

Estou numa duvida,fiz um execercio :

  1. Leia uma Matriz quadrada PAR;
  2. Imprima o conteúdo da primeira linha e da primeira coluna
  3. preecha o vetor
  4. ordene o vetor em ordem crescente
  5. imprima o vetor
Porém não sabendo sabendo somar as linnhas e colunas junto

Tentem fazer assim:

public void somacol(int [] vet,int [][]mat,int tamanho)

{

int	cont=0;

int soma=0;

while(cont < tamanho)

{

for (int i = 0; i < mat.length; i ++)

{

{

soma += mat[i][i];

}

cont++;

}

System.out.println("A soma da matriz = "+soma);

}

}

Porém esta somando a mais

Caso eu queira somar somente a coluna , como ficaria ? e se eu quiseer somar os 2 ?

Aguardo,

David

9 Respostas

dreampeppers99

Leia essa apostila java e orientacao a objetos. So uma dica como sua matriz e de duas dimensoes, voce deveria usar dois indices.

D
cont=0;

while(cont < tam)

{j=0;

for(int i=0;i<tam;i++)

{vet[cont]=mat[i][j]+vet[cont]

j++

}

cont++;

}

Tentei dessa forma… De uma dica … preciso disso pra hoje… rsrs

diego.sas

Ao inserir um post:

insira o trecho do código entre as tags

dreampeppers99

Davidps, primeiro sempre use o code tag para seus codigos. Nao sei qual a tua logica e acho que e esse o proposito de quem fez teu exercicio. Posso te dizer que se quiser percorrer um array multidimensional poderia fazer.

int[][] mapa = new int[32][32] //alimentando com numeros 3`s for (int x = 0 ; x < 32 ; x++ ){ for (int y = 0 ; y < 32 ; y++){ mapa[x][y] = 3; } } //somando todos os items e mostrando a soma parcial int soma = 0; for (int x = 0 ; x < 32 ; x++ ){ for (int y = 0 ; y < 32 ; y++){ soma += mapa[x][y]; System.out.println("Soma parcial: "+soma); } }
PS: na realidade o ultimo lance de iteracao fara que a soma parcial nao seja mais parcial e sim total.

D

[code]
import javax.swing.JOptionPane;

public class prova
{
public int verifica(int tamanho) // Aqui verifica se o tamanho é impar ou par..
{ // nesse caso tem q ser impar
while(tamanho%2 == 0) //se for par então fica assim (tamanho%2!=0)
{
tamanho = Integer.parseInt(JOptionPane.showInputDialog("Digite um número"));
}
return tamanho;
}

public void preenche(int [][] mat, int tamanho) // preenche o vetor
{
for(int i=0; i {
for(int j=0; j {
mat[i][j] = (int) (Math.random()*10);
}
}
}

public void impcol(int [][] mat, int tamanho) // imprime coluna do meio em matri impar
{ //se fosse a ultima linha então tamanho -1, a penutima tamanho - 2..
int n = tamanho/2;
for(int i=0; i {
System.out.print(mat[i][n]+" ");
}
System.out.println();
}

public void implin(int [][] mat, int tamanho) // imprimi a linha
{
int n = tamanho/2;
for(int i=0; i {
System.out.print(mat[n][i]+" ");
}
System.out.println();
}

public void preenchevet(int [][] mat, int [] vet, int tamanho) // preencher o vetor
{
int n = tamanho/2; // coluna do meio em matriz quadrada impar
for(int i=0; i {
vet[i] = mat[i][n];
}
int i=tamanho;
for(int j=0; j {
vet[i] = mat[n][j];
i++;
}
}

public void ordena(int [] vet, int tamanho)
{
int n = tamanho * 2; // ou seja..se tam for 2..será 2*2=4 então ira mostar 4 resultados
int aux; // se for 3..ira mstrar 6 resultados
for(int i=0; i {
for(int j=i+1; j {
if(vet[j] { // para que ordene em ordem decrescente basta alterar o sinal p >
aux = vet[i];
vet[i] = vet[j];
vet[j] = aux;
}
}
}
}
public void somacol(int [] vet,int [][]mat,int tamanho)
{
int cont=0;
int soma=0;
while(cont < tamanho)
{
for (int i = 0; i < mat.length; i ++)
{
for (int j = 0; j < mat.length; j ++)
{
soma += vet[i];
System.out.println("A soma da linha = "+soma);
}
}
}
cont++;
}
public void imprimevet(int [] vet, int tamanho) // imprimir o vetor
{
int n = tamanho*2; // aqui´´e p/ mostrar os resultados .. se tamanho for 3 mostra 6 resultados
for(int i=0; i {
System.out.print(vet[i]+" ");
}
}
}

Esse é meio código compelto.. parte abstrata.. Com matriz impar.. tente add oq vc me passou porem da igual já dava antes..so pega uma linha ou uma coluna..

L

lê aqui camarada

http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor/5

vc não fez direito,leia e edite seus post…

abrx

D
import javax.swing.JOptionPane;

public class prova
{
	public int verifica(int tamanho) // Aqui verifica se o tamanho é impar ou par..
	{								 // nesse caso tem q ser impar
		while(tamanho%2 == 0)		//se for par então fica assim (tamanho%2!=0)
		{
			tamanho = Integer.parseInt(JOptionPane.showInputDialog("Digite um número"));
		}
		return tamanho;
	}


	public void preenche(int [][] mat, int tamanho) // preenche o vetor
	{
		for(int i=0; i<tamanho; i++)
		{
			for(int j=0; j<tamanho; j++)
			{
				mat[i][j] = (int) (Math.random()*10);
			}
		}
	}


	public void impcol(int [][] mat, int tamanho) // imprime coluna do meio em matri impar
	{	//se fosse a ultima linha então tamanho -1, a penutima tamanho - 2.. 
		int n = tamanho/2;
		for(int i=0; i<tamanho; i++)
		{
			System.out.print(mat[i][n]+"  ");
		}
		System.out.println();
	}

	public void implin(int [][] mat, int tamanho) // imprimi a linha 
	{
		int n = tamanho/2;
		for(int i=0; i<tamanho; i++)
		{
			System.out.print(mat[n][i]+"  ");
		}
		System.out.println();
	}

	public void preenchevet(int [][] mat, int [] vet, int tamanho) // preencher o vetor
	{
		int n = tamanho/2; // coluna do meio em matriz quadrada impar
		for(int i=0; i<tamanho; i++)
		{
			vet[i] = mat[i][n];
		}
		int i=tamanho;
		for(int j=0; j<tamanho; j++)
		{
			vet[i] = mat[n][j];
			i++;
		}
	}


	public void ordena(int [] vet, int tamanho)
	{
		int n = tamanho * 2; // ou seja..se tam for 2..será 2*2=4 então ira mostar 4 resultados
		int aux;		// se for 3..ira mstrar 6 resultados
		for(int i=0; i<n-1; i++)
		{
			for(int j=i+1; j<n; j++)
			{
				if(vet[j]<vet[i]) // aqui ira ordenar em ordem crescente...
				{			// para que ordene em ordem decrescente basta alterar o sinal p >
					aux = vet[i];
					vet[i] = vet[j];
					vet[j] = aux;
				}
			}
		}
	}
	public void somacol(int [] vet,int [][]mat,int tamanho)
	{
		int	cont=0;
		int soma=0;
			while(cont < tamanho)
		{
			for (int i = 0; i < mat.length; i ++)
			{  
			  for (int j = 0; j < mat.length; j ++) 
				{
			        soma += vet[i]; 
			        System.out.println("A soma da linha = "+soma);  
			    } 
       		}	
		}
		cont++;
	}
	public void imprimevet(int [] vet, int tamanho) // imprimir o vetor
	{
		int n = tamanho*2; // aqui´´e p/ mostrar os resultados .. se tamanho for 3 mostra 6 resultados
		for(int i=0; i<n; i++)
		{
			System.out.print(vet[i]+"  ");
		}
	}
}

E agora ?? deu certo ? preciso so das somas… esta é a parte abstrata

diego.sas
public static int somaLinha(int[][] array, int num_linha)
	{
		int soma = 0;
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length; j++) 
			{
				if(num_linha == i)
				soma += array[i][j];
			}
		}
		return soma;
	}
	
	public static int somaColuna(int[][] array, int num_col)
	{
		int soma = 0;
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length; j++) 
			{
				if(num_col == j)
				soma += array[i][j];
			}
		}
		return soma;
	}

Só lembrando que a linha e a coluna começa 0,0

D

Valeu… obrigado a todos que opinaram…

Deu certim… é que aqui eu uso parte abstrata e concreta… valeu

Criado 6 de julho de 2011
Ultima resposta 6 de jul. de 2011
Respostas 9
Participantes 4