Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

Operadores Lógicos E (&&), OU (||) e de Negação (!)

Vimos no artigo passado de nossa apostila de C, uma explicação sobre valores lógicos true ou false em computação.

Vamos agora entrar mais em detalhes e ver como é possível representar informações apenas com true ou false, 1 ou 0.
E bem como o artigo passado, usaremos apenas idéias e conceitos, nada de código por hora.

Operador lógico 'E' em linguagem C: &&

Vamos supor que você passou em um concurso, o cargo é para ser programador e trabalhar para o governo.
No edital você leu: é necessário ser brasileiro e ser maior de 18 anos.

Ou seja, você só pode fazer esse concurso se for brasileiro E TAMBÉM se tiver de 18 anos ou mais.
Se for brasileiro mas tiver menos de 18 anos, não pode.
Se tiver mais de 18 anos mas não for brasileiro, também não pode.

Ou seja: todas as condições devem ser obedecidas para termos um resultado positivo (que no caso é poder fazer o concurso).

Vamos agora trazer para o nosso mundo da programação em linguagem C.
Esse E, vamos representar por &&

Então, para fazer o concurso: (ser brasileiro) && (ter 18 anos ou mais)
Vamos supor que você é brasileiro. Vamos representar esse fato como '1', pois é verdade.
Vamos supor que você tem 18 anos, representaremos isso pelo valor lógico '1' também.

Então: 1 && 1 resulta em verdade, ou 1.

E se você for menor?
Nossa expressão fica: 1 && 0, que resulta em resultado negativo, ou 0. Então você não pode fazer o concurso.

Operador lógico 'OU' em linguagem C: ||

Vamos supor que você quer trabalhar em outro país, no Canadá por exemplo.
Para isso ser possível você deve ser canadense OU ser casado com uma canadense.

Se você for canadense, mas não for casado com uma, pode trabalhar? Sim, pode.
Se você não for canadense, mas for casado com uma canadense, pode trabalhar lá? Sim, pode.

Pode porque para isso ser possível (para ser verdade), é necessário ser canadense OU ser casado com uma.
Preenchendo apenas um dos requisitos, você está apto e o resultado é positivo.
E se você for canadense e casado com uma canadense? Ora, é óbvio que pode também.

Esse OU será representado em programação pelo símbolo: ||

Então: "1 || 0" resulta em valor lógico verdadeiro (true, ou 1)
"0 || 1" também, assim como "1 || 1" também vai resultar em valor lógico verdadeiro.

Assim, para expressões que possuem a condição OU (||), se uma das condições for verdadeira, toda a sentença será.
E para a expressão ser falsa, todas as condições devem ser falsas.

Bem óbvio, não?



Operador lógico de negação em linguagem C: !

Agora está bem claro pra você que as condições e expressões ou são verdadeiras (true ou 1) ou são falsas (false ou 0).

Quando queremos negar algo, colocamos o símbolo ! antes do que queremos negar.
Por exemplo, 1 + 1 é dois?
A resposta é sim, ou '1'. Ou '!0', pois o contrário de 0 é 1.

2 + 2 é três? Falso ou 0. Ou '!1', pois o contrário de 1 é 0


Assim como a lição passada, essa é bem simples, não?

9 comentários:

Unknown disse...

Corrigir o seguinte trecho: "Vamos supor que você um concurso, para ser" por "Vamos supor que você passou em um concurso para ser"

Aliás, muito bom os seus tutoriais.

Guilherme Demoliner disse...

Cara, são muito bons os seus tutoriais, é muito facil de entender, parabéns!

Unknown disse...

Cara Concerteza Você é o Tipo de professor que esatá em falta kkk.
Muito bom Seus Tutoriais parabens .

Raphael Kennedy disse...

Excelente!!

Danielsilva disse...

Excelente!

Unknown disse...

Muito bom

videoauladematematica disse...

como faço as duas barrinhas em pé do OR ?

Wesley disse...

Um exemplo de programa que testa os operadores lógicos.

#include
#include //biblioteca que permite usar a função setlocale
int main(void)
{
int n1,n2;
setlocale(LC_ALL,"Portuguese"); /*função que adequa o programa a
ortografia da lingua portuguesa*/
printf("\n Digite dois números (0 ou 1): ");
scanf("%d%d",&n1,&n2);
printf("\n %d AND %d = %d",n1,n2,n1&&n2);
printf("\n %d OR %d = %d",n1,n2,n1||n2);
printf("\n NOT %d = %d",n1,!n1);
printf("\n NOT %d = %d",n2,!n2);
return 0;
}

Carla2020 disse...

Os operadores lógicos E (&&), OU (||) e de negação (!) são ferramentas essenciais na programação para realizar avaliações lógicas e tomar decisões com base nessas avaliações. Eles permitem combinar e manipular valores lógicos (verdadeiro ou falso) de forma eficiente.

No caso do operador E (&&), ele é utilizado quando é necessário que todas as condições sejam verdadeiras para que o resultado final seja verdadeiro. Isso significa que se qualquer uma das condições for falsa, o resultado será falso. É como dizer que todas as condições devem ser obedecidas para que algo aconteça.

Já o operador OU (||) é utilizado quando basta que uma das condições seja verdadeira para que o resultado final seja verdadeiro. Se pelo menos uma das condições for verdadeira, o resultado será verdadeiro. É como dizer que preenchendo apenas um dos requisitos, algo é possível.

O operador de negação (!) é usado para inverter o valor lógico de uma expressão. Se uma expressão é verdadeira, a negação dela será falsa, e vice-versa.

No contexto da programação em linguagem C, esses operadores são muito úteis para criar estruturas condicionais, loops e expressões lógicas mais complexas. Com eles, podemos construir algoritmos que tomam decisões com base em múltiplas condições e executam diferentes ações de acordo com essas condições.

É importante compreender bem o funcionamento dos operadores lógicos E, OU e de negação para escrever códigos corretos e eficientes. Eles fornecem uma poderosa ferramenta para lidar com a lógica e o fluxo de controle dentro dos programas.