Conteúdo de hoje... Your Logo Here Definição de Algoritmo Prof. Lucas Amorim lucas@ic.ufal.br Exemplos de Algoritmos Técnicas de resolução de problemas Natural Introdução à Computação Definição e Representação de Algoritmos Fluxograma Pseudo-código O que é um algoritmo? Exemplos de Algoritmos Um algoritmo é um conjunto finito de regras que fornece uma sequência de operações para resolver um problema específico. - Adriano Joaquim de Oliveira Cruz É uma especificação de uma sequência ordenada de passos para a resolução de um processo. Everton Coimbra de Araújo Uma sequência de instruções que resolvem um dado problema. Jaime Evaristo Uma receita é um algoritmo!
Técnicas de Resolução de Problemas Problema da Travessia Vimos que um algoritmo pode representar a solução de um problema. Veremos, então, algumas técnicas de resolução de problemas. 1. O barco comporta apenas o fazendeiro e uma das cargas. 2. Não podem ficar a sós: - Raposa e galinhas - Galinhas e milho Podemos utilizar a técnica da exaustão! Problema da Travessia Problema da pesagem das esferas Solução: Atravesse as galinhas; Retorne sozinho; Atravesse a raposa; Retorne com as galinhas; Atravesse o milho; Retorne sozinho; Atravesse as galinhas; ] Duas esferas têm o mesmo peso, a outra é mais pesada. Como encontrar a mais pesada com apenas uma pesagem?
Problema da pesagem das esferas Problema dos Baldes Solução: Escolha duas esferas. Coloque cada uma das esferas escolhidas num dos pratos da balança. Se a balança ficar equilibrada, a esfera não escolhida é a mais pesada. Senão, a mais pesada é a esfera cujo prato está num nível mais baixo. 3L 5L Obs.: A solução desta questão foi necessária num filme da série Duro de Matar para o protagonista desativar uma bomba. Temos dois baldes com 3 litros e 5 litros de capacidade. Como separar exatos 4 litros de água? Técnica de resolução por partes! Problema dos Baldes Problema dos Baldes Solução 1: Como 4 = 3 + 1, se conseguirmos separar 1 litro, resolveremos o problema. Solução 2: Como 4 = 5-1, se conseguirmos retirar 1 litro do balde de 5 litros, resolveremos o problema. Encha o recipiente de 3 litros. Transfira o conteúdo do recipiente de 3 litros para o recipiente de 5 litros. Encha o recipiente de 3 litros. Com o conteúdo do recipiente de 3 litros, complete o recipiente de 5 litros. Esvazie o recipiente de 5 litros. Transfira o conteúdo do recipiente de 3 litros para o recipiente de 5 litros. Encha o recipiente de 3 litros. Transfira o conteúdo do recipiente de 3 litros para o recipiente de 5 litros. Encha o recipiente de 5 litros. Com o conteúdo do recipiente de 5 litros, encha o recipiente de 3 litros. Esvazie o recipiente de 3 litros. Transfira o conteúdo do recipiente de 5 litros para o recipiente de 3 litros Encha o recipiente de 5 litros. Com o conteúdo do recipiente de 5 litros, complete o recipiente de 3 litros.
As três representações mais conhecidas: Descrição Narrativa; Fluxograma convencional; Pseudocódigo, também conhecido como Português Estruturado. Descrição Narrativa Os algoritmos são expressos em linguagem natural. Informal. Exemplos? Descrição Narrativa (Exemplos) Descrição Narrativa (Exemplos) Receita de bolo: Troca de um pneu furado: Misture os ingredientes, Afrouxar ligeiramente as porcas Unte a forma com manteiga Suspender o carro Despeje a mistura na forma Retirar as porcas e o pneu Leve a forma ao forno Colocar o pneu reserva Enquanto não corar, Apertar as porcas Deixe a forma no forno Abaixar o carro Retire do forno Dar o aperto final nas porcas.
Descrição Narrativa (Exemplos) Cálculo da média de um aluno: Obter as notas da primeira e da segunda prova Calcular a média aritmética das duas Se a média for maior ou igual a 7, o aluno foi aprovado, Senão, ele foi reprovado. Descrição Narrativa Pouco usada na prática: problemas de interpretação. Imprecisão e ambiguidade. Ex: afrouxar ligeiramente as porcas Seria melhor Girar as porcas em 30º no sentido antihorário. Fluxograma Fluxograma Representação visual. Formas geométricas distintas representam as diferentes ações. Fácil compreensão. Menos impreciso que a descrição narrativa. Início e fim do fluxograma Entrada de dados saída de dados (impressão) atribuição, chamada ou retorno de função saída de dados (exibição em tela) Decisão
Fluxograma (Exemplo) Pseudocódigo Forma de representação rica em detalhes Preocupa-se com detalhes de implementação Mais preciso Assemelha-se aos programas Possui grande aceitação Independente de linguagem de programação Pode ser traduzido para um programa Pseudocódigo Pseudocódigo (Exemplo) Forma geral Algoritmo <nome_do_algoritmo> <declaração_de_variaveis> <subalgoritmos> Início <corpo_do_algoritmo> Fim. Algoritmo Média Var N1, N2, Média: real Início Leia N1, N2 Média (N1 + N2)/2 Se Média >= 7 Então Escreva Aprovado Senão Escreva Reprovado Fim_se Fim.
Outras formas de interação Email: lucas@ic.ufal.br Site e/ou Blog: www.ic.ufal.br/professor/lucas Obrigado!