A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmo I Aula 001.  Rogério Rodrigues L. Costa  Bacharel em Sistemas de Informação – UNIUBE - 2004  Especialista em Banco de Dados – UNITRI – 2006.

Apresentações semelhantes


Apresentação em tema: "Algoritmo I Aula 001.  Rogério Rodrigues L. Costa  Bacharel em Sistemas de Informação – UNIUBE - 2004  Especialista em Banco de Dados – UNITRI – 2006."— Transcrição da apresentação:

1 Algoritmo I Aula 001

2  Rogério Rodrigues L. Costa  Bacharel em Sistemas de Informação – UNIUBE  Especialista em Banco de Dados – UNITRI – 2006 Atividades:  Analista de Banco de Dados - CODIUB  Professor Formação: Nome:

3 Ementa  xxxxxxxxxxxxxxxxxxx.

4 Bibliografia  Básica: xxxxxx. xxxxxx.  Complementar: xxxxx. xxxxx.

5 Observações Gerais  Sistema de Avaliação da Instituição: 40,0 pontos distribuídos no semestre: 40,0 pontos distribuídos no semestre:  20,0 pontos no 1° bimestre (P1B)  20,0 pontos no 2° bimestre (P2B) Cálculo da Média Final (MF): Cálculo da Média Final (MF):  MF = ( P1B + P2B ) / 4. Critérios de Aprovação: Critérios de Aprovação:  MF <= 4  Reprovado  MF > 4 e 4 e < 7  Avaliação Substitutiva*  MF >= 7  Aprovado * A Avaliação Substitutiva terá o valor de 10 pontos sendo que a nota obtida com a avaliação irá substituir integralmente a MF, sendo necessário 7 para aprovação.

6 Observações Gerais  Sistema de Avaliação do Professor (bimestre): Trabalhos / Participação  05 pts Trabalhos / Participação  05 pts Avaliações  05 pts e 10 pts Avaliações  05 pts e 10 pts  Freqüência: Duas chamadas, sendo a primeira 10 minutos após o início da aula e a segunda a qualquer momento da segunda aula. Duas chamadas, sendo a primeira 10 minutos após o início da aula e a segunda a qualquer momento da segunda aula. Não ponho presença para aluno ausente. Não ponho presença para aluno ausente. Para aprovação é necessário pelo menos 75% de freqüência, alem da nota bimestral. Para aprovação é necessário pelo menos 75% de freqüência, alem da nota bimestral. Não controlo presença de aluno, não sei quantas faltas. Não controlo presença de aluno, não sei quantas faltas.

7 Visão geral Um programa de computador é um produto resultante da atividade intelectual de um programador. Que faz uso de uma linguagem de computador como (Pascal, Java, Delphi, PHP, Visual Basic, etc..) para representar seu algoritmo que foi construído em uma seqüência lógica. Essa atividade, por sua vez, depende de um treinamento prévio em:  Abstração e  Modelagem de problemas. Um programa de computador ou simplesmente software é representado pelas instruções e dados que algum ser humano definiu e que ao serem executados por alguma máquina cumprem algum objetivo.

8 Lógica de Programação Lógica de programação nada mais é do que uma forma de se escrever um programa de computador com uma linguagem de fácil entendimento para nós seres humanos. A lógica de programação é necessária para todas as pessoas que desejam trabalhar com desenvolvimento de sistemas e programas pois permite definir uma seqüência lógica para o desenvolvimento de um software.

9 Algoritmo Os algoritmos fazem parte do dia-a-dia das pessoas:  As instruções para o uso de medicamentos.  As indicações de como montar um aparelho.  Uma receita de culinária. ... Um algoritmo pode ser visto como uma seqüência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema. Segundo Dijkstra (1971), um algoritmo corresponde a uma descrição de um padrão de comportamento, expresso em termos de um conjunto finito de ações. Exemplo: Ao executarmos a operação A + B percebemos um padrão de comportamento, mesmo que a operação seja realizada para valores diferentes de A e B.

