Lógica de programação é sem sombra de dúvida um dos temas mais “temidos” de quem começa a programar. Reconheço que o próprio nome é de certa forma algo intimidador.
Já comentei em outros posts que não gosto de falar “lógica de programação” já de cara, principalmente por parecer que lógica é algo que só existe na programação.
Eu explico no vídeo de hoje que lógica está presente na nossa vida em vários momentos, e se você entendeu esta exata frase aqui, então eu posso afirmar que você já sabe lógica (pelo menos até um certo nível).
Lógica não nasceu na programação, e quando começou a ser estudada, nem se imaginava que um dia computadores existiriam.
Lógica é simplesmente uma ferramenta que nós utilizamos na computação para conseguir, dentre outras coisas, controlar a forma como nosso programa é executado pelo processador, dando a impressão de que ele consegue tomar decisões.
Se você já viu o post em que comparo um programa de computador com um fluxograma, então você já sabia que em algum momento precisaríamos aprender lógica de programação, e acredito que este seja o momento de termos uma introdução.
Dividi o vídeo em duas partes. Na primeira vou mostrar como já utilizamos lógica quando falamos em Português, e na segunda iremos trazer o conhecimento de lógica para dentro da linguagem C.
Para acompanhar o conteúdo de hoje, os únicos conhecimentos prévios que você precisará ter são:
- Saber falar Português 🙂
- Saber efetuar as 4 operações básicas da matemática.
Este é um daqueles vídeos (de novo) que vão exigir a sua concentração, então peço que reserve um tempo para assistir com calma.
Disponibilizei o mapa mental que uso no vídeo aqui neste link.
Agora, que tal utilizar nosso conhecimento de lógica para descobrir se o pai vai levar a criança no parque ou não, ou se a pessoa vai continuar gastando o dinheiro com guloseimas nos exemplos que mostrei no vídeo?
Vamos substituir nossas condições por “variáveis” e atribuir valores para elas. Quando as condições forem verdadeiras, as variáveis terão 1, quando forem falsas, terão 0.
Exemplo 1:
Frase: Só vou levar você no parque se você se comportar E se você NÃO arrumar a sua cama.
Duas condições:
- se comportar (usaremos uma variável chamada comportar)
- NÃO arrumar a cama (condição com uma negação, nome: arrumar)
Operador lógico que interliga as condições: E lógico
Expressão completa em linguagem C:
(comportar && !arrumar)
Situação proposta 1: Garoto se comporta e arruma a cama.
Portanto variável comporta será 1 e arruma será 1:
- (1 && !1)
- (1 && 0)
- 0
Resultado: Como o resultado é falso (0), o garoto não irá ao parque.
Situação proposta 2: Garoto se comporta e não arruma a cama.
Variável comporta será 1 e arruma será 0:
- (1 && !0)
- (1 && 1)
- 1
Resultado: Como o resultado é verdadeiro (1), o garoto irá ao parque.
Utilizando a estrutura if:
if (comportar && !arrumar) { levar_no_parque(); }
Exemplo 2:
Frase: Enquanto eu estiver empregado OU eu estiver com vontade de comer, vou continuar gastando meu dinheiro em guloseimas
Duas condições:
- estar empregado (nome: empregado)
- vontade de comer (nome: vontade)
Operador lógico que interliga as condições: OU lógico
Expressão completa em linguagem C:
(empregado || vontade)
Situação proposta 1: Pessoa empregada e sem vontade de comer.
Variável empregado será 1 e vontade será 0:
- (1 || 0)
- 1
Resultado: Como o resultado é verdadeiro (1), a pessoa continuará gastando o dinheiro com guloseimas.
Situação proposta 2: Pessoa desempregada e com vontade de comer.
Variável empregado será 0 e vontade será 1:
- (0 || 1)
- 1
Resultado: Como o resultado é verdadeiro (1), significa que a pessoa irá continuar gastando o dinheiro em guloseimas.
Utilizando a estrutura while:
while (empregado || vontade) { comprar_guloseimas(); }
Veja que basta alterar o conteúdo das variáveis que representam as condições para refletir uma determinada situação, efetuar então a operação lógica remanescente e o seu programa conseguirá “decidir” se deve ou não executar a ação que está dentro do bloco entre chaves, que neste caso é uma chamada de função, mas poderia ser qualquer outra ação.
Espero que o conteúdo de hoje tenha ajudado a esclarecer um pouco de como é possível fazer um programa de computador “tomar uma decisão” baseado em uma expressão lógica, e nos próximos posts abordaremos um pouco mais de como utilizar estas expressões para fazer algo mais elaborado.
Não esqueça de deixar sua opinião nos comentários.
Um abraço!