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:
- Finito: Deve ter um número limitado de passos.
- Definido: Cada passo deve ser preciso e sem ambiguidades.
- Efetivo: Todas as operações devem ser básicas o suficiente para serem executadas.
- Entrada: Pode ter zero ou mais dados de entrada.
- Saída: Deve produzir um ou mais resultados.
Exemplo de um algoritmo simples: Trocar uma lâmpada
- Pegar uma escada.
- Pegar uma lâmpada nova.
- Posicionar a escada embaixo da lâmpada queimada.
- Subir na escada.
- Girar a lâmpada queimada no sentido anti-horário até soltar.
- Retirar a lâmpada queimada.
- Colocar a lâmpada nova no bocal.
- Girar a lâmpada nova no sentido horário até fixar.
- Descer da escada.
- Guardar a escada.
- 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
- Início
- Ler o valor da largura.
- Ler o valor da altura.
- Calcular a área = largura * altura.
- Exibir o valor da área.
- 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
- Início
- Ler um número.
- SE (número > 0) ENTÃO
- Exibir "O número é positivo."
- SENÃO
- Exibir "O número não é positivo (é zero ou negativo)."
- 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
- Início
- PARA contador de 1 até 5 FAÇA
- Exibir "Contagem: " + contador
- Fim PARA
- 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:
- Terminal (Oval/Cápsula): Representa o início ou o fim do algoritmo.
- Processo (Retângulo): Indica uma operação ou uma ação a ser executada (e.g., cálculo, atribuição).
- Entrada/Saída (Paralelogramo): Usado para operações de entrada de dados (ler) ou saída de resultados (exibir).
- Decisão (Losango): Representa um ponto onde uma condição é testada, com dois caminhos de saída possíveis (geralmente "Verdadeiro/Sim" e "Falso/Não").
- Linhas de Fluxo (Setas): Conectam os símbolos e indicam a direção do fluxo do algoritmo.
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.