A lógica de programação é o conjunto de regras e técnicas que os programadores utilizam para projetar e desenvolver programas de computador.
Um bom programador não é apenas alguém que sabe escrever código, mas também sabe pensar de forma lógica e resolver problemas de maneira eficaz.
O objetivo é criar algoritmos claros e eficientes, que possam ser traduzidos em código de programação, usando técnicas de resolução de problema, eficiência computacional, facilidade de manutenção e algoritmos.
Resolução de Problemas: A resolução de problemas pode ser abordada de forma sistemática, tratando maneiras de resolver problemas dividindo em partes, buscando soluções conhecidas ou viáveis.
Eficiência computacional: Os algoritmos nem sempre resolvem problemas de forma eficiente, portanto devem ser projetados pensando na eficiência que o computador consegue processar dados.
Facilidade de Manutenção: O código fonte de um programa precisa ter algoritmos bem escritos, legíveis e com uma implementação lógica que permita outro programador entender o código produzido.
Algoritmos: Os algoritmos são sequências de instruções que resolvem um problema específico. Um bom algoritmo além de resolver um problema, otimiza a quantidade de passos para finalizar a solução é válido matematicamente.
Exemplo1: Baixa clareza e lógica falha
a = 1
b = 1
se a >= b:
return a – b
senão:
return b – a
A saída sempre será zero, independente se a-b ou b-a. Se a >= b olhando com mais calma há muitos valores que fazem ser verdadeira a cláusula, seria como se para cada valor de a pudesse existir valores maiores que b. Será que existem valores no código do programa para o problema que validar a cláusula?
Exemplo 2: Clareza e lógica correta
valor_1 = 1
valor_2 = 1
“””
Retorna a diferença absoluta entre dois valores numéricos.
“””
se valor_1 > valor_2:
retorna valor_1 – valor_2
senão se valor_2 < valor_1:
retorna valor_2 – valor_1
senão
retorna 0
O nome das variáveis e as clásulas antecipam o resultado esperado e o comentário em aspas triplas reforça o tipo de solução planejada. Valor_1 e valor_2 são entradas do problema, portanto são valores de outra parte do código e são testados fora do contexto.
Foque no tipo de problema está sendo resolvido?
Qual o retorno para a solução pode ser aguardado?
Exemplo 3: clareza
Use palavras que condizem com o problema a ser resolvido.
soma_dos_pares = 0
para numero no intervalo de 0 a 10:
se numero divido por 2 tiver resto 0:
soma_dos_pares += numero
Exemplo 4: Decisão lógica
se x > 60:
y = True
senão:
y = False
O que seria x > 60?
E y True representa que tipo de solução?
Reescrevendo o código, para algo mais claro.
nota_aluno = 70
nota_aprovacao = 60
if nota_aluno > nota_aprovacao:
resultado = True
else:
resultado = False
print(resultado)
>>> True
Síntese
| Aspecto | Código fraco | Código forte |
| Nomes de variável | Genéricos | Semânticos |
| Leitura do código | Exige execução mental | Pode ser lido como texto lógico |
| Intenção do programa | Implícita | Explícita |
| Valor didático | Baixo | Alto |