Mudanças entre as edições de "Operadores Logicos"

Linha 161: Linha 161:
 
//Explicar necessidade do operadores 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'.
 
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
 +
<table border="1" cellpadding="2">
 +
<caption>Maria vai ao parque?</caption>
 +
<tr><th> Valor <th> ~Valor
 +
<tr><th>Sim<td>Não
 +
<tr><th>Não<td>Sim
  
 
<pre>
 
<pre>
 
//resolver um exemplo nas linguagens C, c++, python, e pseudo código
 
//resolver um exemplo nas linguagens C, c++, python, e pseudo código
 
</pre>
 
</pre>

Edição das 18h51min de 21 de junho de 2020

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

Maria vai ao parque?
Sol CalorEla vai ao parque?
SimSimSim
SimNãoNão
NãoSimNão
NãoNãoNã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.

A tarefa foi feita?
Eu fiz Você fez A tarefa foi feita?
SimSimSim
SimNãoSim
NãoSimSim
NãoNãoNã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

Maria vai ao parque?
Valor ~Valor
SimNão
NãoSim
//resolver um exemplo nas linguagens C, c++, python, e pseudo código