Algoritmos estruturados
Produzido por Gustavo BarbosaTeoria
Introdução
Fala aí, aqui é o Guga do Responde Aí! Tudo bem com você?
A programação está rodeada de nomes de pessoas que resolveram inúmeros problemas computacionais complexos através do desenvolvimento de algoritmos para essas soluções, por exemplo: Algoritmo de Dijkstra, Kruskal, Bellman-Ford etc.
Mas qual é o motivo pelo qual os algoritmos são tão importantes?
Nós precisamos aprendê-los para que possamos nos comunicar com o computador, uma vez que todos os programas têm o objetivo de resolver determinados problemas através do processamento de uma máquina. Um algoritmo nada mais é do que uma estrutura que deve ser seguida durante o desenvolvimento desses programas de forma com que o computador entenda o que deve ser feito em uma linguagem mais próxima da computacional.
Algoritmo
Imagine a seguinte situação:
Você decidiu fazer aquele bolo de chocolate delicioso em uma dessas tardes, mas se esqueceu daquele jeitinho especial de se preparar essa sobremesa. Então, decidiu ir à gaveta velha da sua casa e pegar o livro de receitas da sua família.
Bateu aquela fome, né?
Pode parecer estranho, mas a receita que está nesse livro que você acabou de pegar é um algoritmo. Isso acontece porque uma receita é uma sequência de passos bem definidos, pois nós temos tudo aquilo que devemos fazer na ordem correta, por exemplo:
- Adicione os ovos, chocolate, farinha de trigo, leite, açúcar e a manteiga no recipiente;
- Misture tudo até que a massa fique homogênea;
- ...
- Retire o bolo do forno.
Seguindo cada um desses passos na ordem em que são apresentados, no final nós teremos como resultado aquele super bolo que queríamos comer.
É por esse motivo que os algoritmos são passos bem definidos, que ao serem executados na ordem certinha em que são apresentados, atingem um determinado objetivo.
Algoritmo ou programa?
A verdade é que um programa é um algoritmo. Isso acontece, pois para desenvolvermos programas nós utilizamos as chamadas linguagens de programação.
Então, imagina a linguagem que você está aprendendo agora (C). Ela nada mais é do que uma ferramenta utilizada para converter um algoritmo que nós escrevemos na linguagem natural, como a receita do bolo de chocolate, para um algoritmo em uma linguagem mais próxima daquela que o computador entende (linguagem de máquina).
É por esse motivo que existem inúmeras linguagens de programação. Uma linguagem de programação mais moderna, como por exemplo Python (nós temos um ótimo conteúdo sobre ela aqui no Responde Aí!), consegue realizar essa conversão mantendo sua linguagem mais próxima do natural e por esse motivo é considerada de alto nível. Por outro lado, as linguagens de programação mais antigas (pensa lá para a década de 50) possuem uma proximidade bem maior com a linguagem de máquina e por esse motivo são consideradas de baixo nível.
Sendo assim, um programa nada mais é do que um algoritmo convertido da linguagem natural para instruções em uma linguagem compreendida pelo computador, utilizando-se para isso das linguagens de programação.
Ficou mais fácil de entender, né?
Características de um algoritmo
Todos os algoritmos seguem uma série de características, são elas:
- Não deve ter instruções com duplo sentido;
- Deve possuir entradas e saídas bem definidas;
- Deve ser finito, para isso não deve entrar em instruções com repetições sem fim;
- Deve ser genérico e entendido de forma clara por todos;
- Deve ser independente, podendo ser executado em inúmeras linguagens.
Então, sempre que formos criar um algoritmo utilizando a linguagem natural, basta imaginarmos que estamos criando uma receita!
Ou seja, temos que colocar tudo em passos bem claros para atingir um objetivo.
Convertendo um algoritmo em um programa
Que tal aprendermos na prática como realizar a conversão de um algoritmo na linguagem natural para um algoritmo em uma linguagem computacional?
O algoritmo a seguir descreve os passos para o cálculo da média aritmética de dois valores:
- Ler o primeiro valor;
- Ler o segundo valor;
- Somar o primeiro valor com o segundo;
- Dividir o resultado da soma por 2;
- Escrever o resultado.
Para convertermos esse algoritmo, basta seguirmos os seguintes passos:
- Analisar o problema: o problema que será resolvido é o cálculo da média aritmética de dois valores;
- Identificar restrições: as entradas deverão ser apenas números;
- Identificar as entradas: dois números;
- Identificar as saídas: a média aritmética das entradas;
- Descrever a solução.
Para descrevermos a solução para o cálculo da média aritmética de dois valores utilizaremos passos genéricos (que podem ser transferidos para qualquer linguagem de programação):
- Ler e armazenar o primeiro valor;
- Ler e armazenar o segundo valor;
- Somar o primeiro valor com o segundo e armazenar o resultado;
- Dividir o resultado da soma por 2 e armazenar o resultado;
- Imprimir o resultado da divisão do somatório por 2.
Pronto! Acabamos de converter o nosso primeiro algoritmo em um programa. No nosso caso, utilizaríamos a linguagem C para codificar esses passos genéricos.
Por enquanto é só, não vai sair daqui sem fazer os exercícios de fixação, hein!?
Estou de olho!