Posts tagged ‘geek’
Representando e descrevendo algoritmos…
Já sabemos o que é um algoritmo e com o que ele se parece, mas como representar os algoritmos? Como descrevê-los? Como podemos ter uma representação física ou “tangível” da ideia que o algoritmo representa e do problema que ele resolve?
Há, basicamente, 3 formas de se representar algoritmos:
- Representação descritiva (ou descrição narrativa).
- Fluxogramas.
- Pseudocódigo.
Há também uma quarta forma, mas essa é especial e falaremos dela depois.
A descrição narrativa (ou representação descritiva)
Bom, essa é a mais simples e menos formal de todas as formas de se representar um algoritmo. Consiste simplesmente de descrever ou narrar como o algoritmo funciona. Basicamente, serve para todos os tipos de algoritmos dada a sua generalidade. Exemplos:
Algoritmo para escovar os dentes:
- Pegar a escova de dentes e lavá-la.
- Pegar o tubo de creme dental .
- Abrir o tubo de creme dental.
- Apertar o tubo sobre a escova aplicando uma pequena quantidade de creme sobre a mesma.
- Fechar o tubo.
- Colocar a escova na boca e movimentá-la para a cima e para baixo em pequenos círculos por um determinado tempo (repetir esta operação até que os dentes estejam limpos)
- Enxaguar a boca.
- Limpar e guardar a escova.
Esse algoritmo é bem genérico e pouco específico. Interessante notar que cada linha tem um verbo no infinitivo, um comando, uma ação. Uma instrução.
Neste contexto algorítmico, uma instrução indica uma ação elementar a ser executada.
As características da Descrição Narrativa (ou representação descritiva) são:
- Uso da linguagem natural (no caso, Português);
- Facilidade para quem conhece a linguagem e as ações a serem executadas;
- Possibilidade de má interpretação, originando ambiguidades e imprecisões;
- Pouca confiabilidade (a imprecisão gera desconfiança);
- Extensão (se escreve muito para dizer pouco).
PARA EXERCITAR: Escrever algoritmos para trocar um pneu, fritar um ovo, trocar uma lâmpada, atravessar uma rua, tomar banho, calcular o dobro de um número, calcular a média do bimestre e descascar batatas.
Fluxogramas
Fluxograma é um diagrama que representa um processo ou um algoritmo passo a passo, descrevendo o fluxo do processo ou do algoritmo. Cada figura geométrica representa uma ação distinta. Esses diagramas ilustram, de forma simples, a sequência operacional do algoritmo (ou processo).
São usados para muito mais coisas do que descrever algoritmos ou processos de software. Alguns usos são:
- Workflow de processos de negócios;
- Diagrama de Fluxo de Dados (DFD) para modelagem e documentação de sistemas;
- Representação da lógica de um programa (ou algoritmo).
Exemplo de um fluxograma simples mostrando como lidar com uma lâmpada que não funciona (fonte: Wikipedia)
Principais figuras (existem dezenas de outras)
Exemplo (cálculo de uma média, dados duas notas)
Vantagens e desvantagens dos fluxogramas:
Vantagens:
- O fluxograma é uma das ferramentas mais conhecidas;
- Figuras dizem mais do que palavras; (rsrsrs)
- Padrão Mundial.
Desvantagens:
- A solução é amarrada a dispositivos físicos;
- Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los coerentemente;
- Complicação à medida que o algoritmo cresce.
Bom, esse post já ficou muito grande, portanto a terceira forma, o pseudocódigo eu deixarei para o próximo post sobre essa seção de algoritmos!
Até!
As cantadas do Pedreiro Geek
Direto da Lan House do Purgatório, excelente e hilário post: http://migre.me/2i5C
É só conferir…
Até.
Comentários