SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
Algoritmos




Profª Jocelma Rios
Out/2012
O que pretendemos:

• Revisar    conceitos   de    lógica  na
  perspectiva da filosofia
• Apresentar os conceitos de algoritmos e
  suas estruturas
• Orientar    quanto   à   construção  de
  algoritmos
• Exercitar o raciocínio lógico formal,
  através da elaboração de algoritmos
Lógica
 Para a filosofia: área que trata das
 formas do pensamento em geral (dedução,
 indução, hipótese, inferência etc.) e das
 operações   intelectuais   que   visam   à
 determinação do que é verdadeiro ou não.

 Para a computação: organização e
 planejamento   das   instruções,
 assertivas etc. em um algoritmo,
 a    fim    de   viabilizar    a
 implantação de um programa.
                                Fonte: Houaiss
Sequência lógica



     São passos executados até
  atingir um objetivo ou solução
          de um problema.
Instruções

   São um conjunto de regras ou
      normas definidas para a
  realização ou emprego de algo.

   Em computação, é o que indica
      a um computador uma ação
        elementar a executar.
Lógica de programação

     Significa o uso correto das leis de
    pensamento, da 'ordem da razão1 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.
Lógica de programação

   Um mesmo raciocínio pode ser expresso
    em qualquer um dos inúmeros idiomas
         existentes, mas continuará
     representando o mesmo raciocínio.


      O mesmo ocorre com a Lógica de
    Programação, que uma vez concebida,
   pode ser representada em qualquer das
  inúmeras linguagens de programação. Sua
  concepção se dá através dos Algoritmos.
Algoritmos

   É formalmente uma sequência finita
      e bem definida de passos, não
    ambígua, que levam a execução de
               uma tarefa.
                   ou
    É um conjunto de passos lógicos,
      bem definidos, que descreve a
         solução de um problema.
Software

   São algoritmos escritos numa
       linguagem de computador
  (Pascal, C, Cobol, Fortran, Visual
  Basic, Java, PHP, dentre outras ) e
       que são interpretados e
     executados por uma máquina
            computacional.
Algoritmos - exemplo
                                 Considera este
 Algoritmo “Trocar lâmpada”         algoritmo
 Início                         suficientemente
                                    detalhado?
  Pegar uma escada;
  Posicionar a escada embaixo da lâmpada;
  Buscar uma lâmpada nova;
  Subir na escada;
  Retirar a lâmpada velha;
  Colocar a lâmpada nova.
 Fim
Algoritmos – outro exemplo
                                        E agora,
 Algoritmo “Trocar lâmpada”             Melhorou?
                                      Você poderia
 Início                              elaborar outra
   Pegar uma escada;                    sequência?

   Posicionar a escada embaixo da lâmpada;
   Buscar uma lâmpada nova;
   Acionar   o interruptor;
   Se a lâmpada não acender, então
       Subir na escada;
       Retirar a lâmpada queimada;
       Colocar a lâmpada nova.
 Fim
Algoritmos

     Essencialmente, os algoritmos
   orientam sobre o modo de processar
      os dados de entrada, gerando
        outros dados como saída.

  Dados de
   Dados de                    Dados de
                                Dados de
              Processamento
               Processamento
   entrada
    entrada                     entrada
                                 entrada
Algoritmos

  Para qualquer processo computacional, o
    algoritmo precisa estar rigorosamente
    definido, especificando a maneira que
        ele se comportará em todas as
               circunstâncias.
 A corretude do algoritmo pode ser provada
    matematicamente, bem como a quantidade
       de tempo e espaço (complexidade)
   necessários para a sua execução → estes
        aspectos são alvo da análise de
                  algoritmos.
Algoritmos

 Os algoritmos são construídos utilizando-se:
 Linguagem natural, através de uma lista de
   procedimentos bem definida, na qual as
   instruções são executadas passo a passo a
   partir do começo da lista
 Fluxograma: uma ideia que pode ser
   facilmente visualizada através de uma
   notação gráfica
 Linguagem de programação, tal como o Pascal.
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.

 Comando   Decisão             Saída
                     Entrada
                                       Início/Fim
Fluxograma

             Início do algoritmo


             Entrada do número


             Cálculo do dobro do número


             Apresentação do resultado


             Fim do algoritmo
Algoritmos – dicas de construção
 1.Faça uma leitura de todo o problema até o
   final, a fim de formar a primeira
   impressão. A seguir, releia o problema e
   faça anotações sobre os pontos principais
 2.Verifique se o problema foi bem entendido,
   se preciso releia o problema quantas vezes
   for preciso para tentar entendê-lo
 3.Extraia do problema todas as suas saídas
 4.Extraia do problema todas as suas entradas
 5.Identifique qual é o processamento
   principal
Algoritmos – dicas de construção
6. Verifique se será necessário algum valor
intermediário que auxilie a transformação das
entradas em saídas. Esta etapa pode parecer
obscura no início, mas com certeza no
desenrolar do algoritmo, estes valores
aparecerão naturalmente.
7.Teste cada passo do algoritmo, com todos os
seus caminhos para verificar se o
processamento está gerando os resultados
esperados.
8.Crie valores de teste para submeter ao
algoritmo
9.Reveja o algoritmo, checando as boas normas
de criação.
Engenharia de software
– algumas observações
  Portabilidade: programas que podem ser
  executados em uma variedade de máquinas
  com pouca ou nenhuma alteração de código.
  A linguagem Java é o exemplo mais
  conhecido

  Prevenção    de    erros:    Primeiramente,
  escrever programas livres de erros. Como
  isso   não   existe,   usar   técnicas   de
  depuração e eliminação de erros

  Aparência e Comportamento: Uso de técnicas
  de projeto de interfaces com o usuário e
  facilidade de uso
Engenharia de software
– algumas observações
  Boas Práticas de programação: escrever
  programas claros, mais compreensíveis, mais
  sustentáveis e mais fáceis de testar e
  depurar

  Uso de comentários: usar sempre que
  possível para ilustrar os passos ao longo
  do algoritmo

  Erros comuns de programação: problemas que
  devem ser observados para serem evitados

  Desempenho: programas de rápida execução e
  que ocupam pouco espaço de memória
Estrutura de um Algoritmo
 Cabeçalho
 Declaração de variáveis
 Declaração de constantes
 Início
   Bloco de comandos
 Fim
Constantes
 Constante é um determinado valor fixo que
     não se modifica ao longo do tempo,
    durante a execução de um programa.

    Conforme o seu tipo, a constante é
 classificada como sendo numérica, lógica
                e literal.


              3 =CONSTANTE
                Pi := 3,141516
Variáveis
 Variável é a representação simbólica dos
     elementos de um certo conjunto.

  Cada variável corresponde a uma posição de
  memória, cujo conteúdo pode ser alterado ao
    longo do tempo durante a execução de um
                   programa.
 Embora uma variável possa assumir diferentes
   valores, ela só pode armazenar um valor a
               cada instante.

                Variável     Conteúdo
                   NOME := "JOSE"
                   IDADE := 50
Variáveis – declaração
 • As variáveis só podem armazenar valores
   de um mesmo tipo, de maneira que também
   são classificadas como sendo numéricas,
   lógicas e literais

 • Precisam ser declaradas no início
   (cabeçalho) de cada algoritmo,
   indicando o nome e o tipo
Variáveis – tipos
 • Numéricas:
   – Específicas para armazenamento de
     números, que poderão ser utilizados para
     cálculos. Podem ser ainda classificadas
     como Inteiras (integer) ou Reais (real)
   – As variáveis do tipo inteiro são para
     armazenamento de números inteiros e as
     reais são para o armazenamento de
     números que possuam casas decimais
 • Caracteres:
   – Específicas   para    armazenamento   de
     conjunto de caracteres que não contenham
     números (literais) → Ex: nome
Variáveis – tipos
 • Alfanuméricas:
   – Específicas para dados que contenham
     letras    e/ou    números.   Pode    em
     determinados momentos conter somente
     dados numéricos ou somente literais. Se
     usado somente para armazenamento de
     números, não poderá ser utilizada para
     operações matemáticas.
 • Lógicas:
   – Armazenam somente dados lógicos     que
     podem ser Verdadeiro ou Falso.
                             Falso
Operadores

 Os operadores são meios pelo quais
  incrementamos, decrementamos,
  comparamos e avaliamos dados em um
  algoritmo.

 Temos três tipos de operadores:
   – Operadores Aritméticos
   – Operadores Relacionais
   – Operadores Lógicos
Operadores aritméticos
                            • Adição +
                           • Subtração -
                       • Multiplicação *
                          • Divisão /
OBS: A linguagem Pascal não possui um operador para
 potenciação; a mesma é calculada a partir de cálculos de produto
 ou através de uma função exponencial (ex) e função logarítmica
 (LN(X)).

Sintaxe:
 XY := EXP(Y*LN(X))
EX.
 X0.5 = EXP(0.5 * LN(X))
Operadores relacionais

 Descrição Símbolo
 • Igual a =
 • Diferente de <>
 • Maior que >
 • Menor que <
 • Maior ou igual a >=
 • Menor ou igual a <=
Operadores lógicos

 • E – AND – ^ (conjunção)
 • OU – OR – v (disjunção)
 • NÃO – NOT - ~ (negação)

  Exemplos de uso:
  'A terra é redonda' E 'A terra é um planeta'
  'O artista é famoso', logo OU 'ele é rico' OU
  'ele é talentoso'
Tabela-verdade

  Tabela-verdade é o conjunto de todas as
   possibilidades combinatórias entre os
 valores de diversas variáveis lógicas, as
      quais se encontram em apenas duas
    situações (V ou F), e um conjunto de
             operadores lógicos.
Tabela-verdade

            Operação de negação

                   AA     Não A
                           Não A
                   FF       VV
                   VV      FF




 Ex:
 (A) A menina é obediente → V
 (Não A) A menina é desobediente → F
Tabela-verdade

           Operação de conjunção

               AA      BB     A eeB
                               A B
               VV      VV       VV
               VV      FF      FF
               FF      VV      FF
               FF      FF      FF


 Ex:
 (A) A menina é obediente
 (B) A menina é estudiosa
 (A e B) A menina é obediente e estudiosa.
Tabela-verdade

       Operação de disjunção não exclusiva

                  AA        BB      A ou B
                                     A ou B
                  VV        VV         VV
                  VV        FF        VV
                  FF        VV        VV
                  FF        FF        FF


 Ex:
 (A) A menina é obediente
 (B) A menina é estudiosa
 (A ou B) A menina é obediente ou estudiosa.
Tabela-verdade

        Operação de disjunção exclusiva

                  AA        BB      A ou B
                                     A ou B
                  VV        VV         FF
                  VV        FF        VV
                  FF        VV        VV
                  FF        FF        FF


 Ex:
 (A) A menina é obediente
 (B) A menina é estudiosa
 (A ou B) A menina é obediente ou a menina é estudiosa.
Bloco de comandos
 Compreende:

 * Comandos de atribuição
 * Estruturas de controle
     - Estruturas de decisão
     - Estruturas de repetição
Comandos de atribuição
 Um comando de atribuição permite-nos
   fornecer um valor a uma variável

 Tipos
   – Comandos de entrada
     • Ex: leia (A)
   – Comandos de saída
     • Ex: escreva (A)

 O tipo do dado deve ser compatível com o
   tipo da variável, isto é:
   – Somente podemos atribuir um valor lógico
       a uma variável capaz de comportá-lo,
       ou seja, um variável declarada como
       sendo do tipo lógicos
Estrutura de decisão

  Os comandos de decisão ou desvio fazem parte
    das técnicas de programação que conduzem a
    estruturas de programas que não são
    totalmente sequenciais.

  As principais estruturas de decisão são:
  “Se … Então”,
  “Se … então … Senão”
  e
    “Caso … Selecione”
Estrutura de decisão
                                            INÍCIO
 “Iniciar regime”
                                   Verificar o calendário

 • Verificar o calendário       Não                       Sim
                                       É segunda-feira
 • É segunda-feira?
 • Se sim,
    – Iniciar regime        Aproveitar...            Iniciar regime

    – Matricular na                                  Matricular na
      academia                                        academia
 • Se não,
    – Aproveitar
                                               FIM
Condicional (If ... Then ... Else ...)

                           Algoritmo Teste
                           Definir variáveis;
                           Início;
               S
     N1=N2
                   N1=N2      Ler N1;
       ?                      Ler N2;
           N                  Se N1=N2 Então
    N1>N2      N                Escrever (N1=N2)
                   N1<N2
      ?                       Senão {ELSE}
           S                    Se N1>N2 Então
                                   Escrever (N1>N2)
    N1>N2
                                Senão {ELSE}
                                   Escrever (N2>N1);
                           Fim.
Estruturas de repetição

   É uma estrutura de desvio do fluxo de
 controle que realiza e repete diferentes
    comandos ou ações dependendo se uma
       condição é verdadeira ou falsa

 Estão associados a uma estrutura        de
 repetição, uma condição e um bloco      de
 código
       Enquanto ... faça <comando(s)>
       Repita <comando(s)> até que ...
Estruturas de repetição

        Enquanto ... faça <comando(s)>
 A condição é verificada inicialmente, e caso
 seja   verdadeira,  o   bloco  de   comandos  é
 executado. Após o final da execução do bloco, a
 condição é verificada novamente, e caso ela
 ainda seja verdadeira, o código é executado
 novamente.
        Repita <comando(s)> até que ...
 Primeiro, o bloco de comandos é executado, e
 depois que a condição é verificada. Caso seja
 verdadeira, o bloco de comandos é novamente
 executado.
Estruturas de repetição

     Deve-se observar que, caso o bloco de
      comandos nunca modificar o estado da
   condição, a estrutura será executada para
   sempre, uma situação chamada laço (loop)
      infinito. Da mesma forma, é possível
  especificar uma estrutura em que o bloco de
  comandos modifica o estado da condição, mas
            esta é sempre verdadeira.
Ler dois números e uma letra. Se a letra for a, adicionar, se for s, subtrair, se
     for m, multiplicar, se for d, dividir, senão, exibir “Operação inexistente”
    Início                                                 1
     Início                                                    1


                                                                           S       Resultado:=
Definir N1,N2,Resultado:Real;                                                  S                  Operação:
 Definir N1,N2,Resultado:Real;                          Letra=m?                    Resultado:=    Operação:
Definir Letra,Tecla: Char;                                                         N1*N2          Multiplicação
 Definir Letra,Tecla: Char;                              Letra=m?                   N1*N2          Multiplicação
                                                                   n
                                                                       n
 Ler N1;                                                                           Resultado:=     Operação:
  Ler N1;                                               Letra=d?                    Resultado:=     Operação:
                                                                                   N1/N2           Divisão
                                                         Letra=d?                   N1/N2           Divisão
  Ler N2;
   Ler N2;

                                                        Operação:
  Ler Letra;                                             Operação:
   Ler Letra;                                           Inexistente
                                                         Inexistente

                  S                      Operação:
                      S   Resultado:=     Operação:
  Letra=a?                 Resultado:=   Adiçao
   Letra=a?               N1+N2           Adiçao
                           N1+N2                        Fim
                                                         Fim
          n
              n
                  S                        Operação:
                      S   Resultado:=       Operação:
  Letra=s?                 Resultado:=     Subtração
                          N1-N2             Subtração
   Letra=s?                N1-N2
          n
              n
      1
          1
Algumas pontuações...

• A lógica se relaciona com a 'ordem
  da razão', com a 'correção do
  pensamento'

• É necessário utilizar processos
  lógicos    de   programação para
  construir algoritmos
Um pouco de humor
 Um pouco de humor
 sempre cai bem...
  sempre cai bem...
Talvez se tivesse casado com uma programadora oodiálogo seria melhor…
 Talvez se tivesse casado com uma programadora diálogo seria melhor…
Exercícios
 1. Sabendo que A=3, B=7 e C=4, informe se as
 expressões abaixo são verdadeiras ou falsas.
 a) (A+C) > B
 b) B >= (A + 2)
 c) C = (B –A)
 d) (B + A) <= C
 e) (C+A) > B
 2. Construa um algoritmo que avalie cada uma das
    expressões acima, considerando que os valores de
    A, B e C são variáveis e são dados pelo usuário.
Exercícios
 3. Elabore um algoritmo que dada a idade de
 um nadador classifique-o em uma das
 seguintes categorias:

 Infantil A = 5 a 7 anos
 Infantil B = 8 a 11 anos
 Juvenil A = 12 a 13 anos
 Juvenil B = 14 a 17 anos
 Adultos = Maiores de 18 anos
Exercícios
 3. A média parcial (MP) de uma disciplina semestral no Ifba é
  calculada com base na média aritmética não ponderada de 3
  notas (Uni1, Uni2, Uni3). Caso o estudante alcance média parcial
  igual ou superior a 7,0, ele é aprovado sem precisar fazer prova
  final (PF). Caso ele alcance média parcial entre 3,0 e 6,9, ele
  precisará fazer prova final. Caso ele obtenha média inferior a
  3,0, ele é reprovado. Utilizando uma pseudo linguagem
  (português estruturado), construa um algoritmo que leia o
  nome do estudante, suas notas nas 3 unidades, calcule sua
  média parcial e informe a situação de aprovação. Para os casos
  de ser necessário fazer prova final, deve também mostrar a nota
  mínima que ele precisa na prova final. O cálculo para a nota
  mínima necessária na prova final é =(7*MP)/3. (2,0)
      MP < 3 → reprovado
3,0 <= MP < 7,0 → precisa fazer prova final
MP >= 7,0 → aprovado
Referências
 FORBELLONE, André Luiz Vilar; EBERSPACHER, Henri
  Frederico. Lógica de programação: a construção
  de algoritmos e estrutura de dados. 3. São
  Paulo: Prentice Hall, 2005.
 Cap. 1, 2 e 3.

Mais conteúdo relacionado

Mais procurados

Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalWesley R. Bezerra
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - MatrizesPacc UAB
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresWellington Oliveira
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slidesronaldo ramos
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalFelipe J. R. Vieira
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosMessias Batista
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoMauro Pereira
 

Mais procurados (20)

Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
 
Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicional
 
Algoritmos: Variáveis e Constantes
Algoritmos: Variáveis e ConstantesAlgoritmos: Variáveis e Constantes
Algoritmos: Variáveis e Constantes
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Algoritmos - capítulo 1
Algoritmos - capítulo 1Algoritmos - capítulo 1
Algoritmos - capítulo 1
 
Aula 6 - Constantes e variáveis
Aula 6 - Constantes e variáveisAula 6 - Constantes e variáveis
Aula 6 - Constantes e variáveis
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slides
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Aula 9 - Estruturas Condicionais
Aula 9 - Estruturas CondicionaisAula 9 - Estruturas Condicionais
Aula 9 - Estruturas Condicionais
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 

Destaque

LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORESLIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORESOs Fantasmas !
 
Apostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£oApostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£oWELINGTON SILVA
 
Do alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as DiferençasDo alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as DiferençasWelington Sampaio
 
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...Natanael Simões
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacaoAislan Rafael
 
Lógica e algoritmos
Lógica e algoritmosLógica e algoritmos
Lógica e algoritmosJocelma Rios
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu algLeandro Santos
 
Apostila matemática aplicada
Apostila matemática aplicadaApostila matemática aplicada
Apostila matemática aplicadafernandao777
 
Aula03 exercicio fluxograma casa
Aula03   exercicio fluxograma casaAula03   exercicio fluxograma casa
Aula03 exercicio fluxograma casaGrupo Tiradentes
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Pacc UAB
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dadosGelber Freitas
 

Destaque (17)

LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORESLIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
 
Apostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£oApostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£o
 
Do alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as DiferençasDo alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as Diferenças
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
 
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacao
 
Exercícios
ExercíciosExercícios
Exercícios
 
Lógica e algoritmos
Lógica e algoritmosLógica e algoritmos
Lógica e algoritmos
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
 
Apostila matemática aplicada
Apostila matemática aplicadaApostila matemática aplicada
Apostila matemática aplicada
 
Aula03 exercicio fluxograma casa
Aula03   exercicio fluxograma casaAula03   exercicio fluxograma casa
Aula03 exercicio fluxograma casa
 
Fluxogramas exercicio 2
Fluxogramas exercicio 2Fluxogramas exercicio 2
Fluxogramas exercicio 2
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dados
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Aula 12 - Lógica
Aula 12 - LógicaAula 12 - Lógica
Aula 12 - Lógica
 

Semelhante a Algoritmos: conceitos e estruturas

Semelhante a Algoritmos: conceitos e estruturas (20)

Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
Aula02
Aula02Aula02
Aula02
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmia (Conceitos)
Algoritmia (Conceitos)Algoritmia (Conceitos)
Algoritmia (Conceitos)
 
01 logica
01 logica01 logica
01 logica
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimos
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Construcao de Algoritmos - Aula 03
Construcao de Algoritmos - Aula 03Construcao de Algoritmos - Aula 03
Construcao de Algoritmos - Aula 03
 
Aula02
Aula02Aula02
Aula02
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
UC_ 9 Desenvolver Algoritmos ( Vinicios Cararine Coelho ) 26_02.pdf
UC_ 9 Desenvolver Algoritmos ( Vinicios Cararine Coelho ) 26_02.pdfUC_ 9 Desenvolver Algoritmos ( Vinicios Cararine Coelho ) 26_02.pdf
UC_ 9 Desenvolver Algoritmos ( Vinicios Cararine Coelho ) 26_02.pdf
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.ppt
 

Mais de Jocelma Rios

Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...
Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...
Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...Jocelma Rios
 
Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...
Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...
Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...Jocelma Rios
 
Aulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleAulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleJocelma Rios
 
Aulas 8 e 9 - Sistemas de Numeração
Aulas 8 e 9 - Sistemas de NumeraçãoAulas 8 e 9 - Sistemas de Numeração
Aulas 8 e 9 - Sistemas de NumeraçãoJocelma Rios
 
Aulas 6 e 7 - Redes e Telecomunicações
Aulas 6 e 7 - Redes e TelecomunicaçõesAulas 6 e 7 - Redes e Telecomunicações
Aulas 6 e 7 - Redes e TelecomunicaçõesJocelma Rios
 
Aula 5b - História do Windows
Aula 5b - História do WindowsAula 5b - História do Windows
Aula 5b - História do WindowsJocelma Rios
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Aula 4 - Sistemas de Informação
Aula 4 - Sistemas de InformaçãoAula 4 - Sistemas de Informação
Aula 4 - Sistemas de InformaçãoJocelma Rios
 
Aulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareAulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareJocelma Rios
 
Noções básicas de computação hardware
Noções básicas de computação   hardwareNoções básicas de computação   hardware
Noções básicas de computação hardwareJocelma Rios
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Sistemas de numeração
Sistemas de numeraçãoSistemas de numeração
Sistemas de numeraçãoJocelma Rios
 
Estudo de caso do windows
Estudo de caso do windowsEstudo de caso do windows
Estudo de caso do windowsJocelma Rios
 

Mais de Jocelma Rios (14)

Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...
Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...
Fortec2015 comunidades de práticas baseadas na web um estudo de caso no progr...
 
Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...
Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...
Fortec2014 mesa redonda dinâmicas de comunidades de práticas baseadas na web_...
 
Aulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleAulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de Boole
 
Aulas 8 e 9 - Sistemas de Numeração
Aulas 8 e 9 - Sistemas de NumeraçãoAulas 8 e 9 - Sistemas de Numeração
Aulas 8 e 9 - Sistemas de Numeração
 
Aulas 6 e 7 - Redes e Telecomunicações
Aulas 6 e 7 - Redes e TelecomunicaçõesAulas 6 e 7 - Redes e Telecomunicações
Aulas 6 e 7 - Redes e Telecomunicações
 
Aula 5b - História do Windows
Aula 5b - História do WindowsAula 5b - História do Windows
Aula 5b - História do Windows
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Aula 4 - Sistemas de Informação
Aula 4 - Sistemas de InformaçãoAula 4 - Sistemas de Informação
Aula 4 - Sistemas de Informação
 
Aula 3 - Software
Aula 3 - SoftwareAula 3 - Software
Aula 3 - Software
 
Aulas 1 e 2 - Hardware
Aulas 1 e 2 - HardwareAulas 1 e 2 - Hardware
Aulas 1 e 2 - Hardware
 
Noções básicas de computação hardware
Noções básicas de computação   hardwareNoções básicas de computação   hardware
Noções básicas de computação hardware
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Sistemas de numeração
Sistemas de numeraçãoSistemas de numeração
Sistemas de numeração
 
Estudo de caso do windows
Estudo de caso do windowsEstudo de caso do windows
Estudo de caso do windows
 

Algoritmos: conceitos e estruturas

  • 2. O que pretendemos: • Revisar conceitos de lógica na perspectiva da filosofia • Apresentar os conceitos de algoritmos e suas estruturas • Orientar quanto à construção de algoritmos • Exercitar o raciocínio lógico formal, através da elaboração de algoritmos
  • 3. Lógica Para a filosofia: área que trata das formas do pensamento em geral (dedução, indução, hipótese, inferência etc.) e das operações intelectuais que visam à determinação do que é verdadeiro ou não. Para a computação: organização e planejamento das instruções, assertivas etc. em um algoritmo, a fim de viabilizar a implantação de um programa. Fonte: Houaiss
  • 4. Sequência lógica São passos executados até atingir um objetivo ou solução de um problema.
  • 5. Instruções São um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em computação, é o que indica a um computador uma ação elementar a executar.
  • 6. Lógica de programação Significa o uso correto das leis de pensamento, da 'ordem da razão1 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.
  • 7. Lógica de programação Um mesmo raciocínio pode ser expresso em qualquer um dos inúmeros idiomas existentes, mas continuará representando o mesmo raciocínio. O mesmo ocorre com a Lógica de Programação, que uma vez concebida, pode ser representada em qualquer das inúmeras linguagens de programação. Sua concepção se dá através dos Algoritmos.
  • 8. Algoritmos É formalmente uma sequência finita e bem definida de passos, não ambígua, que levam a execução de uma tarefa. ou É um conjunto de passos lógicos, bem definidos, que descreve a solução de um problema.
  • 9. Software São algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic, Java, PHP, dentre outras ) e que são interpretados e executados por uma máquina computacional.
  • 10. Algoritmos - exemplo Considera este Algoritmo “Trocar lâmpada” algoritmo Início suficientemente detalhado? Pegar uma escada; Posicionar a escada embaixo da lâmpada; Buscar uma lâmpada nova; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova. Fim
  • 11. Algoritmos – outro exemplo E agora, Algoritmo “Trocar lâmpada” Melhorou? Você poderia Início elaborar outra Pegar uma escada; sequência? Posicionar a escada embaixo da lâmpada; Buscar uma lâmpada nova; Acionar o interruptor; Se a lâmpada não acender, então Subir na escada; Retirar a lâmpada queimada; Colocar a lâmpada nova. Fim
  • 12. Algoritmos Essencialmente, os algoritmos orientam sobre o modo de processar os dados de entrada, gerando outros dados como saída. Dados de Dados de Dados de Dados de Processamento Processamento entrada entrada entrada entrada
  • 13. Algoritmos Para qualquer processo computacional, o algoritmo precisa estar rigorosamente definido, especificando a maneira que ele se comportará em todas as circunstâncias. A corretude do algoritmo pode ser provada matematicamente, bem como a quantidade de tempo e espaço (complexidade) necessários para a sua execução → estes aspectos são alvo da análise de algoritmos.
  • 14. Algoritmos Os algoritmos são construídos utilizando-se: Linguagem natural, através de uma lista de procedimentos bem definida, na qual as instruções são executadas passo a passo a partir do começo da lista Fluxograma: uma ideia que pode ser facilmente visualizada através de uma notação gráfica Linguagem de programação, tal como o Pascal.
  • 15. 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. Comando Decisão Saída Entrada Início/Fim
  • 16. Fluxograma Início do algoritmo Entrada do número Cálculo do dobro do número Apresentação do resultado Fim do algoritmo
  • 17. Algoritmos – dicas de construção 1.Faça uma leitura de todo o problema até o final, a fim de formar a primeira impressão. A seguir, releia o problema e faça anotações sobre os pontos principais 2.Verifique se o problema foi bem entendido, se preciso releia o problema quantas vezes for preciso para tentar entendê-lo 3.Extraia do problema todas as suas saídas 4.Extraia do problema todas as suas entradas 5.Identifique qual é o processamento principal
  • 18. Algoritmos – dicas de construção 6. Verifique se será necessário algum valor intermediário que auxilie a transformação das entradas em saídas. Esta etapa pode parecer obscura no início, mas com certeza no desenrolar do algoritmo, estes valores aparecerão naturalmente. 7.Teste cada passo do algoritmo, com todos os seus caminhos para verificar se o processamento está gerando os resultados esperados. 8.Crie valores de teste para submeter ao algoritmo 9.Reveja o algoritmo, checando as boas normas de criação.
  • 19. Engenharia de software – algumas observações Portabilidade: programas que podem ser executados em uma variedade de máquinas com pouca ou nenhuma alteração de código. A linguagem Java é o exemplo mais conhecido Prevenção de erros: Primeiramente, escrever programas livres de erros. Como isso não existe, usar técnicas de depuração e eliminação de erros Aparência e Comportamento: Uso de técnicas de projeto de interfaces com o usuário e facilidade de uso
  • 20. Engenharia de software – algumas observações Boas Práticas de programação: escrever programas claros, mais compreensíveis, mais sustentáveis e mais fáceis de testar e depurar Uso de comentários: usar sempre que possível para ilustrar os passos ao longo do algoritmo Erros comuns de programação: problemas que devem ser observados para serem evitados Desempenho: programas de rápida execução e que ocupam pouco espaço de memória
  • 21. Estrutura de um Algoritmo Cabeçalho Declaração de variáveis Declaração de constantes Início Bloco de comandos Fim
  • 22. Constantes Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal. 3 =CONSTANTE Pi := 3,141516
  • 23. Variáveis Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode ser alterado ao longo do tempo durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. Variável Conteúdo NOME := "JOSE" IDADE := 50
  • 24. Variáveis – declaração • As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são classificadas como sendo numéricas, lógicas e literais • Precisam ser declaradas no início (cabeçalho) de cada algoritmo, indicando o nome e o tipo
  • 25. Variáveis – tipos • Numéricas: – Específicas para armazenamento de números, que poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras (integer) ou Reais (real) – As variáveis do tipo inteiro são para armazenamento de números inteiros e as reais são para o armazenamento de números que possuam casas decimais • Caracteres: – Específicas para armazenamento de conjunto de caracteres que não contenham números (literais) → Ex: nome
  • 26. Variáveis – tipos • Alfanuméricas: – Específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas. • Lógicas: – Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso. Falso
  • 27. Operadores Os operadores são meios pelo quais incrementamos, decrementamos, comparamos e avaliamos dados em um algoritmo. Temos três tipos de operadores: – Operadores Aritméticos – Operadores Relacionais – Operadores Lógicos
  • 28. Operadores aritméticos • Adição + • Subtração - • Multiplicação * • Divisão / OBS: A linguagem Pascal não possui um operador para potenciação; a mesma é calculada a partir de cálculos de produto ou através de uma função exponencial (ex) e função logarítmica (LN(X)). Sintaxe:  XY := EXP(Y*LN(X)) EX.  X0.5 = EXP(0.5 * LN(X))
  • 29. Operadores relacionais Descrição Símbolo • Igual a = • Diferente de <> • Maior que > • Menor que < • Maior ou igual a >= • Menor ou igual a <=
  • 30. Operadores lógicos • E – AND – ^ (conjunção) • OU – OR – v (disjunção) • NÃO – NOT - ~ (negação) Exemplos de uso: 'A terra é redonda' E 'A terra é um planeta' 'O artista é famoso', logo OU 'ele é rico' OU 'ele é talentoso'
  • 31. Tabela-verdade Tabela-verdade é o conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas, as quais se encontram em apenas duas situações (V ou F), e um conjunto de operadores lógicos.
  • 32. Tabela-verdade Operação de negação AA Não A Não A FF VV VV FF Ex: (A) A menina é obediente → V (Não A) A menina é desobediente → F
  • 33. Tabela-verdade Operação de conjunção AA BB A eeB A B VV VV VV VV FF FF FF VV FF FF FF FF Ex: (A) A menina é obediente (B) A menina é estudiosa (A e B) A menina é obediente e estudiosa.
  • 34. Tabela-verdade Operação de disjunção não exclusiva AA BB A ou B A ou B VV VV VV VV FF VV FF VV VV FF FF FF Ex: (A) A menina é obediente (B) A menina é estudiosa (A ou B) A menina é obediente ou estudiosa.
  • 35. Tabela-verdade Operação de disjunção exclusiva AA BB A ou B A ou B VV VV FF VV FF VV FF VV VV FF FF FF Ex: (A) A menina é obediente (B) A menina é estudiosa (A ou B) A menina é obediente ou a menina é estudiosa.
  • 36. Bloco de comandos Compreende: * Comandos de atribuição * Estruturas de controle - Estruturas de decisão - Estruturas de repetição
  • 37. Comandos de atribuição Um comando de atribuição permite-nos fornecer um valor a uma variável Tipos – Comandos de entrada • Ex: leia (A) – Comandos de saída • Ex: escreva (A) O tipo do dado deve ser compatível com o tipo da variável, isto é: – Somente podemos atribuir um valor lógico a uma variável capaz de comportá-lo, ou seja, um variável declarada como sendo do tipo lógicos
  • 38. Estrutura de decisão Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente sequenciais. As principais estruturas de decisão são: “Se … Então”, “Se … então … Senão” e “Caso … Selecione”
  • 39. Estrutura de decisão INÍCIO “Iniciar regime” Verificar o calendário • Verificar o calendário Não Sim É segunda-feira • É segunda-feira? • Se sim, – Iniciar regime Aproveitar... Iniciar regime – Matricular na Matricular na academia academia • Se não, – Aproveitar FIM
  • 40. Condicional (If ... Then ... Else ...) Algoritmo Teste Definir variáveis; Início; S N1=N2 N1=N2 Ler N1; ? Ler N2; N Se N1=N2 Então N1>N2 N Escrever (N1=N2) N1<N2 ? Senão {ELSE} S Se N1>N2 Então Escrever (N1>N2) N1>N2 Senão {ELSE} Escrever (N2>N1); Fim.
  • 41. Estruturas de repetição É uma estrutura de desvio do fluxo de controle que realiza e repete diferentes comandos ou ações dependendo se uma condição é verdadeira ou falsa Estão associados a uma estrutura de repetição, uma condição e um bloco de código Enquanto ... faça <comando(s)> Repita <comando(s)> até que ...
  • 42. Estruturas de repetição Enquanto ... faça <comando(s)> A condição é verificada inicialmente, e caso seja verdadeira, o bloco de comandos é executado. Após o final da execução do bloco, a condição é verificada novamente, e caso ela ainda seja verdadeira, o código é executado novamente. Repita <comando(s)> até que ... Primeiro, o bloco de comandos é executado, e depois que a condição é verificada. Caso seja verdadeira, o bloco de comandos é novamente executado.
  • 43. Estruturas de repetição Deve-se observar que, caso o bloco de comandos nunca modificar o estado da condição, a estrutura será executada para sempre, uma situação chamada laço (loop) infinito. Da mesma forma, é possível especificar uma estrutura em que o bloco de comandos modifica o estado da condição, mas esta é sempre verdadeira.
  • 44. Ler dois números e uma letra. Se a letra for a, adicionar, se for s, subtrair, se for m, multiplicar, se for d, dividir, senão, exibir “Operação inexistente” Início 1 Início 1 S Resultado:= Definir N1,N2,Resultado:Real; S Operação: Definir N1,N2,Resultado:Real; Letra=m? Resultado:= Operação: Definir Letra,Tecla: Char; N1*N2 Multiplicação Definir Letra,Tecla: Char; Letra=m? N1*N2 Multiplicação n n Ler N1; Resultado:= Operação: Ler N1; Letra=d? Resultado:= Operação: N1/N2 Divisão Letra=d? N1/N2 Divisão Ler N2; Ler N2; Operação: Ler Letra; Operação: Ler Letra; Inexistente Inexistente S Operação: S Resultado:= Operação: Letra=a? Resultado:= Adiçao Letra=a? N1+N2 Adiçao N1+N2 Fim Fim n n S Operação: S Resultado:= Operação: Letra=s? Resultado:= Subtração N1-N2 Subtração Letra=s? N1-N2 n n 1 1
  • 45. Algumas pontuações... • A lógica se relaciona com a 'ordem da razão', com a 'correção do pensamento' • É necessário utilizar processos lógicos de programação para construir algoritmos
  • 46. Um pouco de humor Um pouco de humor sempre cai bem... sempre cai bem...
  • 47. Talvez se tivesse casado com uma programadora oodiálogo seria melhor… Talvez se tivesse casado com uma programadora diálogo seria melhor…
  • 48.
  • 49.
  • 50. Exercícios 1. Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas. a) (A+C) > B b) B >= (A + 2) c) C = (B –A) d) (B + A) <= C e) (C+A) > B 2. Construa um algoritmo que avalie cada uma das expressões acima, considerando que os valores de A, B e C são variáveis e são dados pelo usuário.
  • 51. Exercícios 3. Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das seguintes categorias: Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil B = 14 a 17 anos Adultos = Maiores de 18 anos
  • 52. Exercícios 3. A média parcial (MP) de uma disciplina semestral no Ifba é calculada com base na média aritmética não ponderada de 3 notas (Uni1, Uni2, Uni3). Caso o estudante alcance média parcial igual ou superior a 7,0, ele é aprovado sem precisar fazer prova final (PF). Caso ele alcance média parcial entre 3,0 e 6,9, ele precisará fazer prova final. Caso ele obtenha média inferior a 3,0, ele é reprovado. Utilizando uma pseudo linguagem (português estruturado), construa um algoritmo que leia o nome do estudante, suas notas nas 3 unidades, calcule sua média parcial e informe a situação de aprovação. Para os casos de ser necessário fazer prova final, deve também mostrar a nota mínima que ele precisa na prova final. O cálculo para a nota mínima necessária na prova final é =(7*MP)/3. (2,0) MP < 3 → reprovado 3,0 <= MP < 7,0 → precisa fazer prova final MP >= 7,0 → aprovado
  • 53. Referências FORBELLONE, André Luiz Vilar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estrutura de dados. 3. São Paulo: Prentice Hall, 2005. Cap. 1, 2 e 3.