ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

(In)Lógica Ultra Mega Super Hiper avancada

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Off-Topic
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Qua Jan 04, 2017 10:26 am    Assunto: (In)Lógica Ultra Mega Super Hiper avancada Responder com Citação

fala galera, o vcs me dizem de um programador q usa esta lógica:

Código:
case varBool = False of
   True: begin

      { codigo aqui }

   end;

   False: begin

      { codigo aqui }

   end;
end;


inovador não?
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Qua Jan 04, 2017 10:39 am    Assunto: Responder com Citação

Rapaz, nunca vi nada parecido com isso, ele provavelmente está trabalhando em algo bem avançado.

realmente, parece bem inovador
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Qua Jan 04, 2017 11:13 am    Assunto: Responder com Citação

Não entendi o que é estranho no código.
Alguém pode explicar.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Qua Jan 04, 2017 1:51 pm    Assunto: Responder com Citação

codigo original:

Código:
case varBool = False of
   True: begin

      { codigo aqui }

   end;

   False: begin

      { codigo aqui }

   end;
end;


simplificando a leitura do codigo:

é verdadeiro q a variavel é falsa?
se é verdadeiro faça ...
se é falso faça ...

confuso nao??? e ainda tem varios trechos assim kakka
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Qua Jan 04, 2017 2:37 pm    Assunto: Responder com Citação

O trecho é confuso a primeira vista sim, contudo explicável da seguinte forma:

Existe uma variável verdadeira ou falsa qual quero executar algo quando esta premissa for o inverso sem alterar o valor da variável inicialmente ou seja:

Código:

case varBool = False of // varbool é verdadeiro ou falso e quero que a mesma se mantenha assim para uso em outro ponto qualquer do codigo
   True: begin  // caso variável varbool falso reconheço que devo disparar este bloco
      { codigo aqui }
   end;
   False: begin // caso contrario este outro aqui
      { codigo aqui }
   end;
end;


Contudo isso é só forma de escrever o código que pode ser a mesma a mesma coisa que:

Código:
case not varBool of
   True: begin
      { codigo aqui }
   end;
   False: begin
      { codigo aqui }
   end;
end;


Concordo que quem escreveu o código poderia simplesmente fazer:

Código:
case varBool of
   True: begin
      // escrever aqui o código levando o valor inverso da variável
   end;
   False: begin
      // escrever aqui o código levando o valor inverso da variável
   end;
end;



Situação desta não é comum ser vista, mais a logica de quem programou, na cabeça de quem programa estar correta hehehehe.
E por incrível que pareça é funcional apesar de não muito compreensível a primeira vista.

Já trabalhei em códigos o qual existia casos similar o qual existia variáveis booleana o qual testava-se os valores inverso das mesma sem poder alterar seu valores para isso, neste caso o uso do not vem ser uma mão na roda, quando a situação não se dá para contornar em apenas na troca do trecho de blocos como mencionei no ultimo codigo.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Qua Jan 04, 2017 2:42 pm    Assunto: Responder com Citação

Ele tb poderia desprezar o uso case e usado uma estrutura de ifs com o comando not o que deixaria as coisa mais clara.

Código:
if not varBool then
begin
//
end else
begin
//
end;

_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Qua Jan 04, 2017 2:47 pm    Assunto: Responder com Citação

Por fim, falando do programador que escreveu tal código como pedido no post, posso dizer que este programador é iniciante, pois algo do tipo só mesmo sendo iniciante, que ainda estar a conhecer logica de programação, assim escreveu um código que funcionava e não um código melhor compreensível.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Qua Jan 04, 2017 3:51 pm    Assunto: Responder com Citação

eu tb usaria uma das duas formas, mas como ja esta assim.
Código:
case varBool of
   True: begin
      // escrever aqui o código levando o valor inverso da variável
   end;
   False: begin
      // escrever aqui o código levando o valor inverso da variável
   end;
end;


Código:
if not varBool then
begin
//
end else
begin
//
end;


e aproveitando, o programador nao é iniciante, tvz nao seja experiente. mas nao vou mexer no codigo. ta funcionando, vai q eu mexo no codigo e da zica kakaka
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Qui Jan 05, 2017 4:27 pm    Assunto: Responder com Citação

to olhando o codigo e to rezando pra NÃO encontrar algo assim:

Código:
case NOT(var_boolean = False) of
   True:
   False:
end;


meu coracao ja ta acelerado so de pensar huahuahua
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Off-Topic Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB