Lógica e Algoritmos: Entendendo os Pilares da Programação

1. Definição de Lógica e Algoritmos

A lógica de programação é a arte de organizar e estruturar o pensamento para resolver problemas, descrevendo, de forma clara e precisa, a sequência de passos que um computador deve seguir. É a fundação do raciocínio computacional.

Um algoritmo é uma sequência finita, ordenada e não ambígua de instruções que deve ser seguida para resolver um problema específico ou executar uma tarefa. Ele é a representação formal dessa lógica, um "receita" passo a passo.

Características essenciais de um algoritmo:

Exemplo de um algoritmo simples: Trocar uma lâmpada

  1. Pegar uma escada.
  2. Pegar uma lâmpada nova.
  3. Posicionar a escada embaixo da lâmpada queimada.
  4. Subir na escada.
  5. Girar a lâmpada queimada no sentido anti-horário até soltar.
  6. Retirar a lâmpada queimada.
  7. Colocar a lâmpada nova no bocal.
  8. Girar a lâmpada nova no sentido horário até fixar.
  9. Descer da escada.
  10. Guardar a escada.
  11. Fim.

2. Estruturas de Controle

As estruturas de controle são os pilares para a construção de algoritmos, pois definem a ordem e a forma como as instruções serão executadas. Existem três tipos básicos:

2.1. Estrutura de Sequência

É a estrutura mais básica, onde as instruções são executadas em ordem linear, uma após a outra, sem desvios ou repetições. Cada passo é realizado exatamente uma vez.

Exemplo: Calcular a área de um retângulo

  1. Início
  2. Ler o valor da largura.
  3. Ler o valor da altura.
  4. Calcular a área = largura * altura.
  5. Exibir o valor da área.
  6. Fim

2.2. Estrutura de Seleção (Condicional)

Permite que o algoritmo tome decisões, executando diferentes blocos de código com base na avaliação de uma condição (verdadeira ou falsa).

  • SE (IF): Executa um bloco de código apenas se a condição for verdadeira.
  • SE-SENÃO (IF-ELSE): Executa um bloco se a condição for verdadeira e outro bloco se for falsa.
  • SE-SENÃO SE (IF-ELSE IF): Avalia múltiplas condições em sequência.

Exemplo: Verificar se um número é positivo

  1. Início
  2. Ler um número.
  3. SE (número > 0) ENTÃO
  4. Exibir "O número é positivo."
  5. SENÃO
  6. Exibir "O número não é positivo (é zero ou negativo)."
  7. Fim

2.3. Estrutura de Repetição (Laço ou Loop)

Permite que um bloco de instruções seja executado múltiplas vezes, até que uma determinada condição seja satisfeita ou um número específico de iterações seja atingido.

  • ENQUANTO (WHILE): Repete um bloco de código enquanto a condição for verdadeira (a condição é testada antes de cada iteração).
  • REPITA-ATÉ (DO-WHILE): Repete um bloco de código até que a condição se torne verdadeira (o bloco é executado pelo menos uma vez, pois a condição é testada após cada iteração).
  • PARA (FOR): Repete um bloco de código um número específico de vezes (ideal quando o número de iterações é conhecido).

Exemplo: Contar de 1 a 5

  1. Início
  2. PARA contador de 1 até 5 FAÇA
  3. Exibir "Contagem: " + contador
  4. Fim PARA
  5. Fim

3. Fluxogramas

Um fluxograma é uma representação gráfica de um algoritmo ou de um processo. Ele utiliza símbolos padronizados para ilustrar a sequência lógica, as operações, as decisões e o fluxo de dados, tornando a compreensão do algoritmo mais visual e intuitiva.

Principais símbolos utilizados em fluxogramas:

Exemplo de Fluxograma (Verificar Aprovado/Reprovado)

Abaixo, uma representação textual que simula a estrutura visual de um fluxograma para calcular a média de duas notas e determinar se o aluno foi aprovado (média >= 7) ou reprovado.

(Início) | v [Entrada: Ler Nota1] | v [Entrada: Ler Nota2] | v [Processo: Media = (Nota1 + Nota2) / 2] | v (Decisão: Media >= 7?) / \ SIM NÃO / \ v v [Saída: "Aprovado"] [Saída: "Reprovado"] \ / \ / v v | v (Fim)

Em ferramentas gráficas, esses blocos seriam substituídos pelos símbolos correspondentes e conectados por setas.

```