Linguagem Natural
Como ilustração de algoritmo em linguagem natural vamos considerar a receita abaixo. Por economia de texto e facilidade a receita não mostra as quantidades dos ingredientes (as entradas). Alguns mais maldosos dizem que o cozinheiro não quis divulgar o seu segredo.- Filé de peixe com molho branco.
- {preparo dos peixes}
- Lave os filés e tempere com o suco dos limões, sal, pimenta e salsinha picada. Deixe por 1/2 hora neste tempero. Enxugue e passe cada filé na farinha de trigo. Depois passe pelos ovos batidos e frite na manteiga até ficarem dourados dos dois lados.
- {preparo do molho branco}
- Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo médio, cozinhe até engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando até que o queijo derreta, mexendo constantemente.
- {juntando os dois}
- Adicione queijo parmesão ralado e queijo gruyère. Misture e ponha sobre os filés.
- {preparo dos peixes}
- Fim da receita do filé de peixe com molho branco.
- Alface com molho branco.
- {preparo do molho branco}
- Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo médio, cozinhe até engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando até que o queijo derreta, mexendo constantemente.
- {preparo da alface}
- Derreta a manteiga. Junte a alface cortada. Salpique o sal e deixe cozinhar por uns 5 a 10 minutos ou até a alface ficar tenra, ou o líquido da panela secar.
- {juntando os dois}
- Junte ao molho branco e ao suco de limão. Coloque numa travessa e enfeite em volta com pão torrado cortado em triângulos.
- {preparo do molho branco}
- Fim da receita do alface com molho branco
Observe agora uma nova maneira de descrever estas duas receitas:
- Molho branco
- Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo médio, cozinhe até engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando até que o queijo derreta, mexendo constantemente.
- Fim da receita do molho branco
- Filé de peixe com molho branco
- {preparo dos peixes}
- Lave os filés e tempere com o suco dos limões, sal, pimenta e salsinha picada. Deixe por 1/2 hora neste tempero. Enxugue e passe cada filé na farinha de trigo. Depois passe pelos ovos batidos e frite na manteiga até ficarem dourados dos dois lados.
- {preparo do molho branco}
- Prepare a receita básica de molho branco.
- {juntando os dois}
- Adicione queijo parmesão ralado e queijo gruyère. Misture e ponha sobre os filés.
- {preparo dos peixes}
- Fim da receita do Filé de peixe com molho branco.
- Alface com molho branco
- {preparo do molho branco}
- Prepare o molho branco segundo a receita básica.
- {preparo da alface}
- Derreta a manteiga. Junte a alface cortada. Salpique o sal e deixe cozinhar por uns 5 a 10 minutos ou até a alface ficar tenra, ou o líquido da panela secar.
- {juntando os dois}
- Junte ao molho branco e ao suco de limão. Coloque numa travessa e enfeite em volta com pão torrado cortado em triângulos.
- {preparo do molho branco}
- Fim da receita do Alface com molho branco.
Você pode argumentar que, no método anterior, era mais rápido seguir uma receita. Agora, ao preparar o peixe ao molho branco, por exemplo, você tem de interromper a leitura, marcar a página onde você estava, abrir na página da receita de molho branco, aprender a prepará-lo e, então, retornar à receita do peixe. Você tem razão, mas, além da economia de papel, existem outras vantagens em separar a receita do molho branco. Imagine, por exemplo, que amanhã você descubra que o molho branco fica uma delícia se levar uma pitada de alho. Basta modificar a receita de molho branco, que aparece em um único lugar no livro, e todas as receitas "ao molho branco" estarão automaticamente modificadas. No método anterior, seria preciso modificar todas as receitas que usam molho branco, com o risco considerável de esquecermos de modificar alguma delas.
Observe ainda a variação abaixo da receita do peixe:
- Filé de peixe com molho branco
- {preparo dos peixes}
- Lave os filés e tempere com o suco dos limões, sal, pimenta e salsinha picada. Deixe por 1/2 hora neste tempero. Enxugue e passe cada filé na farinha de trigo. Depois passe pelos ovos batidos e frite na manteiga até ficarem dourados dos dois lados.
- {preparo do molho branco}
- Compre molho branco no supermercado
- {juntando os dois}
- Adicione queijo parmesão ralado e queijo gruyère. Misture e ponha sobre os filés.
- {preparo dos peixes}
- Fim da receita do filé de peixe com molho branco.
Toda a discussão acima tem uma forte analogia com o estudo de algoritmos e técnicas de programação. Isto ficará mais claro para você mais tarde, quando estudarmos procedimentos e funções.
Para ilustrar mais um conceito importante de algoritmos vamos analisar mais um exemplo, considerando o problema de calcular a área de uma mesa retangular. Este cálculo pode ser efetuado se seguirmos os seguintes passos.
- Cálculo da área de uma mesa.
- Medir a largura da mesa e anotar o resultado.
- Medir o comprimento da mesa e anotar o resultado.
- Multiplicar o comprimento pela largura e anotar o resultado.
- O valor da área da mesa é o resultado anotado no passo anterior.
- Fim do cálculo da área da mesa.
- Cálculo das áreas de uma mesa e de uma toalha.
- Cálculo da área de uma mesa.
- Medir a largura da mesa e anotar o resultado.
- Medir o comprimento da mesa e anotar o resultado.
- Multiplicar o comprimento pela largura e anotar o resultado.
- O valor da área da mesa é o resultado anotado no passo anterior.
- Fim do cálculo da área da mesa.
- Cálculo da área da toalha.
- Medir a largura da toalha e anotar o resultado.
- Medir o comprimento da mesa e anotar o resultado.
- Multiplicar o comprimento pela largura e anotar o resultado.
- O valor da área da toalha é o resultado anotado passo anterior.
- Fim do cálculo da área da toalha.
- Cálculo da área de uma mesa.
- Fim do cálculo das áreas da mesa e da toalha.
Este algoritmo mais geral poderia ser descrito da seguinte maneira:
- Cálculo da área de um objeto retangular ou quadrado.
- Medir a largura do objeto e anotar o resultado.
- Medir o comprimento do objeto e anotar o resultado
- Multiplicar o comprimento pela largura e anotar o resultado.
- O valor da área e o resultado anotado no passo anterior.
- Fim do cálculo da área de um objeto retangular ou quadrado.
- Calcular a área da mesa usando o algoritmo acima.
- Calcular a área da toalha usando o mesmo algoritmo.
A maioria dos algoritmos contém decisões, por exemplo, para atravessar uma rua preciso verificar se o sinal de pedestres está verde e verificar se nenhum carro está avançando o sinal, somente após decidir se estes fatos se confirmaram poderei atravessar a rua.
Para considerar um algoritmo que inclua decisões vamos estudar um algoritmo que nos ajude a decidir o que fazer em um domingo. Um possível algoritmo poderia ser o seguinte:
- Algoritmo de domingo.
- Acordar.
- Tomar o café.
- Se estiver sol vou à praia senão leio o jornal.
- Almoçar.
- Ir ao cinema.
- Fazer uma refeição.
- Ir dormir.
- Final do domingo.
Vamos agora considerar um exemplo um pouco mais matemático e estudar o algoritmo para calcular as raízes de uma equação do segundo grau da forma
ax2+bx+c=0
As raízes podem ser calculadas pelas fórmulasx1=[-b+(b2-4ac)(1/2)]/(2a)
x2=[-b-(b2-4ac)(1/2)]/(2a)
Aparentemente o algoritmo se reduziria ao cálculo da fórmula, no entanto ao detalharmos as ações devemos prever tudo que pode acontecer durante o cálculo desta fórmula. Por exemplo o que fazer se o valor do coeficiente a for igual a zero? Um possível algoritmo é o seguinte:- Algoritmo para cálculo de uma equação do segundo grau.
- Obter os coeficientes a, b e c
- Se o coeficiente a for igual a zero informar que esta não é uma equação do segundo grau e terminar o algoritmo.
- Caso contrário continue e faça
- Calcular delta=b2-4ac
- Se o valor de delta for negativo informar que a equação não tem raizes reais e terminar o algoritmo.
- Caso contrário continue e faça
- Calcular a raiz quadrada de delta e guardar o resultado como raiz
- Calcular x1=(-b + raiz)/(2a)
- Calcular x2=(-b - raiz)/(2a)
- Fornecer como resultado x1 e x2
- Terminar o algoritmo.
- Fim do algoritmo para cálculo de uma equação do segundo grau.
Este é um dos possíveis algoritmos por diversas razões. Por exemplo, poderíamos incluir no algoritmo o cálculo das raízes imaginárias ou no caso do coeficiente a ser igual a zero calcular como se fosse uma equação do primeiro grau.
Nenhum comentário:
Postar um comentário