1 / 36

CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº .: LEANDRO GONZALEZ

CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº .: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com. ALGORITMO. Conteúdo programático: Introdução: Lógica ; Algoritmo ; Formas de representação de Algoritmo; Programa . Itens fundamentais: Tipos de dados;

phong
Download Presentation

CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº .: LEANDRO GONZALEZ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ALGORITMO PROFº.: LEANDRO GONZALEZ E-MAIL: email.lgonzalez@gmail.com

  2. ALGORITMO Conteúdo programático: • Introdução: • Lógica; • Algoritmo; • Formas de representação de Algoritmo; • Programa. • Itens fundamentais: • Tipos de dados; • Constantes; • Variáveis; • Comentários; • Expressões e Operadores; • Comandos de entrada e saída;

  3. ALGORITMO • Itens fundamentais: • Estrutura sequencial; • Estrutura condicional; • Estrutura de repetição. • Estrutura de dados: • Vetores; • Matrizes; • Arquivos; • Modularização: • Sub-rotinas; • Funções • Utilização da Ferramenta VisuALG

  4. ALGORITMO • Bibliografia: • FORBELLONE, Luis e EBERSPACHER, Henri. Lógica de Programação: a construção de algoritmos e estrutura de dados. • APOSTILA ALGORITMOS. Disponível em: <http://www.ebah.com.br/content/ABAAAAMhkAE/logica-programacao>

  5. Lógica • Lógica é oriunda da palavra grega logiké, que significa “arte de raciocinar”. • Aristóteles, filósofo grego (384-322 a.C.), foi o primeiro a estudar sobre os aspectos da lógica. • Lógica é o ramo da filosofia que cuida das regras do bem pensar ou do pensar correto. • A lógica ensina a colocar Ordem no Pensamento.

  6. Lógica • Resolva os seguintes problemas de lógica (5 minutos): • P1 – Uma lesma deve subir um poste de 10m de altura. Durante o período diurno (manhã e tarde) sobe 2m e à noite desce 1m. Em quantos dias atingirá o topo do poste? • P2 - O pai do padre é filho do meu pai. O que eu sou do Padre? • P3– Qual o próximo número da sequência 7,8,10,13,17 ... ? • P4- Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos?

  7. Sequência Lógica • SequenciaLógica é um conjunto de instruçõesexecutadas (sequencialmente) atéatingir um objetivoousolução de um problema.

  8. Instruções • Na linguagem comum: • “Instrução é anormadefinidapara a realização de algo”. • Em informática: • Instrução indica aocomputador uma ação elementar a ser executada. • Uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica.

  9. Instruções • Ex: ao fazer omelete de batatas, precisaremos colocar em prática uma série de instruções: • Descascar as batatas, bater os ovos, fritar as batatas, etc...; • Essas instruções tem que ser executadas em uma ordemadequada; • Assim, uma instrução tomada em separado não tem muitosentido.

  10. Algoritmizando a Lógica • Algoritmo é umasequencia de passosquevisamatingir um objetivobemdefinido. • Podemos pensar em algoritmo como uma receita, uma sequência de instruções para atingir uma meta específica.

  11. Algoritmizando a Lógica • Algoritmo é a descrição de um conjunto finito de instruções para a solução de um problema em um tempo finito. • Estastarefasnãopodemserambíguasnemsubjetivasnasuadefinição, devemserclaras e precisas.

  12. Algoritmizando a Lógica • Exemplo de aplicação da lógica e construção de algoritmos: • Um homem precisa atravessar um rio com um barcoe suastrês cargas, que são: um cachorro, uma galinha e um saco de milho. • Quais as restrições desse problema? • Há limite na quantidade de viagens? • O que o homem deve fazer para conseguir atravessar o rio sem perder as suas cargas?

  13. Algoritmizando a Lógica • Quais as restriçõesdesseproblema? • O barco possui capacidade de transportar apenas o Homem e mais uma de suas três cargas • O cachorronãopodeficarsó com a galinha • A galinhanãopodeficarsó com o milho • Hálimitenaquantidade de viagens? • Não • O que o homemdevefazerparaatravessar a carga?

  14. Solução Início: H – C – G – M | vazio

  15. Torre de Hanói Haste A Haste B Haste C Peça Pequena Peça Média Peça Grande

  16. Torre de Hanói • Objetivo: • Mover os discos da haste A para a haste C. • Quais as restrições? • Um disco maiornão podeficarem cima de um disco menor. • Só pode mover um disco de cada vez. • Qual a sequêncialógicapara resolver esteproblema?

  17. Algoritmo • Um problema pode ser solucionado através de diversos algoritmos. • Não se aprende algoritmo copiando. Só aprende algoritmo exercitando. • Um algoritmo deve sempre possuir pelo menos um resultado, normalmente chamado de saída.

  18. Porqueusaralgoritmos? • Abstração - todo o esforço é concentradonaresolução do problema e nãoemdetalhescomputacionaisquepodemseracrescentadosposteriormente. • Portabilidade- umasoluçãoalgorítmicapodesertraduzidaparaqualquerlinguagem de programação.

  19. Forma de representaçãodo Algoritmo: • Descrição narrativa ou Linguagem Natural; • Fluxograma ou Diagrama de Blocos; • Diagrama de Chapin; • Pseudocódigo, Português estruturado ou Portugol.

  20. Descrição Narrativa • Éa forma mais espontânea de representação de algoritmos, pois descrevemos os passos do algoritmo utilizando o nosso linguajar quotidiano. • Não se emprega nenhum recurso diagramático, e não há uma rigidez na estruturação das ações. • Apresenta conteúdo extenso.

  21. Descrição Narrativa • Exemplo: • O uso de linguagem natural pode gerar más interpretações, ambiguidades e imprecisões.

  22. Fluxograma • É uma representação gráfica de algoritmo onde formas geométricas diferentes implicam ações distintas. Tal propriedade facilita o entendimento das ideias contidas nos algoritmos. • Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los. • Inicie o fluxograma de cima para baixo e da esquerda para a direita. • Evitar cruzamento nas linhas do fluxograma.

  23. Fluxograma • No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim, etc.

  24. Fluxograma • Exemplo:

  25. Diagrama Chapin • A ideia básica deste diagrama é representar as ações de um algoritmo dentro de um único retângulo, subdividido em retângulos menores, que representam os diferentes blocos de sequência de ações do algoritmo. Sequência Seleção Repetição

  26. Diagrama Chapin • Exemplo

  27. Pseudocódigo • Representação rica em detalhes e assemelha-se bastante à forma em que os programas são escritos. • Pode-se definir quais e como os dados vão estar estruturados. • Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. • Sintaxe não padronizada.

  28. Pseudocódigo • Exemplo:

  29. Algoritmo • Existem três estruturas básicas para a construção de algoritmos: sequenciação, seleção e repetição. A combinação destas três estruturas permite-nos a construção de algoritmos para a resolução de problemas extremamente complexos. A programação estruturada se baseia nestas três estruturas básicas.

  30. Algoritmo • Imagine a seguinte situação: precisamos elaborar um algoritmo para trocar uma lâmpada. Utilizando apenas a estrutura de sequenciação.

  31. Algoritmo • No entanto, antes de trocarmos a lâmpada devemos nos certificar de que ela realmente esteja queimada, para então trocá-la. Assim, podemos melhorar o nosso algoritmo.

  32. Algoritmo • Ainda podemos deixá-lo mais completo. Quando verificamos que a lâmpada está queimada, subimos para trocá-la, mas não consideramos a hipótese da lâmpada nova também estar queimada, e se isso ocorrer, precisaremos executar algumas ações novamente, até que a lâmpada acenda.

  33. Passos para a construção de um algoritmo 1. Identificar o problema (objetivo) mediante leitura atenta de seu enunciado; 2. Retirar do enunciado as entradas de dados, ou seja, identificar os dados que devem ser fornecidos; 3. Retirar do enunciado as saídas de dados que devem ser gerados como resultado da solução; 4. Determinar o que deve ser feito para transformar (processar) as entradas nas saídas desejadas; 5. Construir o algoritmo; 6. Testar a solução.

  34. Identificando entrada, processamento e saída 2- Construir um algoritmo para somar dois números Entrada: Primeiro número Segundo Número Processamento: Somar os números Saída: Resultado da soma 1- Construir um algoritmo para fazer um suco de Laranja natural. Entrada: Laranja Processamento: Cortar a laranja Espremer a laranja Saída: Suco de laranja

  35. Lógica de Programação • O conhecimento de Lógica de Programação é essencialparaas pessoasquedesejamtrabalhar com desenvolvimento de sistemas e programas. • Uma boa lógica de programação é desenvolvida a partir de um conjunto de elementos, entre eles: • Integridade; • Clareza; • Eficiência; • Modularidade; • Generalidade. • A lógica de programação permitedefinir a sequênciacorretapara o desenvolvimento de algoritmo e programascomputacionais.

  36. Programas • Programas são algoritmos escritos em uma linguagem de programação (Java, PHP, C#, Ruby, Delphi, Visual Basic) e que são interpretados e executados por uma máquina. • Um computador é somente capaz de realizar estritamente as tarefas que lhe forem delegadas e que façam parte do conjunto daquelas ações que ele pode executar (programa).

More Related