Caros amigos…
implemente a sequencia de Fibonacci de forma que aparece apenas a possição solicitada. Mas, na hora foi mudar de
System.out.println
para
JOptionPane.showInputDialog(" ! Digite a posição na Sequencia: " );
e
JOptionPane.showMessageDialog(null,"Posição "+(i+3)+" = "+d);
não funcionou. Alguem poderia me dizer onde esta o erro?
meu codigo completo
package br.com.fibonassi;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JOptionPane;
// Sequência de Fibonassi
public class Fibonassi
{
public static void main(String[] args) throws IOException
{
// metodo q ira fazer a leitura
BufferedReader teclado = new BufferedReader(new InputStreamReader( System.in ));
String posicao;
int a=1;
int b=1;
int c=0;
int d=0;
int i=0;
System.out.println();
System.out.print(" ! Digite a posição na Sequencia: " );
posicao = teclado.readLine();
c = Integer.parseInt(posicao);
while ((i+3)!=c)
{
++i;
d=a+b;
a=b;
b=d;
//System.out.println ("Posição "+(i+3)+" = "+d);
}
System.out.println ("Posição "+(i+3)+" = "+d);
}
}
Fala cara, blza?
Vc postou o código com o System.out.println().
Poste o seu código com JOptionPane para saber onde esta o erro.
Aliás, mostra alguma mensagem de erro?
Abraço
Caro cleyvison,
Acho que sua dúvida é esta:
[code] import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JOptionPane;
// Sequência de Fibonassi
public class Fibonassi
{
public static void main(String[] args) throws IOException
{
BufferedReader teclado = new BufferedReader(new InputStreamReader( System.in ));
String posicao;
int a=1;
int b=1;
int c=0;
int d=0;
int i=0;
System.out.println();
JOptionPane.showMessageDialog(null, " ! Digite a posição na Sequencia: " );
posicao = teclado.readLine();
c = Integer.parseInt(posicao);
while ((i+3)!=c)
{
++i;
d=a+b;
a=b;
b=d;
//System.out.println ("Posição "+(i+3)+" = "+d);
}
JOptionPane.showMessageDialog(null, "Posição "+ (i+3) +" = " +d);
}
} [/code]
Espero ter ajudado.
[quote=Eduardog]Caro cleyvison,
Acho que sua dúvida é esta:
[code] import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JOptionPane;
// Sequência de Fibonassi
public class Fibonassi
{
public static void main(String[] args) throws IOException
{
BufferedReader teclado = new BufferedReader(new InputStreamReader( System.in ));
String posicao;
int a=1;
int b=1;
int c=0;
int d=0;
int i=0;
System.out.println();
JOptionPane.showMessageDialog(null, " ! Digite a posição na Sequencia: " );
posicao = teclado.readLine();
c = Integer.parseInt(posicao);
while ((i+3)!=c)
{
++i;
d=a+b;
a=b;
b=d;
//System.out.println ("Posição "+(i+3)+" = "+d);
}
JOptionPane.showMessageDialog(null, "Posição "+ (i+3) +" = " +d);
}
} [/code]
Espero ter ajudado.[/quote]
??? Não entendi.
JOptionPane.showMessageDialog(null, " ! Digite a posição na Sequencia: " );
Para qual variável vai a posição digitada?
Não deveria ser assim?
posicao = JOptionPane.showInputDialog(null,"! Digite a posição na Sequencia: ");
c = Integer.parseInt(posicao);
Não seria isso???
Abraço
deixe eu tentar me expressar melhor
package br.com.fibonacci;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JOptionPane;
// Sequência de Fibonacci
public class Fibonacci
{
public static void main(String[] args) throws IOException
{
// metodo q ira fazer a leitura
BufferedReader teclado = new BufferedReader(new InputStreamReader( System.in ));
String posicao;
int a=1;
int b=1;
int c=0;
int d=0;
int i=0;
System.out.println();
System.out.print(" Digite a posição na Sequencia: " ); /* Aqui insiro a posição que quero da sequencia*/
JOptionPane.showInputDialog(null, " ! Digite a posição na Sequencia: " ); // Esta parte funciona
posicao = teclado.readLine();
c = Integer.parseInt(posicao);
while ((i+3)!=c)
{
++i;
d=a+b;
a=b;
b=d;
//System.out.println ("Posição "+(i+3)+" = "+d);
}
System.out.println ("Posição "+(i+3)+" = "+d);/* para mostra o resoltadfo na consele assim funciona*/
JOptionPane.showMessageDialog(null, "Posição "+ (i+3) +" = " +d); /*Mas, o que eu quero é isso aqui e não ta funcionando */
}
}
acho que agora me expressei melhor…
um abrçao
Então cara,
Eu colei seu código aqui e funcionou.
Mostrou no console e no showMessageDialog() o resultado, normalmente.
Com vc não chega nem a mostrar ou é outra coisa?
Mostra erro?
Abraço
Não mostra erro. A primeira “caixa” é apresentada mas, ele não mostar o resultado
JOptionPane.showInputDialog(null, " ! Digite a posição na Sequencia: " );
posicao = teclado.readLine();
c = Integer.parseInt(posicao);
while ((i+3)!=c)
{
++i;
d=a+b;
a=b;
b=d;
//System.out.println ("Posição "+(i+3)+" = "+d);
}
JOptionPane.showMessageDialog(null, "Posição "+ (i+3) +" = " +d);
Então cara, o showInputDialog() precisa de um retorno, que neste caso será uma String.
é só vc pegar a String “posicao”, que vc estava usando com o BufferedReader e usar assim:
posicao = JOptionPane.showInputDialog(null," ! Digite a posição na Sequencia: " );
c = Integer.parseInt(posicao);
Daí vc nem precisa do BufferedReader
Tente ai.
Abraço
mas, isso eu estou fazendo aqui
JOptionPane.showInputDialog(null, " ! Digite a posição na Sequencia: " );
posicao = teclado.readLine();
c = Integer.parseInt(posicao);
Não cara,
No meu exemplo, o conteúdo digitado no showInputDialog() vai para a String “posicao”.
No seu, o showInputDialog() não tem uma variável para retornar o resultado. e aí ele espera pelo readLine() do BufferedReader para armazenar na String “posicao”.
No seu código, se vc tirar o showInputDialog() vai dar na mesma.
No meu, se tirar não vai funcionar.
Vamos fazer de outro jeito:
Tire o BufferedReader e faça assim:
c = Integer.parseInt(JOptionPane.showInputDialog(null, " ! Digite a posição na Sequencia: " ));
O que vc digitar já vai cair na conversão.
Faça os testes.
Abraço
agora funcionou
package br.com.fibonacci;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JOptionPane;
// Sequência de Fibonacci
public class Fibonacci
{
public static void main(String[] args) throws IOException
{
// metodo q ira fazer a leitura
BufferedReader teclado = new BufferedReader(new InputStreamReader( System.in ));
String posicao = null;
int a=1;
int b=1;
int c=0;
int d=0;
int i=0;
posicao = JOptionPane.showInputDialog(null, " ! Digite a posição na Sequencia: " );
c = Integer.parseInt(posicao);
while ((i+3)!=c)
{
++i;
d=a+b;
a=b;
b=d;
}
JOptionPane.showMessageDialog(null, "Posição "+ (i+3) +" = " +d);
}
}
a questao era a seguinte
posicao = teclado.readLine(); // este comando não captura informações digitadas na "caixa", so lê console...
fazendo assim
posicao = JOptionPane.showInputDialog(null, " ! Digite a posição na Sequencia: " );
minha variavel “posicao” recebo o valor digitado dai na linha seguinte converto e o resto são os calculos…
muito obrigado ao que me auxuliaram nesta tarefa…