10  Então um algoritmo especifica com clareza e de forma correta as instruções que um software deverá conter para que, ao ser executado, forneça resultados esperados.  Porem, para isso devemos: 1.Identificar qual é o problema a ser resolvido  objetivo 2.Obter todas as informações necessárias a sua execução  entradas 3.Extrair as informações a respeito desse problema e relacioná-las com o conhecimento atual que se tem do assunto em questão  como resolver o problema (processamento) 4.Descrever claramente e em uma seqüência lógica, os passos para se chegar à sua solução  algoritmo

11  Existe um algoritmo embutido em toda tarefa, independentemente de ela ser relacionada a um programa de computador.  Em nosso cotidiano, executamos toda e qualquer tarefa utilizando algoritmos, mesmo não percebendo isso.  Comer.  Respirar.  Ir para a escola.  Dirigir um automóvel.  Resolver uma prova.  Trocar uma lâmpada.  Fazer um bolo.  etc. Aplicabilidade dos algoritmos

12  Exemplo:  Receita para se preparar um sorvete de chocolate: Ingredientes  1 tablete de chocolate meio amargo.  1 lata de leite condensado.  A mesma medida da lata com leite.  Raspas de chocolate ou chocolate granulado.

13 Modo de preparo  Inicio 1.Ponha o chocolate em uma tigela refratária. 2.Deixe a tigela no microondas durante um minuto em potência média. 3.Tire o chocolate do forno com cuidado e mexa-o até esfriar. 4.Bata-o no liquidificador com o leite condensado e o leite. 5.Despeje tudo em uma forma de gelo e espere congelar por três horas. 6.Distribua o sorvete em taças. 7.Decore com as raspas ou com o chocolate granulado. 8.Sirva gelado.  Fim

14  Exemplo:  Outro exemplo, agora dentro do domínio computacional, é o algoritmo de Euclides (definido entre 400 – 300 a.C.) para a determinação do máximo divisor comum entre dois números inteiros X e Y. Inicio Pedir para o usuário fornecer valor inteiro para X Pedir para o usuário fornecer valor inteiro para Y Enquanto Y ≠ 0 Faça R  o resto da divisão entre X e Y X  Y Y  R Fim Enquanto Exibir para o usuário o MDC procurado e que está em X Fim

15  Exemplo:  Considere o problema das Torres de Hanoi. A proposição do problema é a seguinte: inicialmente têm-se três hastes, A, B e C, e na haste A repousam três anéis de diâmetros diferentes, em ordem decrescente por diâmetro.  O objetivo é transferir os três anéis da haste. A para B, usando C se necessário. As regras de movimento são: Deve-se mover um único anel por vez. Um anel de diâmetro maior nunca pode repousar sobre algum outro de diâmetro menor.

16  Resolução do problema das Torres de Hanoi: Inicio 1.Mover um anel da haste A para a haste B 2.Mover um anel da haste A para a haste C 3.Mover um anel da haste B para a haste C 4.Mover um anel da haste A para a haste B 5.Mover um anel da haste C para a haste A 6.Mover um anel da haste C para a haste B 7.Mover um anel da haste A para a haste B Fim

17  A formalização de um algoritmo  A tarefa de especificar os algoritmos para representar um programa consiste em detalhar os dados que serão processados pelo programa e as instruções que vão operar sobre esses dados.  Essa especificação pode ser feita livremente, mas é importante formalizar a descrição dos algoritmos segundo alguma convenção, para que todas as pessoas envolvidas na sua criação possam entendê-lo da mesma forma.  Conjunto de regras: Sintaxe  comandos que devem ser utilizados e sua forma de utilização. Semântica  permite interpretar o algoritmo. É o significado dos comandos e/ou símbolos utilizados.

18  Exemplo:  Deseja-se especificar um algoritmo para calcular e exibir na tela a área de um triângulo (s) de base b e altura h, em que os valores de b e de h são fornecidos pelo usuário via teclado.

19  Resolução informal do problema da área do triângulo: Inicio 1.Pedir para o usuário digitar os valores de b e de h 2.Calcular a área s usando a formula s = (b x h) / 2 3.Exibir o valor de s na tela Fim

20  Resolução mais formal do problema da área do triângulo: (fluxograma) Inicio b, h S  (b * h) / 2 s Fim

21  Símbolos do fluxograma Terminador  Representa a saída para ou entrada do ambiente externo por exemplo, início ou final de programa, uso externo e origem ou destino de dados. Entrada Manual  Representa os dados, de qualquer tipo de mídia que sejam fornecidos, manualmente, em tempo de processamento, por exemplo, teclado, mouse. Processo  Representa qualquer tipo de processo, processamento de função, por exemplo, executando uma operação de soma de dois valores. Exibição  Representa os dados, cuja mídia seja de qualquer tipo, na qual a informação seja mostrada para o usuário, tais como monitores de vídeo. Decisão  Representa uma decisão ou um desvio tendo uma entrada; porém pode ter uma série de saídas alternativas, uma única das quais deverá ser ativada como conseqüência da avaliação das condições internas ao símbolo (Sim / Não).

22  Símbolos do fluxograma Documentos  Representa a impressão de resultados. Conector de página  Representa a continuação de um fluxograma. Seta  Representa a direção do fluxo de instruções.

23  Um dia de solInícioAcordar TomarCafé Sol? 1 2 Não Sim 1 Ir à praia 2 Ler jornal Ir ao cinema Jantar Fim

24  Resolução em Portugol do problema da área do triângulo: inicio leia(b, h) s  (b * h) / 2 mostre(s) fim  A sintaxe é dada pelos comandos dessa pseudolinguagem. A regra geral para se escrever um algoritmo nessa representação determina que: O código deve ser delimitado pelas palavras início e fim. Deve haver um recuo (endentação) para separar seqüências de comandos. O comando leia significa uma solicitação ao usuário para entrar com a informação desejada que será armazenada nas variáveis b e h. O comando mostre exibe a informação processada na tela para o usuário. A execução do código deve respeitar a seqüência dos comandos digitados.

25  A importância da formalização de um algoritmo, sua sintaxe e semântica podem ser resumidos assim: Evitar ambigüidades, pois definem regras sintáticas e semânticas que sempre são interpretadas da mesma forma. Impedir a criação de símbolos ou comandos desnecessários na criação de um algoritmo: representam um conjunto mínimo de regras que pode ser utilizado em qualquer algoritmo. Permitir uma aproximação com as regras de uma linguagem de programação, fazendo, assim, uma fácil tradução de um algoritmo para sua implementação no computador.

26  Não existe em computação uma “formula mágica” para resolver problemas. Porem podem ser utilizadas algumas dicas: 1.Ao se deparar com um problema novo, tente entendê-lo. Para auxiliar, pense no seguinte:  O que se deve descobrir ou calcular? Qual é o objetivo?  Quais são os dados disponíveis? São suficientes?  Quais as condições necessárias e suficientes para resolver o problema?  Faça um esboço informal de como ligar os dados com as condições.  Se possível, modele o problema de forma matemática. Atenção

27 2.Crie um plano com a solução:  Consulte sua memória e verifique se você já resolveu algum problema similar. A sua solução pode ser aproveitada por:  Analogia  quando o enunciado for diferente, mas a estrutura em si guarda similaridades;  Generalização  quando se tem uma solução particular e deseja uma solução geral.  Especialização  quando se conhece alguma solução geral que serve como base para uma em particular ou ainda uma mistura das três técnicas anteriores.  Verifique se é necessário introduzir algum elemento novo no problema, como um problema auxiliar.  Se o problema for muito complicado, tente quebrá-lo em partes menores e solucionar essas partes.  É possível enxergar o problema de outra forma, de modo que seu entendimento se torne mais simples?

28 3.Formalize a solução:  Crie um algoritmo informal com passos que resolvam o problema.  Verifique se cada passo desse algoritmo está correto.  Escreva um algoritmo formalizado por meio de um fluxograma ou outra técnica de representação.

29 4.Exame dos resultados:  Teste o algoritmo com diversos dados de entrada e verifique os resultados (teste de mesa).  Se o algoritmo não gerou resultado algum, o problema está na sua sintaxe e nos comandos utilizados. Volte e tente encontrar o erro.  Se o algoritmo gerou resultados, estes estão corretos? Analise sua consistência.  Se não estão corretos, alguma condição, operação ou ordem das operações está incorreta. Volte e tente encontrar o erro.

30 5.Otimização da solução:  É possível melhorar o algoritmo?  É possível reduzir o número de passos ou dados?  É possível conseguir uma solução ótima?

31 Exercícios

32 1.Descreva como descobrir uma moeda falsa em um grupo de cinco moedas, fazendo uso de uma balança analítica (sabe-se que a moeda falsa é mais leve que as outras). Lembre-se de que sua descrição deve resolver o problema para qualquer situação. 2.Têm-se três garrafas não graduadas, com tamanhos diferentes, uma cheia até a boca, com capacidade de oito litros e as outras duas vazias com capacidade de cinco e três litros respectivamente. Deseja-se separar o conteúdo da primeira garrafa em quantidades iguais entre as três garrafas. 3.Um caramujo está na parede de um poço a cinco metros de sua borda. Tentando sair do poço, ele sobe três metros durante o dia, porém desce escorregando dois metros durante a noite. Quantos dias levará para o caramujo conseguir sair do poço? 4.Um tijolo “pesa” um quilo mais meio tijolo. Quantos quilos “pesam” um tijolo e meio? 5.Você está em uma margem de um rio, com três animais: uma galinha, um cachorro e uma raposa. Somente pode atravessar com um animal por vez e nunca deixar a raposa e o cachorro sozinhos nem a raposa e a galinha. Descreva uma forma de conseguir atravessar os três animais, obedecendo a essas condições. 6.José tem 1,50 m e cresce 2 centímetros por ano. Pedro tem 1,10 m e cresce 3 centímetros por ano. Construa um algoritmo em portugol que calcule em quantos anos Pedro será maior que José.

33 7.Calcular a média final dos alunos da 5ª série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Elaborar um algoritmo que calcule e mostre a média final das notas dos alunos. 8.Identifique os dados de entrada, processamento e saída no algoritmo abaixo Receba código da peça Receba valor da peça Receba Quantidade de peças Calcule o valor total da peça (Quantidade * Valor da peça) Mostre o código da peça e seu valor total 9.Faça um algoritmo para “Calcular o estoque médio de uma peça”, sendo que ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2. 10.Construa um fluxograma que: Leia a cotação do dólar Leia um valor em dólares Converta esse valor para Real Mostre o resultado 11.Desenvolva um fluxograma que: Leia 4 (quatro) números Calcule o quadrado para cada um Some todos e Mostre o resultado

34 Rã 1Rã 2Rã 3 Rã 2Rã 1  Como fazer para que as três rãs que estão em quatro casas nas seguintes posições:  Fiquem assim:

35  Regras:  Somente pular para a casa da frente ou de trás se ela estiver vazia.  Pular a rã vizinha se for parar em uma casa vazia.  Este algoritmo serve para ordenar dados, e é muito utilizado em computação.

36 Rã 1Rã 2Rã 3  Resolução


Carregar ppt "Algoritmo I Aula 001.  Rogério Rodrigues L. Costa  Bacharel em Sistemas de Informação – UNIUBE - 2004  Especialista em Banco de Dados – UNITRI – 2006."

Apresentações semelhantes


Anúncios Google