Procurar
Últimos assuntos
Tópicos mais visitados
Os membros mais ativos da semana
Nenhum usuário |
Trabalho de "Conversão de Bases”
3 participantes
Página 1 de 1
Trabalho de "Conversão de Bases”
Trabalho do Roberto. Mande dicas.
Anderson G S- Mensagens : 20
Data de inscrição : 02/04/2012
Função Converter para Numero.
- Código:
public static int converterParaNumero(char simbolo){
switch(simbolo){ //Compara a variavel simbolo (String) com cada caso e retorna o valor inteiro.
case '0': return 0;
case '1': return 1;
case '2': return 2;
case '3': return 3;
case '4': return 4;
case '5': return 5;
case '6': return 6;
case '7': return 7;
case '8': return 8;
case '9': return 9;
case 'A': return 10;
case 'B': return 11;
case 'C': return 12;
case 'D': return 13;
case 'E': return 14;
case 'F': return 15;
}
return 0; //Retorna 0 só para não existir 0, mas não é nesseçario.
}
Anderson G S- Mensagens : 20
Data de inscrição : 02/04/2012
Função Converter para Caracter.
- Código:
public static char converterParaCaracter(int digito){
switch(digito){ //Compara a variavel simbolo (Int) com cada caso e retorna o valor em forma de caracter.
case 0: return '0';
case 1: return '1';
case 2: return '2';
case 3: return '3';
case 4: return '4';
case 5: return '5';
case 6: return '6';
case 7: return '7';
case 8: return '8';
case 9: return '9';
case 10: return 'A';
case 11: return 'B';
case 12: return 'C';
case 13: return 'D';
case 14: return 'E';
case 15: return 'F';
}
return 0; //Retorna 0 só para não existir 0, mas não é nesseçario.
}
Anderson G S- Mensagens : 20
Data de inscrição : 02/04/2012
Função Converter.
- Código:
public static void converter(int baseOrigem, int baseDestino, String numOrigem){ //Imcompleta.
int numeroDecimal=0;
if(baseOrigem == baseDestino){
System.out.println("Não é necesario converter.");
System.out.println("O valor de "+numOrigem+" na base "+qualBase(baseOrigem)+" é "+numOrigem+".");
switch (baseOrigem){
case 1:
numeroDecimal = converterDeBaseParaDecimal(BINARIO, numOrigem);
break;
case 2:
numeroDecimal = converterDeBaseParaDecimal(OCTAL, numOrigem);
break;
case 3:
numeroDecimal = converterDeBaseParaDecimal(DECIMAL, numOrigem);
break;
case 4:
numeroDecimal = converterDeBaseParaDecimal(HEXADECIMAL, numOrigem);
break;
}
switch (baseDestino){
case 1:
converterDeDecimalParaBase(BINARIO, numeroDecimal, numOrigem);
break;
case 2:
converterDeDecimalParaBase(OCTAL, numeroDecimal, numOrigem);
break;
case 3:
converterDeDecimalParaBase(DECIMAL, numeroDecimal, numOrigem);
break;
case 4:
converterDeDecimalParaBase(HEXADECIMAL, numeroDecimal, numOrigem);
break;
}
}
}
}
Anderson G S- Mensagens : 20
Data de inscrição : 02/04/2012
Implementações
Amigos,
Assim que tiver um tempinho, provavelmente neste fds, posto algumas coisinhas que estou implementando no trabalho.
abs,
daniel
Assim que tiver um tempinho, provavelmente neste fds, posto algumas coisinhas que estou implementando no trabalho.
abs,
daniel
dg- Mensagens : 3
Data de inscrição : 20/04/2012
esse foi o meu codigo....
import java.util.Scanner;
/***
* Programa: SistemasNumeracao.java
* Autor...: Geovane Silva costa
* Data....: 13/04/2012
* Objetivo: Programa para implementar a um sistema de conversão entre bases binária,
* octal, decimal e hexadecimal.
*/
public class SistemasNumeracao {
static final int BINARIA = 2; // Constante que representa o sistema de numeração binário
static final int OCTAL = 8; // Constante que representa o sistema de numeração octal
static final int DECIMAL = 10; // Constante que representa o sistema de numeração decimal
static final int HEXADECIMAL = 16; // Constante que representa o sistema de numeração haxadecimal
public static void main(String[] args) {
int baseOrigem, // Variável numérica que representa o sistema de numeração de origem no processo de conversão
baseDestino; // Variável numérica que representa o sistema de numeração destino (alvo) no processo de conversão
String numStrOrig, // Valor (string) a ser convertido na base de orgiem
numStrDest = ""; // Valor (string) convertido para a base destino
Scanner scr = new Scanner(System.in);
System.out.print("Sejam bem vindos ao sistema \nde conversão de bases.\n\nDigite uma tecla para executar o programa.");
String resp = scr.next();
do{
System.out.println("\nEscolha a base de origem que deseja converter. ");
baseOrigem = Menu(0);
System.out.println("\nEscolha para qual base será convertido. ");
baseDestino = Menu(0);
System.out.print("\nDigite o valor que deseja converter: ");
numStrOrig = scr.next();
Converter (baseOrigem, baseDestino, numStrOrig, numStrDest);
System.out.print ( "\nDeseja continuar (S/N) ? ");
resp = scr.nextLine();
do {
resp = scr.nextLine();
if ( !resp.equalsIgnoreCase("s" ) && !resp.equalsIgnoreCase("n" ) )
System.out.println("Entrada inválida. Digite novamente: ");
} while ( !resp.equalsIgnoreCase("s" ) && !resp.equalsIgnoreCase("n" ) );
} while ( resp.equalsIgnoreCase ( "s" ) );
System.out.print("Sistema encerrado.");
}
/**
* Subrotina: ConverterParaNumero
* Descrição: Algoritmo que realiza a conversão de tipos de dados, de caracter (simbolo)
* para inteiro (seu valor numérico correspondente).
* Tipo de Retorno: int
* Parâmetros Recebidos:
* - simbolo: char, representa o símbolo a ser convertido em um valor numérico
*/
public static int ConverterParaNumero ( char simbolo ) {
switch ( simbolo ) {
case '0': return 0;
case '1': return 1;
case '2': return 2;
case '3': return 3;
case '4': return 4;
case '5': return 5;
case '6': return 6;
case '7': return 7;
case '8': return 8;
case '9': return 9;
case 'A': return 10;
case 'B': return 11;
case 'C': return 12;
case 'D': return 13;
case 'E': return 14;
default: return 15;
}
}
/**
* Subrotina: ConverterParaCaractere
* Descrição: Algoritmo que realiza a conversão de tipos de dados, de inteiro (digito)
* para caractere (seu símbolo correspondente).
* Tipo de Retorno: String
* Parâmetros Recebidos:
* - digito: int, representa o valor a ser convertido para um símbolo.
*/
public static String ConverterParaCaractere ( int digito ) {
switch ( digito ) {
case 0: return "0";
case 1: return "1";
case 2: return "2";
case 3: return "3";
case 4: return "4";
case 5: return "5";
case 6: return "6";
case 7: return "7";
case 8: return "8";
case 9: return "9";
case 10: return "A";
case 11: return "B";
case 12: return "C";
case 13: return "D";
case 14: return "E";
default: return "F";
}
}
/**
* Subrotina: ConverterDeBaseParaDecimal
* Descrição: Converte um valor, dado em algum dos sistemas de numeração, para o sistema decimal.
* Tipo de Retorno: int
* Parâmetros Recebidos:
* - base: int, sistema de numeração de origem,
* - numStr: String, valor a ser convertido na forma de uma cadeia de caracteres.
*/
public static int ConverterDeBaseParaDecimal ( int base, String numStr ) {
int expoente = 0, // Expoente utilizado no processo de conversão. Valor 0 (zero) para o símbolo menos significativo,
valorConvertido = 0; // Valor acumulado dos produtos parciais (dígito x potência da base elevada ao expoente).
for ( int i = numStr.length() - 1; i >= 0; i-- )
valorConvertido = valorConvertido + ConverterParaNumero ( numStr.charAt ( i ) ) * (int) Math.pow( base, expoente++ );
return ( valorConvertido );
}
/**
* Subrotina: ConverterDeDecimalParaBase
* Descrição: Converte um valor, dado em decimal, para algum sistema de numeração da base.
* Tipo de Retorno: void
* Parâmetros Recebidos:
* - base: int, sistema de numeração de origem,
* - numero: int, sitema de numeração para realizar a divisão.
* - numStr: String,
*/
public static void ConverterDeDecimalParaBase(int base, int numero, String numStr){
int nNumero; // o numero que sera convertido.
int resto; // será o resto da divisão.
String letra; // será utulizada para converter os simbolos das numeração hexadecimal.
String novoNumStr =""; // variável usada para receber a converção do número.
//bloco de comandos para a converção dos números.
while(numero>0){
nNumero = numero / base;
resto = numero - (nNumero * base);
letra = ConverterParaCaractere ( resto);
novoNumStr = letra.concat(novoNumStr);
numero = nNumero;
}
System.out.println("O numero é: "+novoNumStr);
}
/**
* Subrotina: Menu
* Descrição: Informar para o usuário os tipos de converção poderá ser usada.
* Tipo de Retorno: int
* Parâmetros Recebidos:
* - num: int, sistem de numeração que recebe o valor da opção escolhida pelo o usuário.
*/
public static int Menu(int num) {
System.out.println ("*******************");
System.out.println ("* 1 - Binária *");
System.out.println ("* 2 - Octal *");
System.out.println ("* 3 - Decimal *");
System.out.println ("* 4 - Hexadecimal *");
System.out.println ("*******************");
System.out.println ("Digite sua opção: ");
Scanner Src = new Scanner(System.in);
num = Src.nextInt();
//Bloco de comandos para criticar algum número que não esteja no menu.
while((num < 1) || (num > 4)){
System.out.println("\n Número invalido. \n Digite novamente!!!");
num = Src.nextInt();
}
return num; // retorna a opção escolhida pelo o usuario.
}
/**
* Subrotina: Converter
* Descrição: converte os números informado pelo usuário e converte para base desejada.
* Tipo de Retorno: void
* Parâmetros Recebidos:
* - baseOrigem: int, sistema de numeração de origem no processo de conversão,
* - baseDestino: int, sistema de numeração destino (alvo) no processo de conversão,
* - numStrOrig: String, Valor (string) a ser convertido na base de orgiem,
* - numStrDest: String, Valor (string) convertido para a base destino.
* @return
*/
public static void Converter ( int baseOrigem, int baseDestino, String numStrOrig, String numStrDest ) {
int NumeroDecimal = 0;
if ( baseOrigem == baseDestino){
System.out.println("NENHUMA CONVERSÃO É NECESSÁRIA.");
}
// Primeiro bloco da estrutuda de seleção, para converter de uma base qualquer para decimal.
switch ( baseOrigem ) {
case 1:
NumeroDecimal = ConverterDeBaseParaDecimal(BINARIA, numStrOrig);
break;
case 2:
NumeroDecimal = ConverterDeBaseParaDecimal(OCTAL, numStrOrig);
break;
case 3:
NumeroDecimal = ConverterDeBaseParaDecimal(DECIMAL, numStrOrig);
break;
case 4:
NumeroDecimal = ConverterDeBaseParaDecimal(HEXADECIMAL, numStrOrig);
break;
}
// Segundo bloco da estrutura de seleção, para converter da base decimal para outra base.
switch ( baseDestino ) {
case 1:
ConverterDeDecimalParaBase(BINARIA, NumeroDecimal, numStrDest);
break;
case 2:
ConverterDeDecimalParaBase(OCTAL, NumeroDecimal, numStrDest);
break;
case 3:
ConverterDeDecimalParaBase(DECIMAL, NumeroDecimal, numStrDest);
break;
case 4:
ConverterDeDecimalParaBase(HEXADECIMAL, NumeroDecimal, numStrDest);
break;
}
}
}
/***
* Programa: SistemasNumeracao.java
* Autor...: Geovane Silva costa
* Data....: 13/04/2012
* Objetivo: Programa para implementar a um sistema de conversão entre bases binária,
* octal, decimal e hexadecimal.
*/
public class SistemasNumeracao {
static final int BINARIA = 2; // Constante que representa o sistema de numeração binário
static final int OCTAL = 8; // Constante que representa o sistema de numeração octal
static final int DECIMAL = 10; // Constante que representa o sistema de numeração decimal
static final int HEXADECIMAL = 16; // Constante que representa o sistema de numeração haxadecimal
public static void main(String[] args) {
int baseOrigem, // Variável numérica que representa o sistema de numeração de origem no processo de conversão
baseDestino; // Variável numérica que representa o sistema de numeração destino (alvo) no processo de conversão
String numStrOrig, // Valor (string) a ser convertido na base de orgiem
numStrDest = ""; // Valor (string) convertido para a base destino
Scanner scr = new Scanner(System.in);
System.out.print("Sejam bem vindos ao sistema \nde conversão de bases.\n\nDigite uma tecla para executar o programa.");
String resp = scr.next();
do{
System.out.println("\nEscolha a base de origem que deseja converter. ");
baseOrigem = Menu(0);
System.out.println("\nEscolha para qual base será convertido. ");
baseDestino = Menu(0);
System.out.print("\nDigite o valor que deseja converter: ");
numStrOrig = scr.next();
Converter (baseOrigem, baseDestino, numStrOrig, numStrDest);
System.out.print ( "\nDeseja continuar (S/N) ? ");
resp = scr.nextLine();
do {
resp = scr.nextLine();
if ( !resp.equalsIgnoreCase("s" ) && !resp.equalsIgnoreCase("n" ) )
System.out.println("Entrada inválida. Digite novamente: ");
} while ( !resp.equalsIgnoreCase("s" ) && !resp.equalsIgnoreCase("n" ) );
} while ( resp.equalsIgnoreCase ( "s" ) );
System.out.print("Sistema encerrado.");
}
/**
* Subrotina: ConverterParaNumero
* Descrição: Algoritmo que realiza a conversão de tipos de dados, de caracter (simbolo)
* para inteiro (seu valor numérico correspondente).
* Tipo de Retorno: int
* Parâmetros Recebidos:
* - simbolo: char, representa o símbolo a ser convertido em um valor numérico
*/
public static int ConverterParaNumero ( char simbolo ) {
switch ( simbolo ) {
case '0': return 0;
case '1': return 1;
case '2': return 2;
case '3': return 3;
case '4': return 4;
case '5': return 5;
case '6': return 6;
case '7': return 7;
case '8': return 8;
case '9': return 9;
case 'A': return 10;
case 'B': return 11;
case 'C': return 12;
case 'D': return 13;
case 'E': return 14;
default: return 15;
}
}
/**
* Subrotina: ConverterParaCaractere
* Descrição: Algoritmo que realiza a conversão de tipos de dados, de inteiro (digito)
* para caractere (seu símbolo correspondente).
* Tipo de Retorno: String
* Parâmetros Recebidos:
* - digito: int, representa o valor a ser convertido para um símbolo.
*/
public static String ConverterParaCaractere ( int digito ) {
switch ( digito ) {
case 0: return "0";
case 1: return "1";
case 2: return "2";
case 3: return "3";
case 4: return "4";
case 5: return "5";
case 6: return "6";
case 7: return "7";
case 8: return "8";
case 9: return "9";
case 10: return "A";
case 11: return "B";
case 12: return "C";
case 13: return "D";
case 14: return "E";
default: return "F";
}
}
/**
* Subrotina: ConverterDeBaseParaDecimal
* Descrição: Converte um valor, dado em algum dos sistemas de numeração, para o sistema decimal.
* Tipo de Retorno: int
* Parâmetros Recebidos:
* - base: int, sistema de numeração de origem,
* - numStr: String, valor a ser convertido na forma de uma cadeia de caracteres.
*/
public static int ConverterDeBaseParaDecimal ( int base, String numStr ) {
int expoente = 0, // Expoente utilizado no processo de conversão. Valor 0 (zero) para o símbolo menos significativo,
valorConvertido = 0; // Valor acumulado dos produtos parciais (dígito x potência da base elevada ao expoente).
for ( int i = numStr.length() - 1; i >= 0; i-- )
valorConvertido = valorConvertido + ConverterParaNumero ( numStr.charAt ( i ) ) * (int) Math.pow( base, expoente++ );
return ( valorConvertido );
}
/**
* Subrotina: ConverterDeDecimalParaBase
* Descrição: Converte um valor, dado em decimal, para algum sistema de numeração da base.
* Tipo de Retorno: void
* Parâmetros Recebidos:
* - base: int, sistema de numeração de origem,
* - numero: int, sitema de numeração para realizar a divisão.
* - numStr: String,
*/
public static void ConverterDeDecimalParaBase(int base, int numero, String numStr){
int nNumero; // o numero que sera convertido.
int resto; // será o resto da divisão.
String letra; // será utulizada para converter os simbolos das numeração hexadecimal.
String novoNumStr =""; // variável usada para receber a converção do número.
//bloco de comandos para a converção dos números.
while(numero>0){
nNumero = numero / base;
resto = numero - (nNumero * base);
letra = ConverterParaCaractere ( resto);
novoNumStr = letra.concat(novoNumStr);
numero = nNumero;
}
System.out.println("O numero é: "+novoNumStr);
}
/**
* Subrotina: Menu
* Descrição: Informar para o usuário os tipos de converção poderá ser usada.
* Tipo de Retorno: int
* Parâmetros Recebidos:
* - num: int, sistem de numeração que recebe o valor da opção escolhida pelo o usuário.
*/
public static int Menu(int num) {
System.out.println ("*******************");
System.out.println ("* 1 - Binária *");
System.out.println ("* 2 - Octal *");
System.out.println ("* 3 - Decimal *");
System.out.println ("* 4 - Hexadecimal *");
System.out.println ("*******************");
System.out.println ("Digite sua opção: ");
Scanner Src = new Scanner(System.in);
num = Src.nextInt();
//Bloco de comandos para criticar algum número que não esteja no menu.
while((num < 1) || (num > 4)){
System.out.println("\n Número invalido. \n Digite novamente!!!");
num = Src.nextInt();
}
return num; // retorna a opção escolhida pelo o usuario.
}
/**
* Subrotina: Converter
* Descrição: converte os números informado pelo usuário e converte para base desejada.
* Tipo de Retorno: void
* Parâmetros Recebidos:
* - baseOrigem: int, sistema de numeração de origem no processo de conversão,
* - baseDestino: int, sistema de numeração destino (alvo) no processo de conversão,
* - numStrOrig: String, Valor (string) a ser convertido na base de orgiem,
* - numStrDest: String, Valor (string) convertido para a base destino.
* @return
*/
public static void Converter ( int baseOrigem, int baseDestino, String numStrOrig, String numStrDest ) {
int NumeroDecimal = 0;
if ( baseOrigem == baseDestino){
System.out.println("NENHUMA CONVERSÃO É NECESSÁRIA.");
}
// Primeiro bloco da estrutuda de seleção, para converter de uma base qualquer para decimal.
switch ( baseOrigem ) {
case 1:
NumeroDecimal = ConverterDeBaseParaDecimal(BINARIA, numStrOrig);
break;
case 2:
NumeroDecimal = ConverterDeBaseParaDecimal(OCTAL, numStrOrig);
break;
case 3:
NumeroDecimal = ConverterDeBaseParaDecimal(DECIMAL, numStrOrig);
break;
case 4:
NumeroDecimal = ConverterDeBaseParaDecimal(HEXADECIMAL, numStrOrig);
break;
}
// Segundo bloco da estrutura de seleção, para converter da base decimal para outra base.
switch ( baseDestino ) {
case 1:
ConverterDeDecimalParaBase(BINARIA, NumeroDecimal, numStrDest);
break;
case 2:
ConverterDeDecimalParaBase(OCTAL, NumeroDecimal, numStrDest);
break;
case 3:
ConverterDeDecimalParaBase(DECIMAL, NumeroDecimal, numStrDest);
break;
case 4:
ConverterDeDecimalParaBase(HEXADECIMAL, NumeroDecimal, numStrDest);
break;
}
}
}
backers- Mensagens : 1
Data de inscrição : 19/05/2012
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Sáb maio 19, 2012 4:38 pm por backers
» O meu Código.
Qua maio 16, 2012 3:07 pm por Admin
» Livro de matematica..
Qua maio 02, 2012 11:57 am por guiltm
» Brincado com as matrizes em C
Qua Abr 25, 2012 3:26 pm por Narciso CS
» Como encontrar um numero Primo na matriz?
Ter Abr 24, 2012 12:14 pm por Admin
» EXERCÍCIOS – MÓDULO 02
Sáb Abr 14, 2012 11:41 am por Anderson G S
» Soma de Pares, Soma de Impares, Maior, Menor, Soma e Media
Qua Abr 11, 2012 12:45 pm por Convidado
» EXERCÍCIOS – MÓDULO 01
Qua Abr 11, 2012 1:25 am por Anderson G S
» Como perguntar se ele deseja continuar jogando?
Qua Abr 04, 2012 5:39 pm por Anderson G S