[Resolvido]Número mais próximo

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

[Resolvido]Número mais próximo

Mensagem por Luiz A. Oliveira em Qui 10 Jan 2013, 17:19

Bem gente, suponhamos que eu tenha uma variável que contenha números de 0 á 180.
Escolhi 3 pontos principais dentro desse valor, por exemplo A=45, B=90, C=180.
A variável pode ter outros valores mas eu quero identificar de qual desses valores (A, B ou C) está mais próximo.
Como faço isso?


Última edição por luiz_100juizo em Qui 10 Jan 2013, 18:19, editado 1 vez(es)

Luiz A. Oliveira

Ranking : Nota C
Número de Mensagens : 914
Idade : 19
Data de inscrição : 08/09/2010
Notas recebidas : D-B-C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Número mais próximo

Mensagem por RafaelCazarotto em Qui 10 Jan 2013, 17:34

perai deixa eu ver se entendi direito... vc quer fazer tipo checar se o numero ex: o numero 30 vc quer checar se ele esta por exemplo no grupo A
se for isso não é dificil na teoria Very Happy tenta assim
if tuavariavel>0 and tuavariavel<45
{
grupo=A
}
if tuavariavel>46 and tuavariavel<90
{
grupo=B
}
if tuavariavel>91 and tuavariavel<180
{
grupo=C
}
acho que é isso cara, espero que tenh entendido Very Happy não sei se vai dar certo, fiz isso na hora não testei, se vc não quer isso ou não deu certo me manda uma mp Very Happy
flw

RafaelCazarotto

Ranking : Nota C
Número de Mensagens : 564
Idade : 19
Data de inscrição : 15/03/2012
Notas recebidas : D-D-D-C-C-B
Reputação : 13
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]Número mais próximo

Mensagem por Luan Maia em Qui 10 Jan 2013, 17:53

Acho que seja isso:
Código:

if (abs(var-A) == abs(var-B))
{
//Tão próximo de A quanto de B
}
else if (abs(var-A)<abs(var-B))
{
//Próximo de A
}
else if (abs(var-B)<abs(var-A) and abs(var-B)<abs(var-C))
{
//Próximo de B
}
else if (abs(var-B) == abs(var-C))
{
//Tão próximo de B quanto de C
}
else if (abs(var-C)<abs(var-B))
{
//Próximo de C
}
Substitui var pela variável e as letras pelos valores que disse acima.

Luan Maia

Ranking : Sem avaliações
Número de Mensagens : 399
Idade : 20
Data de inscrição : 01/07/2010
Notas recebidas : D+C+C+D
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://blogluanmaia.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Número mais próximo

Mensagem por Luiz A. Oliveira em Qui 10 Jan 2013, 17:54

Sim é isso, mas agora para complicar mais suponhamos que o número máximo (180) acabasse onde começasse, tipo um circulo. Eu esqueci de dizer isso na pergunta..

Luiz A. Oliveira

Ranking : Nota C
Número de Mensagens : 914
Idade : 19
Data de inscrição : 08/09/2010
Notas recebidas : D-B-C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Número mais próximo

Mensagem por Luan Maia em Qui 10 Jan 2013, 18:13

Acho que você quis dizer 360. Happy
Mas fica assim, varx é a variável com o valor que vai verificar:
Código:

//Verificar quantas círculos já se formou
var = varx;
for (i=floor(varx/360); i>0; i-=1;) //Verifica quantos círculos completos se formaram antes do valor de varx
{
var -= 360; //Vai subtraindo um círculo até ficar sem nenhum círculo completo
}


//Verificar proximidade
if (abs(var-A) == abs(var-B))
{
//Tão próximo de A quanto de B
}
else if (abs(var-A)<abs(var-B))
{
//Próximo de A
}
else if (abs(var-B)<abs(var-A) and abs(var-B)<abs(var-C))
{
//Próximo de B
}
else if (abs(var-B) == abs(var-C))
{
//Tão próximo de B quanto de C
}
else if (abs(var-C)<abs(var-B))
{
//Próximo de C
}
A variável "var" seria usada somente para fazer a verificação.


Última edição por Luan Maia em Qui 10 Jan 2013, 19:07, editado 1 vez(es)

Luan Maia

Ranking : Sem avaliações
Número de Mensagens : 399
Idade : 20
Data de inscrição : 01/07/2010
Notas recebidas : D+C+C+D
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://blogluanmaia.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Número mais próximo

Mensagem por Luiz A. Oliveira em Qui 10 Jan 2013, 18:18

Valeu cara, estou fazendo tipo um controle analógico no GMS. Consegui fazer com 8 "pólos".

Luiz A. Oliveira

Ranking : Nota C
Número de Mensagens : 914
Idade : 19
Data de inscrição : 08/09/2010
Notas recebidas : D-B-C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Número mais próximo

Mensagem por Luan Maia em Qui 10 Jan 2013, 19:15

Interessante, posta para o pessoal ver, quando você terminar. Smile
Fiz uma engine de exemplo para caso alguém algum dia procure pela mesma coisa e ache este tópico.
Download

Luan Maia

Ranking : Sem avaliações
Número de Mensagens : 399
Idade : 20
Data de inscrição : 01/07/2010
Notas recebidas : D+C+C+D
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://blogluanmaia.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Resolvido]Número mais próximo

Mensagem por Thopson1m em Qui 10 Jan 2013, 23:18

Tópico trancado, pois a dúvida do autor foi resolvida.
Caso necessites, favor se dirigir à mim ou à qualquer outro moderador para destrancar este seu tópico.

Thopson1m

Número de Mensagens : 624
Idade : 26
Data de inscrição : 21/05/2011
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://gnbr.forumeiros.com

Voltar ao Topo Ir em baixo

Re: [Resolvido]Número mais próximo

Mensagem por Conteúdo patrocinado Hoje à(s) 10:47


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