O que são Erros de Programação?
Os erros de programação representam um dos desafios mais intrigantes e, ao mesmo tempo, educativos para qualquer programador. São como enigmas que precisam de ser resolvidos para que o programa corra sem problemas. Vamos explorar este capítulo com um olhar atento sobre os três tipos principais de erros: sintaxe, lógica e tempo de execução. Esta é a base sobre a qual iremos construir as habilidades necessárias para os identificar e solucionar.
Erros de Sintaxe
Os erros de sintaxe são, sem dúvida, os mais fáceis de identificar e corrigir, uma vez que são erros na estrutura do código que violam as regras da linguagem de programação em uso. Pense neles como erros gramaticais numa língua falada. Quando nos expressamos incorrectamente, a mensagem fica distorcida.
Por exemplo, em Python, se tentarmos usar uma variável sem a definir previamente, o Python irá lançar um erro de sintaxe:
print(variavel_inexistente)
O erro acima indicaria ao programador que a variável variavel_inexistente
não foi definida antes de tentar aceder ao seu valor.
Erros de Lógica
Erros de lógica, por outro lado, são mais subtil. Acontecem quando o programa corre sem problemas, mas não fornece o resultado esperado. Este tipo de erro exige do programador um entendimento profundo do que o código deveria realizar. São frequentemente erros de raciocínio ou de formulação incorrecta de algoritmos.
Vamos supor que tens um programa que soma dois números, mas este está a multiplicá-los:
def somar(a, b):
return a * b
resultado = somar(2, 3)
print(resultado) # Esperado: 5, mas imprime: 6
Aqui, a multiplicação dos números é utilizada em vez da soma. Este é um erro clássico de lógica, onde a intenção do código não corresponde ao que realmente está a fazer.
Erros de Tempo de Execução
Finalmente, os erros de tempo de execução surgem quando algo inesperado acontece enquanto o programa está em execução. Estes erros não são detectados pelo compilador, uma vez que só se manifestam quando o programa tenta efectuar uma operação ilegítima, como dividir por zero ou aceder a uma posição de memória inexistente.
Considere este exemplo em Python ao tentar dividir por zero:
def dividir(a, b):
return a / b
resultado = dividir(10, 0)
print(resultado) # Isto irá causar um erro de tempo de execução.
O código acima irá lançar um erro (ZeroDivisionError
) ao tentar dividir por zero. Para prevenir isto, seria ideal incluir medidas de controlo para verificar o valor de b
antes da divisão.
Resumo do Capítulo
Neste capítulo, explorámos os conceitos básicos sobre erros de programação, que são cruciais para qualquer programador compreender. Focámo-nos nos erros de sintaxe, lógica e tempo de execução, providenciando exemplos práticos e reais que ilustram as suas manifestações e como podem ser resolvidos. Dominar o reconhecimento e a correção destes erros é um passo fundamental no caminho para se tornarem programadores habilidosos.
Quiz
-
Qual das opções abaixo descreve corretamente um erro de sintaxe?
- a) Um programa que não imprime o resultado esperado.
- b) Uma tentativa de dividir um número por zero.
- c) Uma vírgula em falta no final de uma instrução em Python.
- d) Um loop que nunca termina.
-
Qual é a principal diferença entre erros de lógica e erros de sintaxe?
- a) Erros de lógica são mais fáceis de corrigir do que erros de sintaxe.
- b) Erros de sintaxe ocorrem apenas em tempo de execução.
- c) Erros de lógica resultam em resultados inesperados mesmo quando não há erros de sintaxe.
- d) Erros de sintaxe são causados por cálculos incorrectos.
-
Qual destes cenários é um exemplo clássico de erro de tempo de execução?
- a) Escrever 'print' incorrectamente em Python.
- b) Esquecer-se de fechar um parêntese numa expressão.
- c) Usar um operador '+' em vez de '-'.
- d) Aceder a um índice fora do alcance numa lista.