As
diversas ciências definem a lógica e seus atributos de várias maneiras, no
entanto, utilizar a lógica é um fator a ser considerado por todos,
principalmente pelos profissionais da área do desenvolvimento tecnológico e de
informação.
Devemos
desde o início pensar de um modo único sobre algo: lógica não é um benefício que
somente algumas pessoas possuem, todos, sem exceção, possuem este benefício.
A
lógica está relacionada normalmente com o pensar, no entanto, ela simplesmente
nos auxilia quando pensamos de um modo e não de outro. Por esse fato, podemos
relacionar a lógica a “correção do pensamento”, analisando e aprendendo a
utilizar as leis do pensamento.
Tendo o raciocínio como um pensamento
mais complexo, e, que possivelmente podemos nos perder na escolha deste ou daquele
procedimento, a lógica tem como função ordená-lo, definindo-se assim como
“ordem ao raciocínio”. Por isso a lógica
estuda e ensina a colocar “ordem no pensamento”.
Lógica
Computacional e Algoritmos
Na
área de desenvolvimento, o bom uso da lógica é um bem valioso. A construção de
um pensamento com bons resultados é sempre a melhor oferta. Quando falamos de
computadores e de sistemas, será mais bem sucedido àquele que desenvolver a
resposta mais “afinada”, isto é, o sistema que tiver o melhor processo para
resolver determinado problema, como uma planilha de calculo, ou enviar um
e-mail ou ainda pagar uma conta de modo seguro, e, para isto, o sistema deve
possuir um bom algoritmo.
Algoritmos são sequencias de instruções para
a resolução de um determinado problema. Podemos notar um algoritmo em
execução quando observamos alguém fazendo um bolo através de uma receita. Neste
caso a receita é o algoritmo. Para que o bolo saia como desejamos devemos
seguir a receita na ordem que esta descrita, sem inverter os ingredientes ou a
ordem de utilizá-los, senão teremos um resultado, mas, não será o bolo!.
Normalmente
montamos um algoritmo antes de realizar a tarefa, quando ainda estamos pensando
no problema, tais quais:
Ir
para a escola, neste caso pensamos: qual caminho pegar? Vou de carro?
Carona? Sozinho? O que vou levar hoje?
Fazer
café,
já neste caso observaríamos: tenho os ingredientes? O que faço primeiro? Com ou
sem açúcar?
O
principal agente no desenvolvimento de sistemas é o algoritmo, e a lógica é o
principal agente no desenvolvimento de algoritmos, portanto; o principal objetivo da Lógica é a
construção de Algoritmos válidos e coerentes.
Todos
os algoritmos são finitos e bem definidos, estruturados em ações e sequenciais.
Sempre!
Vejamos
exemplos de algoritmos:
1º
- Criar um algoritmo para fazermos uma salada de frutas.
Pois
bem, neste caso teríamos:
Resposta:
1 - pegar um utensílio para colocar as
frutas cortadas;
2 - coletar as frutas para a salada;
3 - lavar as frutas;
4 - descascar as frutas;
5 - cortar em tamanhos pequenos;
6 - colocar todas as frutas cortadas
no utensílio;
Para
esta resolução, foi abordado um algoritmo bastante superficial, que possui
apenas a síntese da resposta, isto é, o desenvolvedor do processo pode escrever
o algoritmo no nível que achar necessário, descrevendo ou não os detalhes de
acordo com o problema. Imagine um algoritmo para trocar uma lâmpada queimada;
2
º - Criar um algoritmo para a troca de uma lâmpada queimada.
Resposta:
1 - pegar a escada;
2 - pegar a lâmpada nova;
3 - subir na escada;
4 - retirar a lâmpada queimada;
5 - colocar a lâmpada nova;
6 - acionar o interruptor;
Observe
que não houve um detalhamento muito grande para o algoritmo, e não significa
que está errado, e sim, que não foi necessário um grande nível de detalhe para
a resposta. Se fosse preciso maior detalhe, poderíamos inserir diversas
observações lógicas no caso como: Onde está a lâmpada? Alto, baixo? Qual o tipo
de lâmpada? Preciso de algum recurso para removê-la? Entre outras questões que
colaboram com a construção de um melhor algoritmo, podendo criar novos passos
ou otimizar os que já tem.
Desenvolva
os algoritmos das situações a seguir:
3º
- criar um algoritmo da Torre de Hanói para 3 hastes e 3 discos.
A
Torre de Hanói possui as seguintes regras:
-
todos os discos devem ser colocados em outra haste diferente da inicial (1) da
mesma forma como o jogo se inicia ( A - pequeno, B - médio e C - grande ).
- nunca um disco maior fica sobre o menor;
- nunca um disco maior fica sobre o menor;
-
apenas movimente um disco por vez;
-
discos A, B e C cada um com um tamanho diferente;
-
hastes 1, 2 e 3 de mesmo tamanho;
1-
Mova o disco A para a haste 3;
2-
Mova o disco B para a haste 2;
3-
Mova o disco A para a haste 2;
4-
Mova o disco C para a haste 3;
5-
Mova o disco A para a haste 1;
6-
Mova o disco B para a haste 3;
7-
Mova o disco A para a haste 3;
4º
- Criar um algoritmo para atravessar três jesuítas para a outra margem do rio.
Considere
a situação: 3 jesuítas e 3 canibais estão na margem do rio. Para a segurança
dos jesuítas devemos atravessá-los para a outra margem do rio com um barco
seguindo as seguintes regras:
-
nunca os jesuítas devem estar em menor número em nenhuma das margens;
-
apenas duas pessoas podem ir ao barco por vez;
-
apenas o barco pode ser utilizado para a travessia;
-
considere a margem A na direita e a margem B na esquerda.
Resposta:
1-
Mova 1 canibal e 1 jesuíta para a margem A
para a margem B;
2-
Mova 1 jesuíta da margem B para a margem A;
3-
Mova 2 canibais da margem A para a margem B;
4-
Mova 1 canibal da margem B para a margem A;
5-
Mova 2 jesuítas da margem A para a margem B;
6-
Mova 1 canibal e 1 jesuíta da margem B para a
margem A;
7-
Mova 2 jesuítas da margem A para a margem B;
8-
Mova 1 canibal da margem B para a margem A;