Algoritmos - PowerPoint PPT Presentation

About This Presentation
Title:

Algoritmos

Description:

Algoritmos CONCEITOS B SICOS * ALGORITMOS Repeti o Tamb m conhecida por looping ou la o; Permite que tarefas individuais sejam repetidas um n mero ... – PowerPoint PPT presentation

Number of Views:124
Avg rating:3.0/5.0
Slides: 41
Provided by: bm59
Category:
Tags: algoritmos

less

Transcript and Presenter's Notes

Title: Algoritmos


1
Algoritmos
  • CONCEITOS BÁSICOS

2
LÓGICA
  • É a arte de bem pensar.
  • Ciência das formas de pensamento estuda a
    correção do raciocínio (forma mais complexa do
    pensamento).
  • Visa a ordem da razão - Coloca ordem no
    pensamento.
  • É a ciência que estuda as leis e critérios de
    validade que regem o pensamento e a demonstração,
    ou seja, ciência dos princípios formais do
    raciocínio.

3
LÓGICA
  • Exemplos
  • Todo mamífero é um animal.
  • Todo cavalo é um mamífero.
  • Portanto todo cavalo é um animal.
  • A gaveta está fechada
  • A caneta está dentro da gaveta.
  • Precisamos primeiro abrir a gaveta para depois
    pegar a caneta.

4
LÓGICA
  • Fatores que influenciam a lógica
  • calma
  • conhecimento
  • vivência
  • versatilidade
  • experiência
  • criatividade
  • ponderação
  • responsabilidade e etc.

5
LÓGICA
  • Seu uso na programação Lógica de Programação
  • Significa o uso correto das leis do pensamento,
    da ordem da razão e de processos de raciocínio e
    simbolização formais na programação de
    computadores, objetivando a racionalidade e o
    desenvolvimento de técnicas que cooperem para a
    produção de soluções logicamente válidas e
    coerentes, que resolvam com qualidade os
    problemas que se deseja programar.
  • O objetivo principal da Lógica de Programação é a
    construção de algoritmos.

6
ALGORITMOS
  • É o conceito central da lógica de programação
    que basicamente consiste na construção de
    algoritmos.

7
ALGORITMOS
  • Presentes em nosso dia-a-dia. Ex.
  • Tomar banho
  • Instruções para o uso de um aparelho
    eletrodoméstico
  • Receita de preparo de algum prato
  • Trocar pneu de um carro
  • Sacar dinheiro de um caixa eletrônico

8
ALGORITMOS Conceitos
  • Um conjunto finito de regras que provê uma
    seqüência de operações para resolver um tipo de
    problema específico
  • KNUTH
  • Seqüência ordenada, e não ambígua, de passos que
    levam à solução de um dado problema
  • TREMBLAY
  • Processo de cálculo, ou de resolução de um grupo
    de problemas semelhantes, em que se estipulam,
    com generalidade e sem restrições, as regras
    formais para a obtenção do resultado ou da
    solução do problema
  • AURÉLIO

9
ALGORITMOS Importância
  • É necessária a especificação de uma seqüência de
    passos lógicos para que o computador possa
    executar uma determinada tarefa
  • O computador não possui vontade própria, faz
    apenas o que mandamos
  • Com uma ferramenta algorítmica, podemos conceber
    uma solução para um dado problema, independendo
    de uma linguagem específica e até mesmo do
    próprio computador.

10
ALGORITMOS Características
  • ter fim
  • não dar margem à dupla interpretação (não
    ambíguo)
  • capacidade de receber dado(s) de entrada do mundo
    exterior
  • poder gerar informações de saída para o mundo
    externo ao do ambiente do algoritmo
  • ser efetivo (todas as etapas do algoritmo devem
    ser alcançáveis em um tempo finito).

11
ALGORITMOS Exemplo
  • Vamos nos colocar na situação de um cozinheiro
    que para fazer certos pratos, precisa seguir uma
    receita.
  • EXEMPLO Receita de Bolo
  • Providencie manteiga, ovos, 2 Kg de massa, etc.
  • Misture os ingredientes
  • Unte a fôrma
  • Despeje a mistura na fôrma de bolo
  • Leve a fôrma ao forno
  • Espere 20 minutos
  • Retire a fôrma do forno
  • Deixe esfriar
  • Experimente

12
ALGORITMOS
  • Mas o que um cozinheiro tem a ver com algoritmo e
    com programação?
  • A receita deve ser seguida exatamente da maneira
    como se apresenta.
  • Você poderia imaginar que o cozinheiro pudesse
    despejar a mistura na fôrma antes de juntar os
    ingredientes? É impossível, concorda? Logo a
    seqüência das ações precisa ser respeitada para
    obtermos um produto final.

13
ALGORITMOS
  • Então
  • Na medida em que precisamos especificar uma
    seqüência de passos, é necessário utilizar
    ordem,ou seja, pensar com ordem, portanto
    precisamos utilizar lógica.

14
ALGORITMOS
  • Um algoritmo tem por objetivo representar mais
    fielmente o raciocínio envolvido na lógica de
    programação e , dessa forma, permite-nos abstrair
    de uma série de detalhes computacionais, que
    podem ser acrescentados mais tarde. Foco no que é
    importante a lógica da construção de algoritmos.

15
ALGORITMOS - Princípios
  • São formas de resolução de um problema, através
    da especificação passo-a-passo de como
    resolvê-lo.
  • A noção de algoritmo é básica em computação, mas
    pode ser aplicada a vários contextos. Como ao do
    cozinheiro.

16
ALGORITMOS - Princípios
  • Contexto Administrativo
  • Verifique preenchimento do formulário
  • Se (preenchimento correto) então
  • Arquive o documento
  • Forneça o protocolo
  • Se não
  • Lamente
  • Mande o cliente comprar outro formulário
  • Despeça-se educadamente do cliente

17
ALGORITMOS - Princípios
  • Logo, percebe-se que o conceito de algoritmo
    associado a área de computação, pode ser
    entendido, no seu sentido mais amplo, como
    sinônimo de processo, rotina ou procedimento, e
    nesse sentido, ele se insere em qualquer
    contexto.
  • E mais, algoritmos só se aprende
  • construindo algoritmos
  • testando algoritmos

18
ALGORITMOS representação
  • Descrição Narrativa
  • Faz-se uso do português para descrever
    algoritmos.
  • EXEMPLO Troca de lâmpada
  • Pegue uma escada
  • Posicione-a embaixo da lâmpada
  • Busque uma lâmpada nova
  • Suba na escada
  • Retire a lâmpada velha
  • Coloque a lâmpada nova

19
ALGORITMOS representação
  • Fluxograma
  • Utilização de símbolos gráficos para representar
    algoritmos.
  • No fluxograma existem símbolos padronizados para
    início, entrada de dados, cálculos, saída de
    dados, fim, etc.

20
ALGORITMOS representação
  • Fluxograma - Exemplo

21
ALGORITMOS representação
  • Fluxograma
  • Vantagens
  • Uma das ferramentas mais conhecidas
  • Figuras dizem muito mais que palavras
  • Padrão mundial.
  • Desvantagens
  • Faz com que a solução do problema já esteja
    amarrada a dispositivos físicos
  • Pouca atenção aos dados, não oferecendo recursos
    para descrevê-los ou representá-los
  • Complica-se à medida que o algoritmo cresce.

22
ALGORITMOS representação
  • Linguagem Algorítmica
  • Consiste na definição de uma pseudolinguagem de
    programação, cujos comandos são em português,
    para representar algoritmos
  • EXEMPLO
  • Algoritmo CALCULA_DOBRO
  • Início
  • Leia NUM
  • DOBRO 2 NUM
  • Escreva DOBRO
  • Fim

23
ALGORITMOS representação
  • Linguagem Algorítmica
  • Estrutura geral
  • Algoritmo Nome do algoritmo
  • Declaração de constantes, tipos e variáveis
  • Início
  • atribuições
  • seqüências de comandos
  • estruturas de controle
  • comandos de E/S
  • Fim

24
ALGORITMOS representação Visual G
  • Algoritmo "ltnome do algoritmogt"
  • var
  • lt declaração de variáveisgt
  • inicio
  • lt lista de comandosgt
  • fimalgoritmo

25
ALGORITMOS representação
  • Linguagem Algorítmica
  • Vantagens
  • Independência física da solução (solução lógica
    apenas)
  • Usa o português como base
  • Pode-se definir quais e como os dados vão estar
    estruturados
  • Passagem quase imediata do algoritmo para uma
    linguagem de programação qualquer.
  • Desvantagens
  • Exige a definição de uma linguagem não real para
    trabalho
  • Não padronizado.

26
ALGORITMOS representaçãoregras importantes
  • 1.O algoritmo sempre deve possuir um nome.
  • 2.É importante descrever o objetivo do algoritmo.
  • 3.Iniciar o algoritmo com a palavra Início.
  • 4.Descrever a entrada de dados.
  • 5.Para facilitar a leitura e compreensão,
    utilizar espaços de tabulações (identação) nos
    blocos de instruções.
  • 6.Utilizar somente um verbo por instrução.
  • 7.Utilizar frases (instruções) simples e curtas
    para facilitar o entendimento.
  • 8.Enumerar cada uma das instruções.
  • 9.Inserir comentários explicativos para as
    instruções, principalmente quando estiver
    programando.
  • 10.Destacar as palavras que indicam ações ou
    condições a serem executadas ou seguidas, como
    por exemproLer, escrever, se, enquento, faça e
    outras.
  • 11.Descrever a saída de dados.
  • 12.Encerrar o algoritmo com a palavra Fim.

27
ALGORITMOS representaçãoregras importantes
  • Nome Média
  • Objetivo Calcular a média de um aluno e
    apresentar a mensagem aprovado ou reprovado.
  • Entrada de dados Notas do 1º e 2º bimestre
    (Nota1 e Nota2)
  • Saída de dados Exibir a média e resultado
    aprovado ou reprovado
  • Início
  • 1.Ler a nota do primeiro bimestre (Nota1)
  • 2. Ler a nota do segundo bimestre (Nota2)
  • 3. Calcular a média Media (Nota1 Nota2)/2
  • 4.Se Media gt 6,0 então
  • 4.1 imprimir aprovado
  • senão
  • 4.2 imprimir reprovado
  • fim se
  • 5. Imprimir o valor da Media
  • Fim

28
ALGORITMOS Resolvendo
  • Suponha que queiramos resolver o seguinte
    problema
  • a partir de dois números que serão informados,
    calcular a adição dos mesmos.
  • Se você fosse encarregado de efetuar essa tarefa,
    seria bem provável que utilizasse os passos a
    seguir
  • saber quais são os números
  • calcular a soma dos números
  • responder à questão com o valor do resultado.

29
ALGORITMOS
  • ESTRUTURAS CHAVES DA CONSTRUÇÃO DE ALGORITMOS
  • Existem 3 estruturas básicas de controle nas
    quais se baseiam os algoritmos
  • Sequenciação
  • Decisão
  • e Repetição.

30
ALGORITMOS Sequenciação
  • Os comandos do algoritmo fazem parte de uma
    seqüência
  • é relevante a ordem na qual se encontram os
    mesmos
  • serão executados um de cada vez, estritamente, de
    acordo com essa ordem.
  • Comando-1
  • Comando-2
  • Comando-3
  • Comando-n

31
ALGORITMOS Sequenciação
  • Tem-se uma sequenciação de n comandos na qual os
    comandos serão executados na ordem em que
    aparecem
  • o comando de ordem i1 só será executado após a
    execução do de ordem i (o 3o só será executado
    após o 2o)
  • Todo algoritmo é uma seqüência
  • A sequenciação é aplicada quando a solução do
    problema pode ser decomposta em passos
    individuais.

32
ALGORITMOS Decisão
  • Também conhecida por seleção ou estrutura
    condicional
  • Há a subordinação da execução de um ou mais
    comandos à veracidade de uma condição
  • Se ltcondiçãogt Então
  • ltcomando-1gt
  • Senão
  • ltcomando-2gt

33
ALGORITMOS Decisão
  • Se a ltcondiçãogt for verdadeira será executado o
    ltcomando-1gt
  • caso contrário, teremos a execução do
    ltcomando-2gt
  • A decisão deve ser sempre usada quando há a
    necessidade de testar alguma condição e em função
    da mesma tomar uma atitude
  • Em nosso dia-a-dia, estamos sempre tomando
    decisões, vejamos um exemplo
  • Se tiver dinheiro suficiente, então vou almoçar
    em um bom restaurante.
  • Caso contrário (senão), vou comer um sanduíche na
    lanchonete da esquina.

34
ALGORITMOS Repetição
  • Também conhecida por looping ou laço
  • Permite que tarefas individuais sejam repetidas
    um número determinado de vezes ou tantas vezes
    quantas uma condição lógica permita
  • Exemplos
  • vou atirar pedras na vidraça até quebrá-la
  • baterei cinco pênaltis
  • enquanto tiver saúde e dinheiro, vou desfrutar a
    vida.

35
ALGORITMOS Repetição
  • No exemplo (a), vai-se repetir a ação de atirar
    pedras na janela até que seja satisfeita a
    condição de quebrar a janela.
  • No exemplo (b), haverá a repetição da atitude de
    bater um pênalti um número determinado de vezes
    (cinco).
  • No exemplo (c), a condição que me permitirá
    continuar desfrutando a vida é ter dinheiro e
    saúde.
  • A utilização combinada dessas 3 estruturas
    descritas vai permitir expressar, usando qualquer
    que seja a ferramenta, a solução para uma gama
    muito grande de problemas.
  • Todas as linguagens de programação oferecem
    representantes dessas estruturas.

36
ALGORITMOS refinamentos sucessivos
  • Um algoritmo é considerado completo se os seus
    comandos forem do entendimento do seu
    destinatário
  • Caso um comando não seja do entendimento do
    destinatário, ele terá que ser desdobrado em
    novos comandos
  • Estes novos comandos constituirão um refinamento
    do comando inicial, e assim sucessivamente, até
    que os comandos sejam entendidos pelo
    destinatário.

37
ALGORITMOS refinamentos sucessivos
  • Por exemplo, o algoritmo para calcular a média
    aritmética de dois números pode ser escrito da
    seguinte forma
  • Algoritmo CALCULA_MÉDIA
  • Início
  • Receba os dois números
  • Calcule a média dos dois números
  • Exiba o resultado
  • Fim
  • Podemos desdobrar o comando Calcule a média dos
    dois números em
  • Soma os dois números
  • Divida o resultado por 2

38
ALGORITMOS refinamentos sucessivos
  • Após esse refinamento, o algoritmo pode ser
    considerado completo
  • a menos que o destinatário não saiba fazer as
    operações de adição e divisão, ou não seja capaz
    de entender diretamente algum comando.
  • Algoritmo CALCULA_MÉDIA
  • Início
  • Receba os dois números
  • Soma os dois números
  • Divida o resultado por 2
  • Exiba o resultado
  • Fim

39
ALGORITMOS refinamentos sucessivos
  • Um algoritmo completo, com os refinamentos
    sucessivos inseridos nos seus devidos lugares
    permite
  • ter uma visão global de como o algoritmo deve ser
    executado
  • À medida que o algoritmo passa a ser maior e mais
    complexo, esta visão global torna-se menos clara
  • Neste caso, um algoritmo apresentado com os
    refinamentos sucessivos separados oferece uma
    melhor abordagem para quem precisar entendê-lo.

40
ALGORITMOS Exercícios
  • Cite alguns algoritmos que podemos encontrar na
    vida quotidiana.
  • Suponha que temos um robô a nossa disposição.
    Esse robô precisa ser ensinado a fazer
    determinadas tarefas. Para ensiná-lo, vamos fazer
    uso do português para passar-lhe as instruções
    necessárias à execução de cada atividade. Escreva
    os passos necessários para o robô
  • encher uma bacia com água
  • Fazer uma ligação de um telefone fixo
  • calcular a sua idade daqui a 20 anos
  • calcular a média de um aluno com 3 notas
  • Fazer um suco de laranja.
Write a Comment
User Comments (0)
About PowerShow.com