Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

pedro95

Banner em Java

Recommended Posts

pedro95

Boas :) '

Tenho uma string em hexadecimal do alfabeto, 2D. De que maneira é me possivel criar um banner com um scanner para input do utilizador?

Exemplo de uma letra:

PPP

P P

PPP

P

P

Poderiam dar-me algumas luzes? Assim como também posso usar a string de hex? Não posso utilizar métodos de arrays. Já tentei fazer array bidimensional mas saiu tudo mal... Penso que nem valha a pena mostrar.

Muito obrigado :)

EDIT: Caso seja necessária a string:

int[] LETTERS = {0x69F99, 0xE9E9E, 0x78887, 0xE999E, 0xF8E8F, 0xF8E88, 0x78B96, 0x99F99, 0xF444F, 0xF1196, 0x9ACA9, 0x8888F, 0x9F999, 0x9DFB9, 0x69996, 0xE9E88, 0x699B7, 0xE9EA9, 0x7861E, 0xF4444, 0x99996, 0x99964, 0x999F9, 0x99699, 0x99644, 0xF124F};

(Penso que seja hex)

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
DVD 1993

Boas,

Encontro-me com uma dúvida semelhante em que criei 1 inteiro de letras.

Criei também 2 strings de arrays, no entanto não estou a conseguir converter para código binário as letras e os números, e o programa continua a não resultar e a não apresentar os outputs desejados para o programa em questão.

Edited by DVD 1993

Share this post


Link to post
Share on other sites
Rui Carlos

Boas,

Encontro-me com uma dúvida semelhante em que criei 1 inteiro de letras.

Criei também 2 strings de arrays, no entanto não estou a conseguir converter para código binário as letras e os números, e o programa continua a não resultar e a não apresentar os outputs desejados para o programa em questão.

Podes descrever melhor o problema?

O que é que queres dizer com "converter para código binário as letras e os números"?

No problema inicial do tópico, dá a ideia que tens um array com a representação de cada letra. Por exemplo o 0x69F99 representa um A. Cada dígito hexadecimal contém uma linha de caracteres da letra, que corresponde à representação binária do dígito. Repara no código abaixo, em que convertendo cada dígito de 0x69F99 para binário se obtém um A (formado pelo 1s):

6 0110
9 1001
F 1111
9 1001
9 1001

Se tiveres uma palavra (ou frase), aquilo que tens que fazer é ir imprimindo uma linha de cada vez. Para cada linha, imprimes o código binário de cada carácter para essa linha. Ou seja, vais precisar de uma função que dado um carácter e uma linha, imprima a representação dessa linha para esse carácter.

Algo como:

Converte('A', 1) = "0110";

Converte('A', 2) = "1001";

Converte('A', 3) = "1111";

Converte('A', 4) = "1001";

Converte('A', 5) = "1001";

Podes aproveitar para substituir os 1s por *, e os 0s por espaços, e ficaria:

Converte('A', 1) = " ** ";

Converte('A', 2) = "* *";

Converte('A', 3) = "****";

Converte('A', 4) = "* *";

Converte('A', 5) = "* *";

O algoritmo seria algo deste género:

Para i de 1 a 5
 Para cada caracter c da palavra
   Imprime(Converte(c, i))

Para a função Converte, o operador & dá bastante jeito para extrair as linhas e os bits do número (por exemplo, 0x69F99 & 0x000F0 = 0x00090).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.