Lógica de programação – parte 1
Este artigo faz parte do nosso Curso Básico de Programação do Shell GNU/Linux e estão sendo compartilhadas livre e gratuitamente graças aos inscritos no curso e nossos apoiadores. Você pode me ajudar a continuar produzindo e compartilhando esse tipo de material de várias formas:
- Divulgando, inscrevendo-se ou doando inscrições para os meus cursos;
- Com seu apoio regular pelo Apoia.se;
- Com seu apoio eventual pelo PicPay;
- Ou pelo PIX: pix@blauaraujo.com
Você também me ajuda comprando a versão impressa do Pequeno Manual do Programador GNU/Bash.
Lógica de programação – parte 1
Existe um campo de estudos na computação chamado "lógica de programação", que trata dos métodos e processos que levam à construção de algorítimos e programas. O problema é que, especialmente para os iniciantes, essa expressão acaba tendo outra conotação, levando à crença na existência de uma espécie de técnica, ou "fórmula mágica", geralmente confundida com algorítimos, com a qual poderíamos implementar facilmente a solução de um problema na forma de um código, mas não é bem assim.
Uma das definições mais comuns de lógica de programação é: o conjunto de raciocínios que levam à construção de um programa. Mesmo sendo vaga e superficial, essa definição já serve para demonstrar que existe algo de suma importância que precede qualquer método ou técnica para a solução de um problema computacional: o raciocínio lógico — e, infelizmente, isso não se aprende.
Raciocínio lógico
A verdade é que, ao longo de todos esses anos explicando a programação do shell para utilizadores iniciantes e avançados do GNU/Linux, nenhum obstáculo se mostrou mais desafiador do que a carência de pensamento lógico. Muitos dos meus alunos e ex-alunos, por mais que dominem as ferramentas e o funcionamento do shell, relatam que simplesmente não conseguem entender como é possível criar um programa a partir da apresentação de um problema. O que falta, porém, é algo que depende exclusivamente deles: desenvolver o raciocínio lógico.
O raciocínio lógico (ou pensamento lógico) é um processo mental, uma habilidade que se desenvolve com o hábito de pensar e expressar o entendimento que se tem de um dado problema. O uso dessa habilidade precede qualquer técnica para a criação de algorítimos e programas, que são, em última análise, apenas formas de expressar o que fora entendido através do pensamento lógico.
Entendimento
O objetivo do raciocínio lógico é a elaboração de um entendimento, que é a apresentação, em linguagem humana, de sentenças capazes de descrever o problema. O entendimento não precisa, necessariamente, ser escrito: se o problema é descrito com clareza na sua mente, você já conseguiu atingir o objetivo, mas escrever pode ser muito útil no começo, pois permite a avaliação das nossas sentenças e, eventualmente, até a revisão do nosso entendimento.
No nosso método, o entendimento corresponde ao primeiro passo: a descrição do problema, que é quando nós propomos fazer algumas perguntas importantes:
- Quais são os dados do problema?
- Quais são os resultados esperados?
- Quais são as condições e restrições?
- É possível satisfazer as condições e as restrições?
- É possível descrever o problema de outras formas?
- É possível transformar o problema em outro equivalente?
- É possível decompor o problema em casos mais simples?
- Existem soluções conhecidas para o problema ou para os casos relacionados?
Resolução de problemas aritméticos simples
Uma das formas mais interessantes e eficazes de desenvolver o raciocínio lógico é a prática da resolução de problemas aritméticos simples, ou seja, aqueles que podem ser resolvidos com um mínimo de conhecimento matemático, para que possamos nos concentrar na construção de um entendimento e, subsequentemente, de uma solução.
Sendo assim, seguem alguns exercícios para você praticar:
Problemas apresentados pelo Prof. Robson Liers em seu canal no Youtube.
Problema 1
Daqui a 15 anos, a minha idade será o quíntuplo da idade que ele tinha há 5 anos. Qual é a minha idade hoje?
Problema 2
Maria tem 2 anos a mais que Joana, que tem o dobro da idade de Helena. A soma das idades das três irmãs é 27 anos. Quantos anos tem Joana?
Problema 3
As idades atuais de Pedro e Maria estão na razão de 5/4, respectivamente. Daqui a 3 anos, a razão será de 11/9. Quantos anos Maria tem hoje?
Problema 4
Quando escondo 2/7 da minha idade, eu tenho 40 anos. Qual é a minha idade?
Problema 5
Quando meu pai tinha 31 anos, eu tinha 8. Agora, ele tem o dobro da minha idade. Quantos anos eu tenho?
Problema 6
A diferença entre o quíntuplo de um número e sua metade é igual ao triplo desse número mais 30. Qual é o número?
Problema 7
Dois quintos dos candidatos inscritos em um concurso são mulheres. Os números de candidatos homens e mulheres seria igual se houvesse mais 150 homens e o dobro de mulheres. Qual é a quantidade de homens inscritos?
Problema 8
Em um depósito, existem 6 tonéis distintos de 15, 16, 18, 19, 20 e 31 litros. Um está cheio de nata, e os restantes contém leite ou chocolate líquido. No total, há duas vezes mais leite do que chocolate. Qual é a capacidade do tonel de nata?
Problema 9
A soma de dois números é 17, o produto é 52. Qual é a diferença entre eles?
Problema 10
A soma do perímetro de três quadrados, cujos lados medem números inteiros consecutivos, é 96m. Qual é o perímetro do menor quadrado?