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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


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