[Resolvido]Par ou impar?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Resolvido]Par ou impar?

Mensagem por Kapoty em Sab 01 Set 2012, 13:57

Minha duvida é o seguinte :

Como saber se um numero de uma string é par ou impar? exemplos :

var = 0 ou seja ela é par
var = 1 ou seja ela é impar

Preciso muito disso, obrigado!


Última edição por kapoty em Qua 05 Set 2012, 16:14, editado 1 vez(es)

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por PedroX em Sab 01 Set 2012, 14:05

Código:
impar = (variavel mod 2);

if (impar)
{

}
else
{

}

Isso porque se você dividir um número por 2, se ele for par terá resto 0, mas se for ímpar, terá resto 1.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por Kapoty em Sab 01 Set 2012, 14:10

Pedrø escreveu:
Código:
impar = (variavel mod 2);

if (impar)
{

}
else
{

}

Isso porque se você dividir um número por 2, se ele for par terá resto 0, mas se for ímpar, terá resto 1.

Obrigado pedro resolveu a minha duvida, mas uma perguntinha básica :

O mod divide o numero todas as vezes possíveis por 2 ? Por que se dividirmos por exemplo 40 por 2 teríamos 20 que ao dividir por 2 teríamos 10 que ao dividir por 2 teríamos 5 ? Oque o mod faz exatamente?

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por PedroX em Sab 01 Set 2012, 14:13

Ele faz isso:

40 / 2 = 20

20 * 2 = 40

40 - 40 = 0

21 / 2 = 10

10 * 2 = 20

21 - 20 = 1

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por Kapoty em Sab 01 Set 2012, 14:22

Pedrø escreveu:Ele faz isso:

40 / 2 = 20

20 * 2 = 40

40 - 40 = 0

21 / 2 = 10

10 * 2 = 20

21 - 20 = 1

Até mais!

Pronto resolvido!

Caso alguém estiver se perguntando por que eu estou querendo saber se uma variável é par ou impar é pelo seguinte :

No tópico do dark trap do nosso amigo JOZ ele fez com que os objetos tivessem as suas cores de acordo com digamos um tabuleiro de damas, preto e branco de acordo com sua posição e para isso ele usou um código que ele mesmo divulgou que é este :

Código:
//s_qd=bloco sólido
//s_qdt=bloco transparênte

if (x/sprite_width) mod 2
{
    if (y/sprite_height) mod 2
    {
        sprite_index=s_qd
    }
    else
    {
        sprite_index=s_qdt
    }
}
else
{
    if (y/sprite_height) mod 2
    {
        sprite_index=s_qdt
    }
    else
    {
        sprite_index=s_qd
    }
}

Ai eu fiquei tentando descobrir a logica disso tudo, e quando eu pensei bem percebi uma coisa nesta parte (x/sprite_width) digamos que temos uma sprite de 32*32 e ela esteja na posição 32 entao teríamos o seguinte resultado : 32/32 = 1 ou seja o resultado foi impar mas caso a nossa sprite estivesse na posição 64 teríamos o seguinte resultado : 64/32 = 2 ou seja o resultado foi par e com estes resultados poderiamos fazer o seguinte :

Posições :

32 = bloco preto
64 = bloco branco
96 = broco preto
etc...

Pois só agora com sua ajuda consegui desvendar a base deste código!

Obrigado novamente!

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por moisesBR em Sab 01 Set 2012, 14:27

Quero aproveitar a questão e complementar a pergunta de Kapoty:

Como dizer ao gm que certos números são par ou impar?
Tipo:
Se é 0 é par e 1 é impar que pode também ser true ou false.

Mas e se o resultado for diferentes desses? (final de cada) 0, 1, 2, 3, 4, 5, 6, 7, 8 ou 9.
Mas dizer isso manualmente, um por um ao gm, seria uma insanidade! Ainda mais se os números excedesse o limite das centenas!

Minha ideia é que se o resultado de uma divisão de um, número for igual então será par!
Que acham?

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por Kapoty em Sab 01 Set 2012, 14:39

moisesBR escreveu:Quero aproveitar a questão e complementar a pergunta de Kapoty:

Como dizer ao gm que certos números são par ou impar?
Tipo:
Se é 0 é par e 1 é impar que pode também ser true ou false.

Mas e se o resultado for diferentes desses? (final de cada) 0, 1, 2, 3, 4, 5, 6, 7, 8 ou 9.
Mas dizer isso manualmente, um por um ao gm, seria uma insanidade! Ainda mais se os números excedesse o limite das centenas!

Minha ideia é que se o resultado de uma divisão de um, número for igual então será par!
Que acham?

Se eu entendi bem oque voce quer e pegar por exemplo todos os numeros pares de 0 a 10, se for isto mesmo acabei de desenvolver um codigo aqui :

Código:
//se quiser retornar os numeros pares use este codigo
for (i=0;i<=10;i+=1)
{
if !(i mod 2)
{show_message(i)}
}
//se quiser retornar os numeros impares use este codigo
for (i=0;i<=10;i+=1)
{
if (i mod 2)
{show_message(i)}
}

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por moisesBR em Sab 01 Set 2012, 17:05

Não testei esse seu code ainda(mas farei) mas pelo jeito deve funcionar, eu só queria complicar um pouco(kkkkk)

Na verdade é uma dúvidazinha que sempre me perturbou. Ainda não cheguei a precisar, mas gosto de saber e quando precisar estarei pronto. O que eu queria dizer era, supondo que o número seja qualquer outro, e que ultrapassasse a casa das dezenas e fosse um qualquer aleatório!

Não é só até 10... imagine que esse tal número chegasse a milhares acima!
Na minha opinião, como disse acima:
se o resultado de uma divisão de um, número for igual então será par!
é... talvez eu já saiba a resposta, mas preciso de outras opiniões para confirmar ou não

1251 / 2 = 620,5
apesar de 620,5+620,5=1252, o resultado não foi um inteiro

1250 / 2 = 625. 1259 =(625+625).
O resultado da divisão(625) não deu par mas o que interessa é que o antigo deu pra dividir em 2números inteiros, me levando a antigos conceitos:
"todo número terminado em 0, 2, 4, 6 e 8, são divisiveis em 2 partes iguais"
O que me leva a crer que não importará o tamanho do número, se terminar num desses acima(0, 2, 4, 6 e 8 ), serão sempre par!

ex(num qualquer exageradamente) dividido por 2:
9837573783728822/2=4918786891864411

Que acham?


Última edição por moisesBR em Sab 01 Set 2012, 17:19, editado 1 vez(es)

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por Mr.Brum em Sab 01 Set 2012, 17:16

ueh mas é isso mesmo...

Os números pares são números cuja sua divisão por 2, não deixa resto.
E é assim que o mod trabalha, ele retorna o resto da divisão.

EX: 22/2=11
Código:
if (22 mod 11)==0 show_message("Par!") else  show_message("Ímpar!")
*Não houve restos, logo o resultado foi 0.

Se houver um resto qualquer que seja, ele é ímpar.
EX: 21/2=10.5
2*10=20 ; 21-20=1
logo o mod será igual a 1.

Mr.Brum

Ranking : Nota C
Número de Mensagens : 913
Idade : 25
Data de inscrição : 28/04/2011
Notas recebidas : D + D + C + C + D + B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por moisesBR em Sab 01 Set 2012, 17:24

blz então. (e o tópico nem é meu kkk! E o dono deu por resolvido)!

Concluindo: também não importa o resultado da divisão, desde que dê um inteiro no final, seja ele 1, 3, 5, 7 ou 9! Aresolvidiú!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por PedroX em Sab 01 Set 2012, 17:56

O que o GM neste caso faz é pegar a parte inteira da divisão.

E outra coisa, qualquer número dividido por 2 deixa resto 0 ou 1. Essa é a base da teoria dos números binários. Qualquer número dividido por 3 deixa resto 0, 1 ou 2. Qualquer dividido por 4, deixa resto 0, 1, 2 ou 3. E por aí vai.

Pense assim:

Ao usar 101 mod 2, o Game Maker vai tirar 2 de 101 até não dar mais.

101, 99, 97, ..., 7, 5, 3, 1.

Ou seja, 101 mod 2 é igual a 1.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por moisesBR em Sab 01 Set 2012, 19:30

esse troço de mod é que me atrapalhou...

O que eu tava tentando dizer é que:
se o número qualquer(acima de 10), fosse divisível em duas partes iguais, e que essas duas partes fossem inteiras, então o número antes da divisão, seria considerado par!

Pelo que entendi, esta fórmula faz isso! mas ainda não entendi esse tal mod.
Desculpe-me soy mesmo um mentecapto...

pode por favor me explicar esse tal mod? juro que, não voltarei postar aqui neste tópico a não ser tenha compreendido.
E... desculpe kapoty... devia ter criado um tópico...
Como disse, é uma dúvida que sempre me incomodou, e se etá incomodando deve ser importante. Obrigado

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por Mr.Brum em Sab 01 Set 2012, 20:25

Pense no mod da seguinte maneira:
Ele captura o restante da divisão:


Pra sabermos se um número é par(múltiplo de 2) , nós fazemos a divisão desse número por 2 e observamos se haverá resto. Se houver é ímpar, senão houver é par.

se o número qualquer(acima de 10), fosse divisível em duas partes iguais, e que essas duas partes fossem inteiras, então o número antes da divisão, seria considerado par!
Isso está certo, pois se os 2números resultantes da divisão são inteiros significa que não houve resto.
EX: 10/2 = 5

Mr.Brum

Ranking : Nota C
Número de Mensagens : 913
Idade : 25
Data de inscrição : 28/04/2011
Notas recebidas : D + D + C + C + D + B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por moisesBR em Sab 01 Set 2012, 21:08

Obrigado! Bem... agora se eu não tivesse entendido, seria melhor puxar carrroça!

Bem obrigado a todos! Creio que isto vai ajudar muitos outros que talvez nem postem aqui, mas ao pesquisar algo sobre isso terá um conteúdo maior assim como eu tinha minhas quase certezas, essa de mod eu não sabia!

Mais uma vez agradeço e... Kapoty: resolvestes teu problema e ganhastes umas explicações a mais, graças a minha intromissão. Então bote [Resolvido] nesse trem uai!
Valeu!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Par ou impar?

Mensagem por Conteúdo patrocinado Hoje à(s) 00:59


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum