Categorias
Programação

Introdução à Lógica (de programação) – Você já sabe …

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!