Poderiam me ajudar a entender esse código!

6 respostas
felipexavier

Poderiam comentar ou arrumar os comentários por favor, to querendo entender essas linhas!!

/**
 * Write a description of class Matriz here.
 *
 * @author (Rigel Areco)
 * @version (1.0)
 */
public class Matriz
{
    // instance variables - replace the example below with your own
    public int x[][];// criando matriz
    public int n; //declarando várialvel n
   
    public Matriz() //metodo construtor
    {
        n = 0; //está iniando a variavel n com valor de 0
    }
    public Matriz(int t) //metodo construtor e criando uma várialvel t do tipo inteiro
    {
        x = new int[t][t]; // está falando que a matriz terá o número de colunas e linhas = t
        n = t;
    }   
    public void setX(int l, int c, int v) //criando medoto set
    {
        if(l < n && c < n)
        {
            x[l][c] = v;
        }
    }   
    public int getX(int l, int c)
    {
        return x[l][c];   
    }   
    public void geraIdentidade(int g)
    {
        //x = new int[g][g];
        //n = g;
        for(int i = 0; i < g; i++)
        {
            for(int j = 0; j <g; j++)
            {
                if(i == j)
                {
                    setX(i, j, 1);
                }
                else
                {
                    setX(i, j, 0);                   
                }   
            }
        }   
    }
   
     public void geraMatriz2(int g)
    {
        for(int i = 0; i < g; i++)
        {
           
            for(int j = 0; j <g; j++)
            {
                setX(i, j, i+1);
            }
        }   
    }

    public void geraMatriz3(int g)
    {
        int v1 = 1;
        for(int i = 0; i < g; i++)
        {
            for(int j = 0; j <g; j++)
            {
               
                setX(i, j, v1);
                v1+=1;
            }   
        }   
    }
   

    public void exibir(int g)
    {
        String z="";
        for(int i = 0; i < g; i++)
        {
            for(int j = 0; j < g; j++)
            {
                z +=  getX(i,j)+" ";  
            }  
            System.out.println(z);
            z = "";
        } 
    }   
}
/**
 * Write a description of class Principal here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Principal
{
    // instance variables - replace the example below with your own
    /**
     * Constructor for objects of class Principal
     */
      public static void main(String args[])
      {
          Matriz m = new Matriz(7);
          System.out.println("Matriz Identidade");
          m.geraIdentidade(7);
          m.exibir(7);
          System.out.println("Matriz exercicio 2");
          m.geraMatriz2(7);
          m.exibir(7);
         
          System.out.println("Matriz exercicio 3");
          m.geraMatriz3(7);
          m.exibir(7);
         
      }   

}

6 Respostas

felipexavier

alguem? preciso entender o que ta acontecendo nesses cogidos, preciso de comentários, e se alguem puder dar uma força em java pra mim, add no skype felipexavier_

R

não tem muito segredo nao…
os construtores vc entendeu né?

o set abaixo dos contrutores vc passa um valor e a posição que vc quer colocar ele na matriz… o get vc pega o valor passando a posição da matriz

o método geraIdentidade gera uma linha na diagonal na matriz com numeros 1 e coloca 0 no restante… é só estudar um pouco de matriz q vai entender o que é isso

o geraMatriz 2 e 3 são semelhantes… ambos são pra preencher a matriz inteira com números gerados nos próprios metodos.

o exibir mostra a matriz e pronto =)

felipexavier

tem como voce comentar pra mim? preciso muito entender isso, tenho mais exercicios para resolver e nao to conseguindo entender muito disso ><
a logica eu tenho, so nao entendo os comandos, ficou muito confuso pra mim ><

R

Qual parte vc nao entendeu?

R
public void setX(int l, int c, int v) // parametros l = linha, c = coluna = v = valor
    {
        if(l < n && c < n) // se a linha E coluna for menor que o tamanho da matriz
        {
            x[l][c] = v; // coloca o valor na posição linha e coluna
        }
    }   

    public int getX(int l, int c) // passa linha e coluna
    {
        return x[l][c];    // retorna o valor inteiro que está naquela linha e coluna
    }   

    // esse método gera uma linha na diagonal com valor 1 e 0 nas outras posições
    public void geraIdentidade(int g)
    {

        for(int i = 0; i < g; i++)  // percorre cada linha
        { 
            for(int j = 0; j <g; j++) // percorre cada coluna
            {
                if(i == j) // se a linha for a mesma posição da coluna ( por exemplo.. matriz[2][2] ) então é true
                {
                    setX(i, j, 1);  // coloca 1 na posição 
                }
                else
                {
                    setX(i, j, 0); // coloca 0 na posição                   
                }   
            }
        }   
    }
   
     // preenche a matriz com valores iguais para cada linha 
     public void geraMatriz2(int g)
    {
        for(int i = 0; i < g; i++) // percorre linha
        {
           
            for(int j = 0; j <g; j++) // percorre colunas
            { 
                setX(i, j, i+1); // coloca o valor i+1 nessa posição i,j
            }
        }   
    }

    // preenche a matriz com valores crescentes para cada campo da matriz
    public void geraMatriz3(int g)
    {
        int v1 = 1; // inicia o valor com 1

        for(int i = 0; i < g; i++) // percorre linha
        {
            for(int j = 0; j <g; j++) // percorre coluna
            {
               
                setX(i, j, v1);  // coloca o valor v1 nessa posição
                v1+=1;   // aumenta o v1 em 1.. seria mesma coisa que colocasse v1++ 
            }   
        }   
    }
   

    public void exibir(int g)  // exibe a matriz preenchida
    {
        String z="";
        for(int i = 0; i < g; i++)
        {
            for(int j = 0; j < g; j++)
            {
                z +=  getX(i,j)+" ";  
            }  
            System.out.println(z);
            z = "";
        } 
    }   
}
Mr.style

Caso vc seja aluno iniciante de Java, seria melhor entender as condicionais, laços de repetição…
e coisas do tipo…
pois somente os comentários não irão tirar todas as suas dúvidas.

Criado 18 de março de 2011
Ultima resposta 18 de mar. de 2011
Respostas 6
Participantes 4