Digamos que em um algoritmo é necessário que pelo menos 3 de 5 condições sejam verdadeiras para tomar uma ação. Como testar isto? Fazer um emaranhado de if? Pior, se somente 3 de 5 tem que ser verdadeiras? Fazer um emaranhado maior?
Como falado no do artigo C: Ser ou no ser - Boolean (Recomendo a leitura antes de continuar a ler este artigo.), uma operação lógica pode ser uma operação inteira que retorna 0 (falso) ou 1 (verdade). Então podemos somar o resultado das operações lógicas e ainda compará-lo:
if(
(
( a < b ) +
( b < c ) +
( d < e ) +
( e == f ) +
( a != f )
) == 3
)
{
/* ... */
}
No exemplo acima, se as 3 comparações de variáveis forem verdadeiras, então o if será verdadeiro.
Este tipo de necessidade é muito rara, mas já passei por isto em um processo de detecção de formas em imagens digitalizadas.
Eu já tenho um blog principalmente de fotografia, mas aqui pretendo falar de computação, dando dicas, truques etc. O nome veio do fictício Necronomicon, que pelo que eu li, seria um livro praticamente perdido, com poucos exemplares sobreviventes, e ainda por cima proibido, ensinando uma arte perdida, muito pouco conhecida, chegando a ser muito perigosa. É neste sentido que uso como origem do nome deste blog. Para maiores detalhes, leia o artigo mais antigo publicado.
Nenhum comentário:
Postar um comentário