Conversão entre Bases [RESOLVIDO]

15 respostas
wesleysilva

ola galera estou criando o programa pra calcular e exibir numero entre bases binario decimal octal e hexadecimal.
mas nao esto conseguindo terminar aqui, qndo o usuario digitar o numero em uma da bases e ele exibir nas outras
bases deve recomeçar o processo e nao estou conseguindo fazer alguem pode me ajudar ai.
olhem meu codigo ai e me ajudem.

import java.io.*;
import java.lang.*;
import java.util.Scanner;
public class  Conversor
{
  public static void main(String[] args)throws IOException
  {
      int menu=0;
              
      Scanner leitor =  new Scanner (System.in);
      
      System.out.println("Bem Vindos ao Programa de Conversão Entre Bases\n\nDigite 1 para Converter entre Bases\nDigite 2 para Créditos\nDigite 3 para Sair");
      menu = leitor.nextInt();
      
      if (menu == 1)
      {    
          System.out.println("Digite a Base de Entrada\n 1 para Decimal\n 2 para Binario\n 3 para Octal\n 4 para Hexadecimal");
          menu = leitor.nextInt();
             
          if (menu == 1)  
              {
                System.out.println("Entre com o valor em Decimal");
                int idec = leitor.nextInt();
                String bin = Integer.toBinaryString(idec);
                System.out.println("Binario: " + bin);
                String hex = Integer.toHexString(idec);
                System.out.println("Hexa decimal: " + hex);
                String oct = Integer.toOctalString(idec);
                System.out.println("Octal: " + oct);
              }
          else if (menu == 2)
              {
                  System.out.println("Entre com o valor em Binario");
                  String sbin=leitor.next();
                  int ibin = Integer.parseInt(sbin, 2);
                  System.out.println("Decimal: " + ibin);
                  String hex = Integer.toHexString(ibin);
                  System.out.println("Hexa decimal: " + hex);
                  String oct = Integer.toOctalString(ibin);
                  System.out.println("Octal: " + oct);
            
              }
          else if (menu == 3)
              {
                  System.out.println("Entre com o valor em octal");
                  String soct=leitor.next();
                  int ioct = Integer.parseInt(soct, 8);
                  System.out.println("Decimal: " + ioct);
                  String hex = Integer.toHexString(ioct);
                  System.out.println("Hexa decimal: " + hex);
                  String bin = Integer.toBinaryString(ioct);
                  System.out.println("Binario: " + bin);
              }
          else if (menu == 4)
              {
                  System.out.println("Entre com o valor em Hexa Decimal");
                  String shex=leitor.next();
                  int ihex= Integer.parseInt(shex, 16);
                  System.out.println("Decimal: " + ihex);
                  String hex = Integer.toBinaryString(ihex);
                  System.out.println("Binario: " + hex);
                  String oct = Integer.toOctalString(ihex);
                  System.out.println("Octal: " + oct);
              }
    
          }
      else if (menu ==2)
        {
            System.out.println("Programa Desenvolvido pelos alunos Wesley Gomes da Silva e Ernesto Miguel da Costa Neto"); 
        }
      else if (menu ==3)
        {
            System.exit(0);
        }
  } 
}

15 Respostas

Rodrigo_Sasaki

Então cara, você não colocou nenhuma estrutura de repetição no seu código, ele simplesmente executa uma vez e pula fora.

Você poderia adicionar uma condição de saída, uma outra opção no menu, e quando essa condição for cumprida ele quebra um loop de repetição

por exemplo:

boolean repetir = true;

while(repetir){

   // todos seus ifs vão aqui

   //no final
   if(menu==10){
      repetir=false;
   }
}
wesleysilva

humm mas como faço isso irmao vc pode me ajudar com esse codigo ai que fiz implemente ai para mim.

Grato.

Rodrigo_Sasaki

Passo 1: Clique no início da linha 13 do seu código.
Passo 2: Segurando a tecla Shift clique imediatamente após o último caracter da linha 74 do seu código.
Passo 3: Segurando a tecla Ctrl do seu teclado, pressione uma vez a tecla ‘c’
Passo 4: crie uma estrutura assim:

while(true){
 // clique aqui.
}

Passo 5: clique na linha indicada pelo comentário.
Passo 6: Segurando a tecla Ctrl do seu teclado, pressione uma vez a tecla ‘v’
Passo 7: altere esta parte do código

else if (menu ==3)   
{   
     System.exit(0);   
}

para que fique assim:

else if (menu ==5)   
{   
     System.exit(0);   
}

o resto acho que você ja consegue descobrir sozinho.

Abraço!
boa sorte, brow!

wesleysilva
import java.io.*;
import java.lang.*;
import java.util.Scanner;
public class  Conversor
{
  public static void main(String[] args)throws IOException
  {
      int menu=0;
              
      Scanner leitor =  new Scanner (System.in);
      
      System.out.println("Bem Vindos ao Programa de Conversão Entre Bases\n\nDigite 1 para Converter entre Bases\nDigite 2 para Créditos\nDigite 3 para Sair");
      menu = leitor.nextInt();

      boolean repetir = true;
        while(true)            
      if (menu == 1)
      {    
          System.out.println("Digite a Base de Entrada\n 1 para Decimal\n 2 para Binario\n 3 para Octal\n 4 para Hexadecimal");
          menu = leitor.nextInt();
      {              
          if (menu == 1)  
              {
                System.out.println("Entre com o valor em Decimal");
                int idec = leitor.nextInt();
                String bin = Integer.toBinaryString(idec);
                System.out.println("Binario: " + bin);
                String hex = Integer.toHexString(idec);
                System.out.println("Hexa decimal: " + hex);
                String oct = Integer.toOctalString(idec);
                System.out.println("Octal: " + oct);
              }
          else if (menu == 2)
              {
                  System.out.println("Entre com o valor em Binario");
                  String sbin=leitor.next();
                  int ibin = Integer.parseInt(sbin, 2);
                  System.out.println("Decimal: " + ibin);
                  String hex = Integer.toHexString(ibin);
                  System.out.println("Hexa decimal: " + hex);
                  String oct = Integer.toOctalString(ibin);
                  System.out.println("Octal: " + oct);
            
              }
          else if (menu == 3)
              {
                  System.out.println("Entre com o valor em octal");
                  String soct=leitor.next();
                  int ioct = Integer.parseInt(soct, 8);
                  System.out.println("Decimal: " + ioct);
                  String hex = Integer.toHexString(ioct);
                  System.out.println("Hexa decimal: " + hex);
                  String bin = Integer.toBinaryString(ioct);
                  System.out.println("Binario: " + bin);
              }
          else if (menu == 4)
              {
                  System.out.println("Entre com o valor em Hexa Decimal");
                  String shex=leitor.next();
                  int ihex= Integer.parseInt(shex, 16);
                  System.out.println("Decimal: " + ihex);
                  String hex = Integer.toBinaryString(ihex);
                  System.out.println("Binario: " + hex);
                  String oct = Integer.toOctalString(ihex);
                  System.out.println("Octal: " + oct);
              }
    
          }
      }
      else if (menu ==2)
        {
            System.out.println("Programa Desenvolvido pelos alunos Wesley Gomes da Silva e Ernesto Miguel da Costa Neto"); 
        }
      else if(menu==10)
      {  
        repetir=false;  
      }  
      else if (menu ==3)
        {
            System.exit(0);
        }
  } 
}

olha como ficou esta certo, so consegue repetir se for o primeiro na outras bases nao ta certo nao onde esta o erro irmao.

Rodrigo_Sasaki

faltou você abrir e fechar o while com as chaves…

e coloque a linha

menu = leitor.nextInt();

dentro do while também, para ele perguntar a opção sempre que o loop voltar ao início

delete a variável repetir, e o if relacionado a ela la embaixo

wesleysilva

ola amigo fechei as chaves so nao estou intendo essa outra parte ai como assim excluir o if, tem como vc implementar ai no meu codigo e postar.

import java.io.*;  
import java.lang.*;  
import java.util.Scanner;

public class  teste01  
{  
public static void main(String[] args)throws IOException  
{  
     int menu=0;  
                
      Scanner leitor =  new Scanner (System.in);  
        
      System.out.println("Bem Vindos ao Programa de Conversão Entre Bases\n\nDigite 1 para Converter entre Bases\nDigite 2 para Créditos\nDigite 3 para Sair");  
       menu = leitor.nextInt();  
       
       while(true)
       {   
          if (menu == 1)  
           {      
             System.out.println("Digite a Base de Entrada\n 1 para Decimal\n 2 para Binario\n 3 para Octal\n 4 para Hexadecimal");  
             menu = leitor.nextInt();  
                               
            if (menu == 1)    
            {  
              System.out.println("Entre com o valor em Decimal");  
              int idec = leitor.nextInt();  
              String bin = Integer.toBinaryString(idec);  
              System.out.println("Binario: " + bin);  
              String hex = Integer.toHexString(idec);  
              System.out.println("Hexa decimal: " + hex);  
              String oct = Integer.toOctalString(idec);  
              System.out.println("Octal: " + oct+"\n");  
             }  
             else if (menu == 2)  
             {  
              System.out.println("Entre com o valor em Binario");  
               String sbin=leitor.next();  
               int ibin = Integer.parseInt(sbin, 2);  
               System.out.println("Decimal: " + ibin);  
               String hex = Integer.toHexString(ibin);  
               System.out.println("Hexa decimal: " + hex);  
               String oct = Integer.toOctalString(ibin);  
               System.out.println("Octal: " + oct);  
                              
             }  
             else if (menu == 3)  
              {  
               System.out.println("Entre com o valor em octal");  
               String soct=leitor.next();  
               int ioct = Integer.parseInt(soct, 8);  
               System.out.println("Decimal: " + ioct);  
               String hex = Integer.toHexString(ioct);  
               System.out.println("Hexa decimal: " + hex);  
               String bin = Integer.toBinaryString(ioct);  
               System.out.println("Binario: " + bin);  
               }  
               else if (menu == 4)  
               {  
                System.out.println("Entre com o valor em Hexa Decimal");  
                String shex=leitor.next();  
                int ihex= Integer.parseInt(shex, 16);  
                System.out.println("Decimal: " + ihex);  
                String hex = Integer.toBinaryString(ihex);  
                System.out.println("Binario: " + hex);  
                String oct = Integer.toOctalString(ihex);  
                System.out.println("Octal: " + oct);  
                }                        
              }  
           else if (menu ==2)  
           {  
            System.out.println("Programa Desenvolvido pelos alunos Wesley Gomes da Silva e Ernesto Miguel da Costa Neto");   
           }  
           else if (menu ==5)     
           {     
            System.exit(0);     
           }     
       }
       }   
   }
Rodrigo_Sasaki

amigo, como eu falei no último post, você tem que adicionar aquela linha dentro do while

assim:

while (true) {
     // a linha abaixo é o código que tem que ser inserido no while
	menu = leitor.nextInt();
		if (menu == 1) {
			System.out.println("Digite a Base de Entrada\n 1 para Decimal\n 2 para Binario\n 3 para Octal\n 4 para Hexadecimal");
			menu = leitor.nextInt();
			if (menu == 1) {
wesleysilva

while(true) { menu = leitor.nextInt(); if (menu == 1) { System.out.println("Digite a Base de Entrada\n 1 para Decimal\n 2 para Binario\n 3 para Octal\n 4 para Hexadecimal"); menu = leitor.nextInt();

assim! esta feito e no final o que devo fazer.

Rodrigo_Sasaki

ta bom, cara… você me convenceu

pra não extender mais este tópico ja te passo o código todo

public static void main(String[] args) throws IOException {
	int menu = 0;

	Scanner leitor = new Scanner(System.in);

	System.out.println("Bem Vindos ao Programa de Conversão Entre Bases\n");

	while (true){	
		System.out.println("Digite 1 para Converter entre Bases\nDigite 2 para Créditos\nDigite 3 para Sair");
		menu = leitor.nextInt();
		if (menu == 1) {
			System.out.println("Digite a Base de Entrada\n 1 para Decimal\n 2 para Binario\n 3 para Octal\n 4 para Hexadecimal");
			menu = leitor.nextInt();
			{
				if (menu == 1) {
					System.out.println("Entre com o valor em Decimal");
					int idec = leitor.nextInt();
					String bin = Integer.toBinaryString(idec);
					System.out.println("Binario: " + bin);
					String hex = Integer.toHexString(idec);
					System.out.println("Hexa decimal: " + hex);
					String oct = Integer.toOctalString(idec);
					System.out.println("Octal: " + oct);
				} else if (menu == 2) {
					System.out.println("Entre com o valor em Binario");
					String sbin = leitor.next();
					int ibin = Integer.parseInt(sbin, 2);
					System.out.println("Decimal: " + ibin);
					String hex = Integer.toHexString(ibin);
					System.out.println("Hexa decimal: " + hex);
					String oct = Integer.toOctalString(ibin);
					System.out.println("Octal: " + oct);

				} else if (menu == 3) {
					System.out.println("Entre com o valor em octal");
					String soct = leitor.next();
					int ioct = Integer.parseInt(soct, 8);
					System.out.println("Decimal: " + ioct);
					String hex = Integer.toHexString(ioct);
					System.out.println("Hexa decimal: " + hex);
					String bin = Integer.toBinaryString(ioct);
					System.out.println("Binario: " + bin);
				} else if (menu == 4) {
					System.out.println("Entre com o valor em Hexa Decimal");
					String shex = leitor.next();
					int ihex = Integer.parseInt(shex, 16);
					System.out.println("Decimal: " + ihex);
					String hex = Integer.toBinaryString(ihex);
					System.out.println("Binario: " + hex);
					String oct = Integer.toOctalString(ihex);
					System.out.println("Octal: " + oct);
				}

			}
		} else if (menu == 2) {
			System.out.println("Programa Desenvolvido pelos alunos Wesley Gomes da Silva e Ernesto Miguel da Costa Neto");
		} else if (menu == 3) {
			System.exit(0);
		}
	}
}
I

Ei digaoneves, só troca os créditos no código que vc passou para o rapaz, já que foi você quem fez não deve aparecer o nome deles

wesleysilva

bom amigo valeu msm te agradeço sou iniciante no eclipse e meu prof. falou que o programa tem que ser todo comentando de acordo com o javadoc,
um amigo meu me falou que tem como comentar automatico no eclipse como eu faço vc tmb pode me ajudar.

I

documentação para javadoc se da com a seguinte sintaxe

/**
	 * <b>Objetivo do Método:</b> Descrição do objetivo do método.<br>
	 * @author Igor Henrique
	 */
         public void seuMetodo(){
    // corpo do método aqui
}

claro que o javadoc pode mudar, pois ele é customizado la em Window->Preferences do eclipse

Rodrigo_Sasaki

fica um link bom aí pra quem quiser

e por favor edite seu primeiro post e coloque [RESOLVIDO] no título… obrigado

abraços

wesleysilva

tem q criar uma nossa class amigo nao tem uma funçao que ja cria os comentarios automatico nao, tem algum link de um video
ensinando.

Rodrigo_Sasaki

Wesley,

Não sei se deu pra perceber, mas você ja está fugindo bastante do tópico que você abriu, então sugiro que pelo menos feche este aqui.

com certeza no GUJ tem muita coisa sobre criação de javadoc, 5 minutos usando aquela barrinha de pesquisa não vão te matar.
e como você aparentemente não sabe muito bem o que é o javadoc, sugiro que faça ele na unha pelo menos dessa vez, se quiser ferramentas ou algo do tipo, acho que é melhor procurar por elas depois.

Obrigado,

Criado 16 de maio de 2011
Ultima resposta 16 de mai. de 2011
Respostas 15
Participantes 3