Programa que converte para notação binaria

8 respostas
G
import java.util.Scanner;

import <a href="http://java.io">java.io</a>.*;

import javax.swing.JOptionPane;

public class Exercicio1 {

public static void main (String []args) {

Scanner input = new Scanner (System.in);

int num;

JOptionPane.showInputDialog("Digite o nome do arquivo: ");

try {

String FileName = input.next();

input = new Scanner (new File(FileName));

while (input.hasNext()) {

num = input.nextInt();

String by = Integer.toBinaryString(num);

if (num == 0) break;

JOptionPane.showMessageDialog(null,“A conversão dos números contidos no arquivo é:” + by);

}

}

catch (FileNotFoundException e) {

System.out.println(Arquivo não existente.);

}

catch (InputMismatchException e) {

System.out.println(Valor lido não é inteiro válido.);

}

}

}

8 Respostas

ViniGodoy

Oi. Comece editando o tópico e seguindo essas dicas:
http://www.guj.com.br/posts/list/50115.java

Também é uma boa dar um exemplo de como é o formato do seu arquivo.

Say

To com a mesma duvida do rapaz aí entao vo corrigir pra ele pra ver si algem ver si tem algum erro no CF dele

import java.util.InputMismatchException; 
import java.util.Scanner; 
import java.io.*; 
import javax.swing.JOptionPane; 
public class Exercicio1 { 
public static void main (String []args) { 
Scanner input = new Scanner (System.in); 
int num; 
JOptionPane.showInputDialog("Digite o nome do arquivo: "); 
try { 
String FileName = input.next(); 
input = new Scanner (new File(FileName)); 
while (input.hasNext()) { 
num = input.nextInt(); 
String by = Integer.toBinaryString(num); 
if (num == 0) break; 

JOptionPane.showMessageDialog(null,"A conversão dos números contidos no arquivo é:" + by); 



} 
} 
catch (FileNotFoundException e) { 
System.out.println("Arquivo não existente."); 
} 
catch (InputMismatchException e) { 
System.out.println("Valor lido não é inteiro válido."); 
} 
} 
}
ViniGodoy

Valeu a intenção, mas isso ainda não corrige a formatação do código. Além disso, sem ele dizer como os dados estão gravados no arquivo, fica muito difícil ajudar.

G

O meu arquivo é formado basicamente por inteiros.

0 02 03 07 08 09 15 7 17 31 32 33 34 23 24 25 63 64 65 127 128 129 130 0

ViniGodoy

Ok, isso você já tinha dito. Mas seu exemplo esclareceu que os inteiros estão separados por espaços. Pq poderia ser um único inteiro por linha, ou terem outro separador, como ponto-e-virgula.
Você também não disse que erro está dando em seu programa… que erro é?

G

Então, só não estou sabendo com entrar com o arquivo externo! Quando tento digitar o diretorio nao da certo. Daí nao sei se e pq tah errado meu CF ou se eh pq o arquivo tah errado.

ViniGodoy

Toque essas linhas:

Scanner input = new Scanner (System.in); int num; JOptionPane.showInputDialog("Digite o nome do arquivo: "); try { String FileName = input.next();

Por isso aqui:

String FileName = JOptionPane.showInputDialog("Digite o nome do arquivo: ");

Se vc vai usar um InputDialog, não tem pq ler do System.in.

G

Entendi, obrigado!
Só mais uma pergunta:
Mudando de assunto…

Voce poderia me ajudar a montaruma tabela em java da seguinte forma:
Tenho que converter uma temperatura de celsius para fahrenheit ou vice versa, e a partir disso imprimir uma tabela em que digito um intervalo, por exemplo de 0 a 100, e o passo, de 10 em 10 por exemplo. A tabela, após a conversao, deve ficar do tipo:
Fahrenheit Centigrados
10 -12.22
20 -6.67
30 -1.11
40 4.44
50 10.00
60 15.56
70 21.11
80 26.67
90 32.22
100 37.78

Consegui montar o CF para conversao mas nao para a impressao da tabela
Obrigado msm!

import java.util.Scanner;

public class Exercicio4 {

public static void main (String [] args) {

Scanner entrada = new Scanner(System.in);
System.out.println("Digite um valor : ");

double number = entrada.nextDouble();

System.out.println(Digite 1 para converter de Celsius para  Fahrenheit:);

System.out.println(Digite 2 para converter de Fahrenheit para Celsius:);

System.out.print("Escolha 1 ou 2: “);

if(entrada.nextByte() == 1)

System.out.println(number + " graus em Celsius equivale a  " + obterFahrenhiet(number) + " graus em Fahrenhit!);
else

System.out.println(number + " graus em Fahrenheit equivale a " + obterCelsius(number) + " graus em Celsius!");

}

public static double obterFahrenhiet(double c){

return ((c * 9 / 5) + 32);

}

public static double obterCelsius(double f){

return ((f - 32) * 5 / 9);

}

}
Criado 10 de outubro de 2009
Ultima resposta 12 de out. de 2009
Respostas 8
Participantes 3