Operadores Logicos
Operadores lógicos, como operadores ariméticos
As estruturas de programação, como a [Estruturas_de_Seleção | estrutura de seleção] e a [Estruturas_de_Repetição | estrutura de repetição] podem mudar o comportamento de um código. Dependendo de como o código está montado essas estruturas permitem a execução (ou repetição) de parte do código apenas em determinadas situações. O que vai decidir se o código dentro daquela estrutura deve ser executado (como em estruturas de seleção) ou se deve ser repetido 1 ou 10 vezes (como em estruturas de repetição) é seu parâmetro lógico.
Os parâmetros lógicos podem ser verdadeiros ou falsos, se forem verdadeiros a condição é cumprida e o código dentro da estrutura é executado (ou repetido, dependendo da estrutura), se não, aquela area do código é ignorada ou redirecionada.
Por exemplo:
[Estruturas_de_Seleção || Estrutura de seleção]
SE chovendo ENTÃO ESCREVA("Melhor levar um guarda-chuva");
[Estruturas_de_Repetição | Estrutura de repetição]
ENQUANTO chovendo FAÇA ESCREVA("Não vou sair de casa, ainda está chovendo"); ESCREVA("Finalmente parou de chover!");
Os exemplos acima possuem em seu parâmetro uma variável que pode ser verdadeira ou falsa, porem, os parâmetros lógicos também podem ser construidos como expressões aritméticas.
Por exemplo:
SE idade MENOR QUE 18 ENTÃO ESCREVA("Você é menor de idade!");
SE preço MAIOR OU IGUAL QUE 10 ENTÃO ESCREVA("Isso é bem caro!");
Apesar de toda flexibilidade no código que os parâmetros lógicos possibilitam, é fácil se perder usando-os e criando um código confuso e difícil de entender. Por exemplo:
SE(sol) ENTÃO SE (calor) ENTÃO ESCREVA("Maria vai ao parque! :) ");
SE(preço <= 10) ENTÃO ESCREVA("eu posso comprar isso") SE NÃO SE(dinheiro > 10) ENTÃO escreva("eu posso comprar isso")
Para isso possuímos operadores lógicos:
Operador 'E'
//Explicar necessidade do operadores E O operador 'E', também chamado de conjunção, funciona como a palavra 'e', fornecendo a intercessão entre dois elementos. Para a condição ser cumprida os dois elementos precisam ser verdadeiros. Por exemplo: "Maria vai ao parque se estiver sol e calor", nesse exemplo Maria vai ao parque apenas se as duas condições forem cumpridas, se houver sol mas não estiver calor ou se não houver sol mas estiver calor Maria não vai ao parque.
//TABELA VERDADE
Sol | Calor | Ela vai ao parque? |
---|---|---|
Sim | Sim | Sim |
Sim | Não | Não |
Não | Sim | Não |
Não | Não | Não |
Pseudocódigo SE(sol E calor) ENTÃO ESCREVA("Maria vai ao parque! :) "); SE NÃO ESCREVA("Maria não vai ao parque! :( "); ________________________ Linguagem C if(sol && calor){ printf("Maria vai ao parque! :) "); }else{ printf("Maria não vai ao parque! :( "); } ________________________ C++ if(sol && calor){ cout << "Maria vai ao parque! :) "; }else{ cout << "Maria não vai ao parque! :( "; } ________________________ Python if sol and calor: print('Maria vai ao parque! :) ') else: print('Maria não vai ao parque! :( ')
Operador 'OU'
//Explicar necessidade do operadores OU
Diferente do operador lógico 'E' que necessita que ambos os parâmetros lógicos sejam verdadeiros para a condição ser cumprida, o operador 'OU' precisa que apenas um deles seja verdadeiro. Esse operador lógico só será falso quando ambos os parâmetros lógicos forem falsos.
Eu fiz | Você fez | A tarefa foi feita? |
---|---|---|
Sim | Sim | Sim |
Sim | Não | Sim |
Não | Sim | Sim |
Não | Não | Não |
Pseudocódigo SE(euFiz OU voceFez) ENTÃO ESCREVA("A tarefa foi feita"); SE NÃO ESCREVA("A tarefa não foi feita"); ________________________ Linguagem C if(euFiz || voceFez){ printf("A tarefa foi feita"); }else{ printf("A tarefa não foi feita"); } ________________________ C++ if(euFiz || voceFez){ cout << "A tarefa foi feita"; }else{ cout << "A tarefa não foi feita"; } ________________________ Python if euFiz or voceFez: print('A tarefa foi feita') else: print('A tarefa não foi feita')
Operador 'NÃO'
//Explicar necessidade do operadores NÃO Diferente dos outros operadores já citados esse operador necessita apenas de um parâmetro lógico para funcionar. A função desse operador é alterar a leitura do parâmetro lógico para seu valor inverso, se esse parâmetro possuir o valor 'verdadeiro', com esse operador, será se lido o valor 'falso', e se o parâmetro possuir o valor 'falso' será lido o valor 'verdadeiro'. Algumas das representações mais classicas do símbolo de negação são: ~, !, NOT, e ¬
//TABELA VERDADE
Valor | ~Valor |
---|---|
Sim | Não |
Não | Sim
//resolver um exemplo nas linguagens C, c++, python, e pseudo código |