Este é um artigo introdutório sobre lógica de programação, abordando o tema algoritmo bem como sua definição e exemplos. Tem o objetivo de elucidar um pouco sobre essa disciplina, de maneira informal e explicativa.
Vamos pensar e refletir um pouco sobre algoritmo (Foto: Domínio Público / VisualHunt) |
O ato de definir é importante. Por definição, aprendemos o que algo venha a ser e até qual é a sua função. E em relação ao aprendizado, podemos aprender algo de duas maneiras bem simples: convivência ou teoria.
Exemplo 1: defina, com suas palavras, pombo.
Por convivência, você sabe o que é um pombo e pode defini-lo como uma ave urbana, geralmente cinza ou branca e que voa em baixas altitudes.
Exemplo 2: defina, com suas palavras, anjo.
Por teoria, você sabe o que é um anjo e que pode ser definido como um ser celestial, alado e que usa vestes brancas, por exemplo.
Mas e se lhe for perguntado: defina, com suas palavras, ponto. Sabe-se o que é um ponto por convivência, mas é difícil defini-lo. É difícil aprender o que é um ponto, somente por teoria, pois, é preciso vivenciar. Da mesma maneira é difícil aprender o que é um algoritmo só por definição e teoria, portanto, será apresentado a definição de algoritmo a seguir mas será somente por convivência e muita prática, que esta definição se tornará natural, intuitiva e clara.
A palavra deriva do nome do matemático Al-khwarizmi, no qual também deu origem a outra palavra conhecida por nós como algarismo. Segundo a definição do dicionário Aurélio:
Algoritmo é um conjunto de regras e operações bem definidas e ordenadas, destinadas à solução de um problema ou classe de problemas em um número finito de etapas.
A primeiro momento, essa é uma definição muito formal, "um algoritmo é uma sequência de passos lógicos a serem seguidos de maneira finita para resolver um determinado problema em busca de um objetivo". Mas ao final desse artigo, a definição se tornará mais clara.
Problema
Problema é uma questão não solvida, objeto de discussão. É algo que nos impede de atingir um determinado objetivo com eficiência e eficácia (Manzano e Oliveira, 2005).
A eficiência, são os meios de se chegar ao objetivo. E a eficácia, são os fins que podem resultar no objetivo. Um bom algoritmo que solucione um problema, não é apenas eficiente ou eficaz, mas, ambos ao mesmo tempo e por isso a frase a seguir será recorrente no processo de aprendizagem de algoritmos: não é porque funcionou, que está certo.
Proposta de Problema
João deseja atravessar a rua, no ponto A e chegar ao ponto B, como mostra a figura abaixo.
Exemplo de problema |
O problema é que João precisa atravessar a rua, no ponto A e chegar no ponto B. O algoritmo poderia ser:
- João atravessa a rua
Simples, um algoritmo que em um único passo resolveu o nosso problema. Certo? Negativo, é um algoritmo ineficiente e ineficaz. Antes de atravessar a rua, João precisa ficar atento se não está vindo carros a sua esquerda, só para depois atravessar.
- João olha para a esquerda
- Se não houverem carros vindo, atravessar
- Senão, esperar
Mesmo que não haja veículos vindo na esquerda, podem haver carros vindo na direita caso o semáforo esteja aberto. E o semáforo é outro detalhe a se ficar atento.
- João olha para o semáforo
- Se o semáforo estiver fechado para carros, olhar para a esquerda
- Se os carros estiverem parados, olhar para a direita
- Se não houverem carros vindo, atravessar
- Senão, esperar
- Senão, se o semáforo estiver aberto para os carros, esperar
Este é um algoritmo eficiente para atravessar a rua. Através dele, João poderá atravessar a rua muitas vezes, pois ele funciona. Mas, e se houver uma bicicleta vindo? Ou uma moto? Bem, isso não está no nosso algoritmo, portanto ele não será eficaz, logo, este é um exemplo de que não é porque funcionou que está certo. Funciona, apenas sob uma condição ou conjunto de critérios específicos. Mas é um começo e não vamos nos ater a isso agora.
Perceba que a maneira de resolver o problema acima, foi uma sequência de passos (já que foram enumerados) de maneira lógica e seguidos de maneira finita (porque o algoritmo tem um fim quando João atravessa a rua) e que resolve o problema alcançando o seu objetivo (que é atravessar a rua). Agora você já é apto a ler o que foi escrito no comecinho do artigo e entender a definição de algoritmo, retornemos a ela:
Algoritmo é um conjunto de regras e operações bem definidas e ordenadas, destinadas à solução de um problema ou classe de problemas em um número finito de etapas.
O que você aprendeu
Neste artigo vimos um pouco sobre o conceito de algoritmo e aprendemos a sua definição. Aprendemos:- O que é um algoritmo.
- O que é problema.
- Como resolver um problema utilizando um algoritmo.
No próximo artigo: Aplicação de um Algoritmo
Referência Bibliográfica
MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lógica para Desenvolvimento de Programação de Computadores. 17. ed. São Paulo: Érica, 2005. 219 p.
FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programação: a construção de algoritmos e estrutura de dados. 3. ed. São Paulo: Prentice Hall, 2005. 208 p.
Para citar esse artigo:
Comentários
Postar um comentário