GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por 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

Ir para baixo

Tranformar alfabeto en numeros Empty Tranformar alfabeto en numeros

Mensagem por God_of_war425 Sáb 12 maio 2012, 18:47

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
God_of_war425
God_of_war425

Data de inscrição : 29/10/2011
Reputação : 4
Número de Mensagens : 510
Prêmios : Tranformar alfabeto en numeros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Tranformar alfabeto en numeros Empty Re: Tranformar alfabeto en numeros

Mensagem por MatheusReis Sáb 12 maio 2012, 19:28

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:

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);
Recomendo colar no GM antes de ler, ajuda a visualizar.

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/
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : Tranformar alfabeto en numeros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

Tranformar alfabeto en numeros Empty Ual

Mensagem por God_of_war425 Sáb 12 maio 2012, 19:32

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?.
God_of_war425
God_of_war425

Data de inscrição : 29/10/2011
Reputação : 4
Número de Mensagens : 510
Prêmios : Tranformar alfabeto en numeros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Tranformar alfabeto en numeros Empty Re: Tranformar alfabeto en numeros

Mensagem por MatheusReis Sáb 12 maio 2012, 19:47

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.
Tranformar alfabeto en numeros Creeperfaces
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : Tranformar alfabeto en numeros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

Tranformar alfabeto en numeros Empty Re: Tranformar alfabeto en numeros

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos