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!

Por Tiago Salem

Oi, eu sou o Tiago Salem.
Louco por tecnologia, programação, música e guitarra.

Já trabalhei na Mandriva-Conectiva, fui um dos programadores do ubuntu phone na Canonical e atualmente trabalho na SuSE como Engenheiro de Suporte L3.

Comecei este blog para fornecer minha visão sobre programação e ajudar mais pessoas a ingressar nesse mundo fantástico dos códigos.