Alguem sabe se tem como em um arquivo txt contendo n linhas e em cada linha n inteiros eu pegar, por exemplo, o elemento K questa na linha i e coluna j?
Como se fosse um arraybidimensional o jeito de se pegar o elemento mas quero fazer algo do mesmo tipo num txt.
O meu arquivo txt tem os seguintes dados:
123456
789221
432222
896400
907888
Seriam os coeficientes de um sistemas n x n+1 = 5 x 6. Neste caso estou tratando como se fossem uma matriz. Preciso aplicar nele Gauss.
[code]class Gauss {
Scanner sistema;
public Gauss(Scanner sistema){
this.sistema = sistema;
}
public void aplicandoGauss(){
int grauSistema = 0;
String comprimento = sistema.nextLine();
grauSistema = comprimento.length()-1;
int n = grauSistema;
int n1 = n+1;
for(int k=0; k<n-1; k++){
for(int j=k; j<n1; j++){
matriz[k][j]= matriz[k][j]/matriz[k][k];
}
}[/code]
O algoritimo é muito extenso então coloquei apenas a primeira parte. Ali aonde indica matriz[k][j] é para ser o “sistema(linha k )( posição j)”. É que anteriormente havia feito com array mas não posso usá-lo. E sistema é o arquivo txt que contem os coeficientes.
Como fazer o que preciso? E como fazer para que o valor na posição “k,j” passe a valer o novo valor estabelecido pela operação aritimetica?
Após todo o algoritimo ser executado o arquivo txt atual estará modificado.
Devendo ficar assim:
12345x1
01922x2
00122x3
00010x4
00001x5 em xj, j=1…5 são as soluções…
Para ler o arquivo, use a classe Scanner.
Leia todo o arquivo para a memória, faça os calculos, e grave-o novamente usando a classe FileWriter, associada a um PrintWriter.
[quote=ViniGodoy]Para ler o arquivo, use a classe Scanner.
Leia todo o arquivo para a memória, faça os calculos, e grave-o novamente usando a classe FileWriter, associada a um PrintWriter.[/quote]
Então cara todos os problemas que eu estava tendo com o algoritimo consegui arrumar. Mas passando um sistema grande para ele dentre algumas raizes que ele encontrou ele deu como resultado NaN. E eu não sei o que isso quer dizer exatamente!
Postei um topico sobre isso aqui no forum mas ninguem ainda respondeu. Talvez a galera nem saiba direito o que é. Postei o seguinte:
"Alguem sabe me dizer o que é NaN expecificamente???
A unica coisa que eu encontrei foi que significa Not a Number > Não é um número! Mas então o que é?
Quando e porque pode ocorrer?
Estou implementando um algoritimo que pode acumular erros de arredondamento e muito possivel que pela incapacidade do registrador armazenar numeros muito pequenos
ele trunque o numero tornando o zero ( por exemplo 0.000000000000709797979 >>> truncou antes do 7 >> 0.00000000000 ) e ai ocorrer divisão por este novo numero que se tornou zero! Seria um dos motivos para ocorrer o NaN?