Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
Tranformar alfabeto en numeros
2 participantes
Página 1 de 1
Tranformar alfabeto en numeros
Eu queria saber como posso transformar o alfabeto em numero exemplo:
A = 1
B = 2
C = 3
D = 4
E = 5
e assim até z como posso fazer iso?
eu digito eae em numeros ficaria assim
515 eu queria saber como fazer iso.agradeso a quem responde.flw
A = 1
B = 2
C = 3
D = 4
E = 5
e assim até z como posso fazer iso?
eu digito eae em numeros ficaria assim
515 eu queria saber como fazer iso.agradeso a quem responde.flw
God_of_war425- Data de inscrição : 29/10/2011
Reputação : 4
Número de Mensagens : 510
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Tranformar alfabeto en numeros
O computador usa um código numérico para identificar as letras, que vai de 0 a 255 (no nosso padrão). A função ord('A') retorna esse número. (no caso, ele vai retornar o valor de A), enquanto a função char() faz o inverso (converte o numero em letra, segundo o código). O alfabeto segue na ordem 'normal' nesse código numérico(ex: se A for 28, B é 29), então podemos converter as letras usando isso:
Onde letra é a letra que queremos converter para número.
Testes de mesa:
Se a letra for A
valor_numerico = ord('A') - ord('A') +1;
valor_numerico = 1;
Já sabemos que com o valor inicial a conta dá certo. Tentemos outra letra:
Se a letra for D
valor_numerico = ord('D') - ord('A') +1
Sabemos que a diferença de A para D é 3;
valor_numerico = 3 + 1;
valor_numerico = 4;
Novamente bateu com a tabela.
Mas essa equação só converte uma única letra. Para montar um número a partir de uma sequencia de letras teremos que tornar esse sistema mais complexo. Precisaremos usar comandos de tratamento de strings. (eles lidam com textos ou pedaços de texto, assim podemos fazer coisas como inverter uma frase ou construir novas apartir de trechos de outras.)
Para tratar letras como números (ex: AEC vale 153) precisaremos verificar cada letra dentro do texto, encontrar seu número correspondente e assim montar o número final, convertido.
Eu vou postar o código completo, mas vou explicar os seus trechos:
Mas tem um problema no seu pedido. Se queremos usar o alfabeto como números, não podemos usar todos.
Se usarmos de A a Z, os valores convertidos irão de 1 a 27, quando na verdade os algarismos vão de 0 a 9. Então, você deverá usar apenas 10 letras nessa conversão.
A equação valor_numerico = ord(letra) - ord('A') +1 não consegue obter 0 usando letras. Então eu recomendo que faça com que as letras sejam de A a J, e que A seja 0. Isso muda a equação:
Espero ter ajudado. Até o/
- Código:
valor_numerico = ord(letra) - ord('A') +1;
Onde letra é a letra que queremos converter para número.
Testes de mesa:
Se a letra for A
valor_numerico = ord('A') - ord('A') +1;
valor_numerico = 1;
Já sabemos que com o valor inicial a conta dá certo. Tentemos outra letra:
Se a letra for D
valor_numerico = ord('D') - ord('A') +1
Sabemos que a diferença de A para D é 3;
valor_numerico = 3 + 1;
valor_numerico = 4;
Novamente bateu com a tabela.
Mas essa equação só converte uma única letra. Para montar um número a partir de uma sequencia de letras teremos que tornar esse sistema mais complexo. Precisaremos usar comandos de tratamento de strings. (eles lidam com textos ou pedaços de texto, assim podemos fazer coisas como inverter uma frase ou construir novas apartir de trechos de outras.)
Para tratar letras como números (ex: AEC vale 153) precisaremos verificar cada letra dentro do texto, encontrar seu número correspondente e assim montar o número final, convertido.
Eu vou postar o código completo, mas vou explicar os seus trechos:
- Código:
numero_em_letras=get_string('Insira as letras a serem convertidas','');
//esse comando lança uma caixa de diálogo para pegar o número na forma de letras, e os salva em numero_em_letras
tamanho=string_length(numero_em_letras);
//pega a largura (número de letras) desse numero.
//
//Para converter o numero em letras PRESERVANDO as posições deles, montaremos um novo texto.
//Ele conterá o numero convertido mas na forma de texto, para que no fim usemos uma função mais fácil.
//vamos iniciar esse texto como sendo vazio
texto='';
for(i=1;i<=tamanho;i+=1){
//inicia um loop onde i varia de 1 até a posição da última letra do número inserido(variável tamanho).
//assim, poderemos converter cada número, 1 a 1, e montar o novo.
letra_atual=string_char_at(numero_em_letras,i);
//pega a letra na posição i dentro do numero, para que possamos convertê-la
valor_numerico=ord(letra_atual)-ord('A')+1;
//usando a equação mostrada acima, convertemos a letra atual em numero.
//
//agora, converteremos o numero em texto novamente, para montar uma forma convertida.
//ex: "a" vira "1" ao invéz de 1.
texto=texto+string(valor_numerico);
//string converte numero em texto
//ex: string(15) é "15"
};
//Agora vamos mostrar uma mensagem na tela comparando o numero_em_letras com a forma convertida.
show_message(numero_em_letras + ' = ' + texto);
//a variável texto ainda é uma string, falta convertê-lo para um número. Faremos isso com a função real()
//ex: real('856') é 856
valor_convertido=real(texto);
Mas tem um problema no seu pedido. Se queremos usar o alfabeto como números, não podemos usar todos.
Se usarmos de A a Z, os valores convertidos irão de 1 a 27, quando na verdade os algarismos vão de 0 a 9. Então, você deverá usar apenas 10 letras nessa conversão.
A equação valor_numerico = ord(letra) - ord('A') +1 não consegue obter 0 usando letras. Então eu recomendo que faça com que as letras sejam de A a J, e que A seja 0. Isso muda a equação:
- Código:
valor_numerico = ord(letra) - ord('A');
Espero ter ajudado. Até o/
Ual
So avizando que não vou clicar e copiar,vou dar crtl+c kkkkk zuera
nossa fico codigo enorme,vlw ajudo vou estudar seu codigo vlw
alguem aqui joga minicraft?.
nossa fico codigo enorme,vlw ajudo vou estudar seu codigo vlw
alguem aqui joga minicraft?.
God_of_war425- Data de inscrição : 29/10/2011
Reputação : 4
Número de Mensagens : 510
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Tranformar alfabeto en numeros
O código é pequeno, o que ocupou espaço foram as explicações. Se algo não ficou claro, apenas pergunte.
Minecraft? Conheço isso não.
Minecraft? Conheço isso não.
Tópicos semelhantes
» [dúvida]tranformar gml em outros tipos
» Como tranformar cada letra que eu digitar em simbolo
» Como eu faço um Objeto se tranformar em outro pelo mouse?
» Sorteio de Números
» Só exibir numeros que nao sao 1
» Como tranformar cada letra que eu digitar em simbolo
» Como eu faço um Objeto se tranformar em outro pelo mouse?
» Sorteio de Números
» Só exibir numeros que nao sao 1
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos