Introdução à lógica de programação
Lógica de programação é o processo de pensar de forma estruturada e sequencial para resolver um problema ou executar uma tarefa, utilizando uma linguagem que um computador possa entender.
Em termos práticos, é a arte de planejar as instruções que um computador seguirá para alcançar um determinado resultado. Essa habilidade é fundamental para qualquer pessoa que deseje desenvolver softwares, aplicativos ou trabalhar na área de Tecnologia da Informação.
Dominar a lógica de programação não se limita apenas a escrever código; trata-se de desenvolver a capacidade de analisar situações, decompor problemas complexos em partes menores e criar soluções eficientes e organizadas.
Características da Lógica de Programação
As principais características da lógica de programação garantem que os programas sejam claros, eficientes e funcionais:
- Sequencialidade: As instruções são executadas na ordem em que são apresentadas. Cada passo depende do anterior.
- Clareza e Objetividade: A lógica deve ser fácil de entender e não deixar margens para ambiguidades. Cada instrução deve ter um propósito claro.
- Eficiência: A solução deve ser a mais otimizada possível, consumindo o mínimo de recursos (tempo e memória) do computador.
- Modularidade: A capacidade de dividir um problema grande em partes menores e independentes (módulos ou funções), facilitando o desenvolvimento e a manutenção.
- Abstração: Focar nos aspectos essenciais de um problema, ignorando detalhes irrelevantes para a solução.
Estrutura da Lógica de Programação
A estrutura da lógica de programação é geralmente composta por três elementos fundamentais que, combinados, permitem a criação de algoritmos:
- Sequência: Execução de comandos um após o outro, na ordem definida. É a base de qualquer programa.
Exemplo:1. Receber um número.
2. Receber outro número.
3. Somar os dois números.
4. Mostrar o resultado. - Seleção (ou Desvio Condicional): Permite que o programa tome decisões com base em condições. Ele escolhe um caminho de execução entre dois ou mais possíveis.
Exemplo:Se (a nota for maior ou igual a 7), então (aprovar o aluno), senão (reprovar o aluno).
- Repetição (ou Laço/Loop): Permite que um bloco de comandos seja executado várias vezes, seja por um número determinado de vezes ou enquanto uma condição for verdadeira.
Exemplo:Repetir (enquanto houver alunos na lista): (ler o nome do aluno e registrar sua presença).
Tipos de Lógica de Programação
Embora a lógica de programação em si seja um conceito unificado, podemos pensar em abordagens ou “estilos” que guiam a sua aplicação:
Lógica Imperativa
Esta abordagem foca em descrever como fazer algo, fornecendo uma sequência de comandos que alteram o estado do programa. A lógica imperativa é subdividida em:
- Procedural: Organiza os comandos em procedimentos (ou funções), que são blocos de código reutilizáveis que realizam tarefas específicas.
Exemplo:Para calcular a área de um círculo, criamos um procedimento
calcularAreaCirculo(raio)que contém a fórmulapi * raio * raio. - Orientada a Objetos (POO): Organiza o código em torno de “objetos”, que combinam dados (atributos) e comportamentos (métodos). É uma das abordagens mais utilizadas atualmente.
Exemplo:Um objeto
Carropode ter atributos comocor,modeloe métodos comoacelerar()efrear().
Lógica Declarativa
Ao contrário da imperativa, a lógica declarativa foca em descrever o que precisa ser feito, sem especificar o passo a passo exato de como executar. O sistema se encarrega de descobrir o melhor caminho.
- Funcional: Trata a computação como a avaliação de funções matemáticas, evitando mudanças de estado e dados mutáveis.
Exemplo:Uma função
dobrar(numero)que retornanumero * 2sem alterar o valor original denumero. - Lógica: Baseada na teoria da lógica formal, onde os programas consistem em um conjunto de fatos e regras, e o sistema deduz a resposta.
Exemplo:Fato: “Todos os homens são mortais.” Regra: “Se X é homem, então X é mortal.” Pergunta: “Sócrates é mortal?” Resposta: Sim.
Diferença entre Algoritmo e Programa
| Aspecto | Algoritmo | Programa |
|---|---|---|
| Definição | Sequência lógica de passos para resolver um problema | Implementação de um algoritmo em uma linguagem de programação |
| Natureza | Abstrata, conceitual, independente de linguagem | Concreto, escrito em código, executável |
| Forma | Linguagem natural, fluxogramas, pseudocódigo | Linguagem de programação (Python, Java, C++, etc.) |
| Execução | Não executável diretamente pelo computador | Executável pelo computador |
Exemplo de Lógica de Programação: Calculando a Média de Duas Notas
Para compreender melhor, vamos aplicar a lógica de programação para criar um algoritmo que calcula a média de duas notas.
Algoritmo em Pseudocódigo:
INÍCIO
DECLARAR nota1, nota2, media COMO REAL
ESCREVER "Por favor, digite a primeira nota:"
LER nota1
ESCREVER "Por favor, digite a segunda nota:"
LER nota2
media = (nota1 + nota2) / 2
ESCREVER "A média das notas é: ", media
FIM
Neste exemplo:
- Sequência: As instruções são executadas na ordem: declaração de variáveis, solicitação da primeira nota, leitura, solicitação da segunda nota, leitura, cálculo da média e exibição do resultado.
- Variáveis:
nota1,nota2emediasão espaços na memória para armazenar os valores. - Entrada/Saída:
ESCREVERexibe mensagens para o usuário, eLERcaptura o que o usuário digita. - Processamento: A linha
media = (nota1 + nota2) / 2é onde ocorre o cálculo, a lógica principal para resolver o problema.
Este simples algoritmo demonstra como a lógica de programação nos guia para estruturar a solução de um problema de forma clara e compreensível para um computador.
Exercícios com Gabarito
1. (ENEM 2022) Um estudante quer resolver um problema de matemática que envolve a soma de dois números. Para isso, ele utiliza um computador. O processo de pensar passo a passo e descrever as ações que o computador deve realizar para somar os números é um exemplo de:
- a) Desenvolvimento de hardware
- b) Criação de interface gráfica
- c) Lógica de programação
- d) Análise de sistemas
- e) Gerenciamento de banco de dados
Resposta: Alternativa c: Lógica de programação. O problema descreve a essência da lógica de programação: definir a sequência de passos para resolver uma tarefa computacional.
2. (CURSO TÉCNICO TI) Qual das estruturas de controle abaixo permite que um bloco de código seja executado repetidamente enquanto uma determinada condição for verdadeira?
- a) Sequência
- b) Seleção (If-Else)
- c) Laço de Repetição (Loop)
- d) Declaração de Variável
- e) Entrada de Dados
Resposta: Alternativa c: Laço de Repetição (Loop). Esta estrutura é especificamente projetada para executar blocos de código múltiplas vezes com base em uma condição.
3. (ENEM 2021) Ao criar um website, um programador precisa garantir que, se o usuário digitar a senha incorreta, uma mensagem de erro seja exibida. Caso contrário, o acesso é permitido. Essa decisão baseada em uma condição é um exemplo do uso de qual estrutura lógica?
- a) Loop infinito
- b) Lógica sequencial pura
- c) Estrutura de repetição
- d) Estrutura de seleção condicional
- e) Concatenação de strings
Resposta: Alternativa d: Estrutura de seleção condicional. A necessidade de escolher entre dois caminhos (exibir erro ou permitir acesso) com base em uma condição (senha correta/incorreta) define uma estrutura de seleção condicional (como if-else).