* Esta obra é uma adptação do autor desse blog da disciplina de Projeto e Desenvolvimento de Algoritmo para Computação do curso de Tecnologia em Sistemas de Computacão/Cederj UFF das aulas originais cujo os autores são: Adriano Cruz e Jonas Knopman.
Revisão em 27/fev/2008 19:28
Conteúdo:
2. Introdução
- Receita
- Exemplo
- Origem
- Características
- Dificuldades
- Exemplo das rãs
3. Representação de Algoritmos
- Linguagem Natural
- Fluxograma
- Pseudo-Linguagem
- Técnicas de Construção
- Reaproveitamento
1. Objetivos
- Apresentar o que são algoritmos.
- Formas de representação.
- Técnicas de criação e desenvolvimento de algoritmos.
Receita
- Um algoritmo é um conjunto finito de regras que fornece uma sequência precisa de operações para resolver um problema específico.
- Por exemplo, uma receita é um algoritmo para resolver o problema de fazer um bolo.
- Claro que a receita dever ser precisa, por exemplo, colocar sal à gosto não vale!
- Todos nós sabemos criar e seguir algoritmos.
- Como ir de casa até o trabalho?
- Como fazer um bife à milanesa?
- Como trocar o pneu do carro?
- Segundo Donald Knuth, um conceituado pesquisador da criação e estudo de algoritmos, a palavra tem origem no nome de um matemático persa, que viveu no século IX, cujo nome era Ab Ja´far Maomé ibn Mûsâ al-Khowârizm ou Pai de Já´far, Maomé, filho de Moisés da cidade de Khowârizm.
- Finitude - algoritmos devem terminar após um número finito de passos;
- Definição - cada passo deve ser precisamente definido;
- Entradas - devem ter zero ou mais entradas;
- Saídas - devem ter uma ou mais saídas;
- Efetividade - todas as operações devem ser simples de modo que possam ser executadas em um tempo limitado por um ser humano.
- Pode haver mais de uma solução para um problema.
- Criação de algoritmos é um processo não automático e tem muito de arte.
- Difícil para iniciantes saber o que o computador pode ou não fazer.
Como fazer para que os quadros que estão com; a rã, o x e o zero que estão em quatro casas nas seguintes posiçõe,
terminem assim?
Regra para a rã e os demais quadros
- Somente pular para a casa da frente ou de trás se ela estiver vazia.
- Pular o quadro vizinho se for parar em uma casa vazia.
- Este algoritmo serve para ordenar dados, e é muito utilizado em computação.
Click para ver movimento!
3. Representação de algoritmos
- Linguagem natural: algoritmos expressos diretamente em linguagem natural, como nas receitas.
- Fluxogramas; representação gráfica.
- Pseudo-linguagem: emprega linguagem intermediária entre linguagem natural e linguagem de programação.
- Repetir 10 vezes cada um dos quatro exercícios abaixo;
.: Levantar e abaixar o braço esquerdo;
.: Levantar e abaixar a perna direita;
.: Levantar e abaixar a perna esquera.
Fluxogramas
- Representação de algorítmos por meio de símbolos geométricos.
- Cada tipo de operação é representado por um símbolo diferente.
- Tem a vantagem de permitir o acompanhamento visual do fluxo do algoritmo.
Início e fim de algorítmo
Atribuições e cáculos de valores
Entrada de dados
Discos
Impressão de resultados
Conector na página
Conector fora da página
Entrada manual
Ligação entre símbolos
Exemplo - Um dia de sol!
Pseudo-linguagem
- Este método será o mais empregado ao longo do nosso curso, portanto agora somente iremos mostrar alguns exemplos.
- Este método procura misturar as facilidades da linguam natural com a precisão das linguagens de programação.
- Não existe um padrão para esta forma de descrição.
- A nossa pseudo-linguagem será definida ao longo do curso.
- Calcular a área de uma mesa retangular
4. Técnicas de Projeto de Algoritmos
Técnica para Construção
- Considere a receita a seguir
- Filé de peixe com molho branco
- Lave os filés e tempere com o suco de limões, sal, ...
.: { preparo do molho branco }
- Coloque em uma panela a manteiga, a farinha e o leite ...
.: { juntando os dois }
- Adicione queijo parmessão ralado e queijo gruyère. Misture e ponha sobre os filés.
- Fim da receita de filé de peixe com...
- Observe na receita acima técnica de divisão do problema em partes menores (preparo dos peixes, molho e o final)
- Permite que o prato seja preparado por mais de uma pessoa e simplifica a execução.
- Considere a receita de alface com molho branco
- Alface com molho branco
- Derreta a manteiga. Junte alface cortada. ...
.: { preparo do molho branco }
- Coloque em uma panela a manteiga, a farinha e o leite ...
.: { juntando os dois }
- Junt suco de limão ao alface e ao molho branco ...
- Fim da receita de alface com ...
- Nesta receita também temos uma parte descrevendo como preparar o molho branco.
- Se o livro de receitas tiver vários pratos com molho branco há desperdício de papel.
- Considere agora que a página 25 do livro ensine como preparar o molho branco.
- As duas receitas poderiam indicar que para preparar o molho branco o mestre cuca deve ler a página 25.
- O livro fica menor.
- Se amanhã descobrir que colocar um dente de alho melhora o sabor, somente preciso alterar a página 25 e todas as receitas ficam mais saborosas automaticamente.
- Uma solução mais radical para reaproveitar algoritmos é usar o que outros criaram.
- Assuma que você descobriu que no supermercado há um enlatdado de molho branco ótimo, melhor que o seu (heresia, vale somente como exemplo!).
- Neste caso a sua receita da marca tal no supermercado (heresia novamente!)
http://equipe.nce.ufrj.br/adriano/algoritmos/apostila/algoritmos.htm
http://www.ucb.br/programar/algoritmo/conceitosV.htm
Nenhum comentário:
Postar um comentário