Sabe aquele seu amigo que mora sozinho mas não sabe como fazer quase nada na casa? Então, imagine que ele chegou em casa depois de um longo dia de trabalho e ao ligar o interruptor ele descobre que a lâmpada da sala queimou.
Ele precisa trocar a lâmpada, mas não sabe como se faz isso… Então ele lembra que você é perito em manter a casa em ordem e decide te ligar para pedir uma ajudinha.
Você, amigo bacana que é, atende a ligação e passa as orientações para ele:
– Pegue uma banqueta.
– Suba na banqueta.
– Gire a lâmpada que está no bocal até que ela fique solta.
– Retire a lâmpada.
– Desça a banqueta.
– Jogue a lâmpada queimada no lixo reciclável.
– Pegue a lâmpada nova.
– Suba a banqueta novamente.
– Coloque a lâmpada nova no bocal e gire até ficar firme.
– Desça a banqueta.
– Ligue o interruptor.
A luz ascendeu? Então a sua operação está concluída.
Se o seu amigo entendeu as instruções e foi capaz de segui-las, então ele fez exatamente o que um software faz o tempo todo enquanto seu computador, celular e outros gadgets estão ligados: ele seguiu um algoritmo.
Um algoritmo é um conjunto finito de regras que provê uma sequência de operações para resolver um tipo de problema específico. No caso do exemplo acima, o algoritmo criado por você levou seu amigo a conseguir ter a luz da sala acesa novamente.
Como você pode ler na história acima, você não foi o executor e nem a solução do problema. Você foi um guia, que orientou o caminho a ser seguido.
Desta mesma forma, os algoritmos não são a solução de um problema, mas o conjunto de passos que vão ajudar algo ou alguém a chegar a uma solução.
Existem várias formas de chegar à solução, vários passos que podem levar a um mesmo resultado.
Clique AQUI para assistir uma aula gratuita de Lógica de Programação
e entenda a relação entre os Algoritmos e a Programação.
Ainda conforme o exemplo que demos no início deste artigo, você poderia ter dito para o seu amigo pegar uma escada ao invés de uma banqueta. Seria um passo diferente, que ajudaria seu amigo a chegar à mesma solução: a troca da lâmpada da sala da casa dele.
Mas o que algoritmos têm a ver com Programação?
Tudo! Programação de Softwares nada mais é do que trabalhar com algoritmos. O programa de software precisa seguir uma sequência de passos para fazer o computador realizar exatamente aquilo que desejamos. Ou seja, programação é um conjunto de operações necessárias para, a partir de dados de entrada, obter um resultado que será disponibilizado por algum dispositivo de saída.
Características de um algoritmo
Quando falamos de algoritmos para a programação de softwares, quanto menor a sequência de passos a serem seguidos, melhor será o seu algoritmo.
Para que seu algoritmo seja eficiente é preciso que ele dê as instruções ao programa de forma clara, bem definida e não ambígua.
Um bom algoritmo possui algumas características, dentre as quais destacamos:
– Ele tem que ter fim – para poder resolver o problema precisa ser finito.
– Não ambíguo – sem margem para dupla interpretação.
– Capacidade de receber dados de entrada do mundo exterior (interação).
– Poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo.
– Ser efetivo (etapas descritas devem ser alcançáveis em tempo finito).
Como operar com algoritmos
Os algoritmos descrevem as etapas que precisam ser efetuadas para que um programa de computador execute as tarefas que lhe são designadas.
Eles podem ser escritos de diversas formas. As mais utilizadas são:
– Pseudocódigo
– Fluxograma
– Diagrama de Chapin
– Descrição narrativa
Os tipos de algoritmos mais comuns em programação de softwares são o pseudocódigo e o fluxograma.
Clique AQUI para assistir uma aula gratuita de Lógica de Programação
e entenda a relação entre os Algoritmos e a Programação.
Pseudocódigo
O pseudocódigo utiliza uma forma mais estruturada, assemelhando-se àquelas utilizadas pelas linguagens de programação. O pseudocódigo não segue um padrão definido, portanto, qualquer um pode escrever seu pseudocódigo da forma que bem entender desde que ele transmita a ideia central da lógica da programação.
Fluxograma
Fluxogramas têm o mesmo objetivo dos pseudocódigos, a única diferença é que os fluxogramas são representações gráficas. A vantagem principal dos fluxogramas é que, diferentemente dos pseudocódigos, eles são padronizados. Ou seja, cada símbolo representa uma ação específica e sempre representará. Um fluxograma usa linhas para ligar seus elementos, criando assim, um caminho que deve ser seguido.
Outras formas
O exemplo que demos no início deste artigo era um algoritmo em descrição narrativa. Esta forma não é muito utilizada em programação de softwares, pois pode ser ambígua e dar margem a interpretações erradas.
O estilo Diagrama de Chapin mostra a solução por meio de quadros organizados hierárquica e estruturadamente e também não é muito utilizado, pois vários procedimentos tornam-se difíceis de serem mostrados por meio deste diagrama.