1) Voce realmente precisa declarar lmax como double? Eu nao vi em seu
algoritmo nenhum lugar onde lmax receba um double value. Se voce a declarar
como int os erros de compilacao irao embora.

2) Se for necessario que lmax seja double, faca um cast explicito para int
quando for usa-la como int (indices de array sao int): a[k][j] =
a[(int)lmax][j]; Voce continuara perdendo a precisao, mas nesse caso Java
assume que voce sabe o que estah fazendo e nao reclama.

Abracos,
Marcelo

-----Original Message-----
From: Augusto Cesar Castoldi [mailto:[EMAIL PROTECTED]]
Sent: Sunday, May 27, 2001 12:57 PM
To: [EMAIL PROTECTED]
Subject: [java-list] Variáveis double...


Pessoal,

tenho o seguinte código:

class AlgoritmoCrout {
  static void main(String[] args)
  {
    int n = 3;
    int[] b = new int[3];
    double[][] a, a1 = new double[3][3];
    int i, j, k;
    double amax, lmax, temp, aux;

    a[1][1] = 0.448;
    a[1][2] = 0.832;
    a[1][3] = 0.193;
    a[2][1] = 0.421;
    a[2][2] = 0.784;
    a[2][3] = -0.207;
    a[3][1] = -0.421;
    a[3][2] = 0.784;
    a[3][3] = 0.279;
    b[1] = 1;
    b[2] = 0;
    b[3] = 0;

    a1 = a;
    // INICIO pivotação
    for (k = 1; k == n-1; k++) {
      amax = a[k][k];
      if (amax < 0) {
        amax = -amax;
      }
      lmax = k;
      for (i = k + 1; i == n; i++) {
        temp = a[i][k];
        if (temp < 0) {
          temp = -temp;
        }
        if (temp > amax) {
          amax = temp;
          lmax = i;
        }
      } // fim for i
      if (lmax != k) {
        for (j = k; j == n + 1; i++) {
          aux = a[k][j];
          a[k][j] = a[lmax][j];
          a[lmax][j] = aux;
        }
      }
    } // fim for k
    // FIM pivotação

  }
} // fim classe AlgoritmoCrout

Porém eu recebo o erro que eu posso perder precisão ao fazer as operações de
atribuição com as variáveis double. Eu sei que se o número for grande vou
perder precisão, porém eu tenho que me conformar com essa perda de
precisão...

Como fazer para o compilador JAVA não "reclamar" disso??


AlgoritmoCrout.java:44: possible loss of precision
found   : double
required: int
          a[k][j] = a[lmax][j];
                      ^
AlgoritmoCrout.java:45: possible loss of precision
found   : double
required: int
          a[lmax][j] = aux;
            ^
2 errors
Exit code: 1
There were errors


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a