SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
Aula	
  2:	
  Lógica	
  de	
  Programação	
  
    Algoritmos e Estruturas de Dados I                                                                  1.     Lógica	
  de	
  Programação	
  
                 (AEDS I)                                                                               2.     Instruções	
  
                                                                                                        3.     Algoritmo	
  
                    Prof. Olga N. Goussevskaia                                                          4.     Debugging	
  
                         olga@dcc.ufmg.br                                                               5.     Teste	
  
                                                                                                        6.     Elementos	
  do	
  algoritmo	
  
                                                                                                              –  Variáveis	
  
                                                                                                              –  Atribução	
  
                                                                                                                                                             Obs: Alguns slides por Profa Mirella M. Moro
                                                                                                              –  Operadores	
                                                                      2




     1.	
  LÓGICA	
  DE	
  PROGRAMAÇÃO	
                                                                                            2.	
  INSTRUÇÕES	
  
•  Técnica	
  de	
  encadear	
  pensamentos	
  para	
  aQngir	
                                         •  Cada	
  um	
  dos	
  passos,	
  cada	
  uma	
  das	
  ações	
  a	
  tomar	
  
   determinado	
  objeQvo	
                                                                                (obedecendo	
  a	
  seqüência	
  lógica)	
  para	
  ir	
  resolvendo	
  
•  Necessária	
  para	
  desenvolver	
  programas	
  e	
  sistemas,	
                                      o	
  problema,	
  ou	
  para	
  ir	
  executando	
  a	
  tarefa	
  
   pois	
  permite	
  definir	
  a	
  seqüência	
  lógica	
  para	
  a	
                                 •  É	
  a	
  instrução	
  que	
  indica	
  a	
  um	
  computador	
  uma	
  
   solução	
  de	
  um	
  problema	
                                                                       operação	
  elementar	
  a	
  executar	
  
•  SEQÜÊNCIA	
  LÓGICA 	
  	
                                                                                 –  Ex.:	
  “somar”,	
  “subtrair”,	
  “comparar	
  se	
  é	
  maior”,	
  etc	
  
    –  	
   ?	
  	
  →	
  1	
  →	
  2	
  →	
  3	
  →	
  	
  !	
                                         •  Uma	
  só	
  instrução	
  não	
  resolve	
  problemas	
  
    –  Estes	
  pensamentos	
  podem	
  ser	
  descritos	
  como	
  uma	
  
       seqüência	
  de	
  instruções,	
  que	
  devem	
  ser	
  seguidas	
  para	
  se	
  
       cumprir	
  uma	
  determinada	
  tarefa	
                                                        •  Executar	
  um	
  conjunto	
  de	
  instruções	
  
    –  Passos	
  executados	
  até	
  se	
  aQngir	
  um	
  objeQvo	
  ou	
  solução	
  de	
  
       um	
  problema	
                                                                                 •  Executar	
  em	
  uma	
  seqüência	
  lógica	
  
                                                                                                    3                                                                                              4




                                   Instruções	
                                                                                     3.	
  ALGORITMO	
  
•  EXEMPLO:	
  para	
  “fazer	
  omelete”	
                                                             •  Seqüência	
  finita	
  de	
  passos	
  que	
  levam	
  à	
  execução	
  de	
  
    –  Instruções:	
  “quebrar	
  ovos”,	
  “bater	
  ovos”,	
  “pôr	
  sal”,	
  “ligar	
                  uma	
  tarefa	
  
       fogão”,	
  “pôr	
  óleo	
  na	
  frigideira”,	
  “pôr	
  frigideira	
  no	
  fogo”,	
            •  Claro	
  e	
  preciso.	
  Ex.	
  “somar	
  dois	
  números”:	
  
       “fritar	
  ovos	
  baQdos”,	
  etc...	
  
                                                                                                              –  Escrever	
  primeiro	
  número	
  no	
  retângulo	
  A	
  
•  Quanto	
  às	
  instruções	
  isoladas:	
                                                                  –  Escrever	
  segundo	
  número	
  no	
  retângulo	
  B	
  
    –  Só	
  “quebrar	
  ovos”,	
  ou	
  só	
  “pôr	
  óleo	
  na	
  frigideira”,	
  não	
  é	
               –  Somar	
  o	
  número	
  do	
  retângulo	
  A	
  com	
  o	
  número	
  do	
  
       suficiente	
  para	
  cumprir	
  a	
  tarefa	
  “fazer	
  omelete”	
                                       retângulo	
  B	
  e	
  escrever	
  o	
  resultado	
  no	
  retângulo	
  C	
  
•  Quanto	
  à	
  seqüência	
  lógica:	
                                                                            A                         B                             C
    –  Se	
  executarmos	
  “fritar	
  ovos	
  baQdos”	
  antes	
  de	
  “bater	
  ovos”,	
  
       ou	
  pior,	
  antes	
  de	
  “quebrar	
  ovos”,	
  não	
  iremos	
  cumprir	
  a	
                                              +                           =
       tarefa	
  “fazer	
  omelete”	
  
                                                                                                    5                                                                                              6
Exemplo	
  de	
  algoritmo	
                                                                                          Programa	
  
      	
  Trocar	
  o	
  um	
  pneu	
  furado:	
  uma	
  roQna	
  para	
                                   •  Algoritmo	
  escrito	
  em	
  uma	
  linguagem	
  de	
  computador	
  	
  
          realizar	
  essa	
  tarefa	
                                                                         –  linguagem	
  de	
  programação:	
  C,	
  Pascal,	
  COBOL,	
  Fortran,	
  
                                                                                                                  Basic,	
  Java,	
  entre	
  outras	
  
        1.    Verifica qual pneu está furado                                                               •  Interpretado	
  e	
  executado	
  por	
  um	
  computador	
  
        2.    Posiciona o macaco para levantar o carro
        3.    Pega o estepe                                                                                •  Interpretação	
  rigorosa,	
  exata,	
  do	
  computador	
  	
  	
  
        4.    Solta os parafusos
        5.    Substitui o pneu furado
        6.    Recoloca os parafusos                                                                          	
  Escrita	
  do	
  algoritmo	
  na	
  linguagem	
  de	
  prog.	
  tem	
  que	
  
        7.    Desce o carro
                                                                                                                 seguir	
  regras	
  mais	
  rigorosas	
  
        8.    Guarda o macaco e o pneu furado
                                                                                                 7                                                                                                           8




                                         Programa	
                                                                                        Debugging	
  
    •  Sequência	
  de	
  instruções	
  que	
  especifica	
  como	
                                         •  Programação	
  é	
  um	
  processo	
  complexo	
  que,	
  
       realizar	
  uma	
  computação	
                                                                        por	
  ser	
  feito	
  por	
  seres	
  humanos,	
  
        –  Exemplos:	
  achar	
  as	
  raízes	
  de	
  um	
  polinômio,	
  achar	
                            frequentemente	
  leva	
  a	
  erros	
  (bugs):	
  
           uma	
  sequência	
  de	
  caracteres	
  em	
  um	
  documento	
                                     –  Erros	
  de	
  compilação	
  =	
  erros	
  de	
  sintaxe,	
  
    •  Conjunto	
  básico	
  de	
  instruções:	
                                                                  detectados	
  pelo	
  compilador.	
  (essa	
  frase	
  contém	
  
              •    Entrada	
  e	
  saída	
  (E/S)	
  de	
  dados	
                                                erros	
  de	
  sintaxe)	
  
              •    Movimentação	
  de	
  dados	
  (transferência)	
  
              •    AritméQca:	
  adição,	
  mulQplicação,	
  etc.	
  
                                                                                                               –  Erros	
  em	
  tempo	
  de	
  execução	
  
              •    Testes:	
  verificação	
  de	
  certas	
  condições	
  (comparação)	
                        –  Erros	
  de	
  lógica	
  e	
  semânQca	
  
              •    RepeQção	
  de	
  ações,	
  em	
  geral,	
  com	
  algumas	
  variações	
                        •  O	
  programa	
  que	
  você	
  escreveu	
  não	
  é	
  o	
  programa	
  que	
  
                                                                                                                       você	
  queria	
  escrever.	
  O	
  computador	
  não	
  consegue	
  
                                                                                                                       detectar	
  tais	
  erros.	
  




                                       Debugging	
                                                                            Tipos	
  de	
  Algoritmos	
  
                                                                                                           •  Pseudocódigo	
  
•  Uma	
  das	
  habilidade	
  mais	
  importante	
  que	
  você	
                                             –  Facilita	
  descrever	
  o	
  algoritmo	
  antes	
  de	
  passá-­‐lo	
  para	
  uma	
  
   deverá	
  adquirir	
  é	
  a	
  depuração	
  experimental	
                                                    ling.	
  de	
  programação	
  
                                                                                                               –  Intermediária:	
  linguagem	
  natural	
  –	
  linguagem	
  de	
  
•  Debugar	
  é	
  parecido	
  com	
  o	
  trabalho	
  de	
  um	
  deteQve	
                                      programação	
  
   e	
  envolve:	
                                                                                             –  Pseudocódigo	
  =	
  “códigofalso”	
  
        •  Análise	
  de	
  pistas	
  e	
  eventos	
  
                                                                                                           •  Fluxograma	
  
        •  Infererência	
  de	
  causas	
  que	
  levam	
  aos	
  resultados	
  do	
  seu	
  
                                                                                                               –  Forma	
  universal	
  de	
  representação	
  
           programa	
  
                                                                                                               –  UQliza	
  figuras	
  geométricas	
  para	
  ilustrar	
  passos	
  a	
  serem	
  
        •  Trabalho	
  experimental:	
  ao	
  ter	
  uma	
  idéia	
  sobre	
  o	
  erro,	
  modifique	
  
                                                                                                                  seguidos	
  para	
  a	
  resolução	
  de	
  problemas	
  
           o	
  seu	
  programa	
  e	
  tente	
  executar	
  novamente.	
  Se	
  sua	
  hipótese	
  
           estava	
  correta,	
  você	
  chegou	
  mais	
  perto	
  de	
  um	
  programa	
  
           correto.	
  Senão,	
  invente	
  outra	
  hipótese!	
                                                                                                                                            12
Pseudocódigo	
                                                     Escrevendo	
  Pseudocódigo	
  
•  Descrição	
  do	
  algoritmo,	
  menos	
  rigorosa	
  que	
  na	
                •  FASES	
  para	
  desenvolver	
  o	
  algoritmo	
  
   linguagem	
  de	
  programação	
  (código	
  fonte)	
                                –  Determinar	
  o	
  problema,	
  definí-­‐lo	
  bem	
  
                                                                                        –  Dividir	
  a	
  solução	
  nas	
  três	
  fases	
  
•  Fácil	
  de	
  entender	
  e	
  fácil	
  de	
  codificar	
  depois	
  
•  Independente	
  da	
  linguagem	
  de	
  programação	
                                ENTRADA                     PROCESSAMENTO                                 SAÍDA
•  Simples	
  e	
  objeQvo	
                                                        •  Exemplo:	
  
•  Técnica	
                                                                            –  Problema:	
  calcular	
  a	
  média	
  de	
  quatro	
  números	
  
    –  Um	
  verbo	
  por	
  frase	
                                                    –  Dados	
  de	
  entrada:	
  os	
  números,	
  N1,	
  N2,	
  N3	
  e	
  N4	
  
                                                                                        –  Processamento:	
  somar	
  os	
  quatro	
  números	
  e	
  dividir	
  a	
  soma	
  
    –  Não	
  escrever	
  “para	
  informatas”	
                                           por	
  4	
  
    –  Frases	
  curtas	
  e	
  simples	
                                                                            N1 + N2 + N3 + N4
    –  Ser	
  objeQvo	
                                                                                                            4
                                                                                        –  Dados	
  de	
  saída:	
  a	
  média	
  final	
  
    –  Usar	
  palavras	
  sem	
  duplo	
  senQdo	
  
                                                                               13                                                                                           14




         Escrevendo	
  Pseudocódigos	
                                                                           Fluxograma	
  
                                                                                        –  Representação	
  gráfica	
  padronizada	
  dos	
  passos	
  de	
  
                                                           N1 + N2 + N3 + N4
                                                                   4                       um	
  algoritmo	
  
                                                                                        –  Principais	
  símbolos	
  
•  Algoritmo	
                                                                                              Terminal: INÍCIO ou FIM do algoritmo
    –  Receber	
  o	
  primeiro	
  número	
  
    –  Receber	
  o	
  segundo	
  número	
                                                                  Processamento (ação, operação)
    –  Receber	
  o	
  terceiro	
  número	
                                                                 Entrada de dado manual (“ler”, “receber”)
    –  Receber	
  o	
  quarto	
  número	
  
    –  Somar	
  todos	
  os	
  números	
                                                                    Exibir (“mostrar”, saída de dado)
    –  Dividir	
  a	
  soma	
  por	
  4	
  
                                                                                                     S      Decisão (teste)
    –  Mostrar	
  o	
  resultado	
  da	
  divisão	
  
                                                                                                N
                                                                               15                                                                                           16




                         Fluxograma	
                                                                                 4.	
  TESTE	
  
                                                            INÍCIO


  N1 + N2 + N3 + N4                                       Receber N1                •  Todo	
  algoritmo	
  deve	
  ser	
  testado	
  
          4                                                                             –  Usar	
  dados	
  e	
  resultados	
  previamente	
  calculados	
  
                                                          Receber N2
                                                                                        –  Seguir	
  precisamente	
  as	
  instruções	
  do	
  algoritmo	
  	
  
                                                          Receber N3                    –  Verificar	
  se	
  o	
  procedimento	
  está	
  correto	
  
                                                                                    •  Exemplo:	
  Fazer	
  teste	
  de	
  mesa	
  para	
  o	
  algoritmo	
  da	
  
                                                          Receber N4
                                                                                       média	
  
                                       Calcular MEDIA= (N1+N2+N3+N4) / 4


                                                        Mostrar MEDIA


                                                             FIM
                                                                               17                                                                                           18
5.	
  ELEMENTOS	
                                                                                                  Variável	
  
•  Variável	
                                                                                        •  Representa	
  uma	
  posição	
  na	
  memória,	
  onde	
  
•  Atribuição	
                                                                                         pode	
  ser	
  armazenado	
  um	
  dado	
  
•  Operadores	
                                                                                      •  Possui	
  um	
  nome	
  e	
  um	
  valor	
  
                                                                                                     •  Durante	
  a	
  execução	
  do	
  algoritmo,	
  pode	
  ter	
  seu	
  
                                                                                                        valor	
  alterado	
  (seu	
  valor	
  pode	
  variar)	
  
                                                                                                     •  Mudanças	
  no	
  valor	
  das	
  variáveis:	
  
                                                                                                         –  Por	
  entrada	
  de	
  dados	
  (“Ler	
  N1”)	
  
                                                                                                         –  Por	
  atribuição	
  (“MEDIA	
  =	
  <um	
  certo	
  valor>”)	
  

                                                                                                19                                                                                20




         Variável:	
  exemplo	
  seqüencial	
                                                                Variável:	
  exemplo	
  seqüencial	
  
            “Calcular	
  a	
  média	
  de	
  quatro	
  números”	
                                    “Calcular	
  a	
  média	
  de	
  quatro	
  números”	
  
                                                                                                         –  PSEUDOCÓDIGO:	
  
                                                                                                                •  Ler	
  N1	
  
Pseudocódigo:	
                                                                                                                                    VARIÁVEIS:
                                                                                                                •  Ler	
  N2	
                     mais clareza no pseudocódigo
    –  Ler	
  N1	
                                                                                              •  Ler	
  N3	
  
    –  Ler	
  N2	
                                                                                              •  Ler	
  N4	
  
    –  Ler	
  N3	
  
    –  Ler	
  N4	
                                                                                              •  MEDIA	
  =	
  (N1+N2+N3+N4)	
  /	
  4	
  
                                                                                                                •  Mostrar	
  MEDIA	
  
    –  MEDIA	
  =	
  (N1+N2+N3+N4)	
  /	
  4	
  
    –  Mostrar	
  MEDIA	
  
                                                                                                21                     VARIÁVEL                                                   22




                                 Atribuição	
                                                                                              Operadores	
  
•  Atribui	
  o	
  valor	
  da	
  direita	
  à	
  variável	
  da	
  esquerda	
                       •  São	
  operações	
  básicas	
  em	
  processamento	
  de	
  dados	
  
•  O	
  valor	
  pode	
  ser	
  uma	
  constante,	
  uma	
  variável	
  ou	
                         •  Usados	
  para	
  incrementar,	
  decrementar,	
  comparar	
  e	
  
   uma	
  expressão	
                                                                                   avaliar	
  dados	
  
      	
  MEDIA	
  =	
  (N1+N2+N3+N4)	
  /	
  4	
  
      	
  (Lê-­‐se	
  media	
  recebe	
  N1+...)	
  
                                                                                                     •  Tipos:	
  
    –  Neste	
  caso,	
  estamos	
  atribuindo	
  o	
  resultado	
  da	
  fórmula	
  à	
                 –  AritméQcos	
  (+,	
  -­‐,	
  *,	
  /,	
  **	
  ou	
  ^)	
  
         variável	
  média,	
  ou	
  seja,	
  a	
  variável	
  média	
  está	
  recebendo	
                     •  Resultados	
  numéricos	
  
         como	
  valor	
  o	
  resultado	
  da	
  fórmula	
                                              –  Relacionais	
  (>,	
  <,	
  >=,	
  <=,	
  =,	
  <>	
  ou	
  #)	
  
•  Outros	
  Exemplos	
                                                                                         •  Resultados	
  lógicos	
  (V	
  ou	
  F)	
  
    –  	
   a	
  =	
  3;	
                                                                               –  Lógicos	
  (e,	
  ou,	
  não)	
  
    –  	
   a	
  =	
  x;	
                                                                                      •  Combinam	
  resultados	
  lógicos	
  

                                                                                                23                                                                                24
Operadores	
  AritméQcos	
                                                                                             Operadores	
  Relacionais	
  
                                                                                                                               •  Muito	
  usados	
  para	
  tomar	
                         Exemplo:
                                                                                           Hierarquia das Ops. Aritméticas
                                                                                               Parênteses                         decisões	
  nos	
  algoritmos	
                            Duas variáveis, A = 5 e B = 3
                                                                                               Exponenciação                   •  Usados	
  para:	
  testes,	
  
                                                                                               Multiplicação ou Divisão                                                                       Expressão      Resultado
                                                                                               Adição ou Subtração                comparações,	
  que	
  resultam	
  
                                                                                                                                  em	
  valores	
  lógicos	
                                  A=B            Falso
                                                                                                                                  (verdadeiro	
  ou	
  falso)	
                               A <> B         Verdadeiro
                                                       TOTAL = PREÇO * QUANTIDADE                                                                                                             A>B            Verdadeiro
                                                                      1 + 7 * 2 ** 2 – 1 = 28                                                                                                 A<B            Falso
                                                                                                                                                                                              A >= B         Verdadeiro
                                                                      3 * (1- 2) + 4 * 2 = 5
                                                                                                                                                                                              A <= B         falso
                                                           Média = (N1 + N2 + N3 + N4) / 4

                                                                                                                    25                                                                                                  26




                                                                      Exercícios	
                                                                         Operadores	
  Lógicos	
  
                                                                                                                                                                                                 A      op      B    T/F?
                                                                                                                             •  Combinam	
  resultados	
  
•  Tendo	
  as	
  variáveis	
  SALARIO,	
  IR	
  e	
  SALLIQ,	
  e	
  considerando	
  os	
                                                                                                       T     AND      T       T
   valores	
  abaixo.	
  Informe	
  se	
  as	
  expressões	
  são	
  verdadeiras	
  ou	
                                        lógicos	
  
   falsas	
                                                                                                                                                                                      T     AND      F       F
                                                                                                                             •  Geram	
  novos	
  valores	
  
                                                                                                                                lógicos	
  (T	
  ou	
  F)	
                                      F     AND      T       F

                                                                                                                             •  A	
  “tabela-­‐verdade”	
  mostra	
                              F     AND      F       F
                                                                                                                                todos	
  os	
  valores	
  possíveis	
                            T     OR       T       T
•  Sabendo	
  que	
  A=3,	
  B=7	
  e	
  C=4,	
  informe	
  se	
  as	
  expressões	
  abaixo	
  
   são	
  verdadeiras	
  ou	
  falsas.	
                                                                                        de	
  se	
  obter	
  com	
  oper.	
                              T     OR       F       T
     –    (A+C)	
  >	
  B	
   	
  (	
  	
  )	
                                                                                  lógicos	
                                                        F     OR       T       T
     –    B	
  >=	
  (A	
  +	
  2)	
   	
  (	
  	
  )	
                                                                                                                    T = Verdad.
     –    C	
  =	
  (B	
  –A)	
                  	
  (	
  	
  )	
                                                                                                                                F     OR       F       F
                                                                                                                                                                           F = Falso
     –    (B	
  +	
  A)	
  <=	
  C	
   	
  (	
  	
  )	
                                                                                                                    AND = E                     NOT      T       F
     –    (C+A)	
  >	
  B	
   	
  (	
  	
  )	
                                                                                                                             OR = OU
                                                                                                                                                                           NOT = NÃO                   NOT      F       T
                                                                                                                    27                                                                                                  28




                                             Operações	
  Lógicas	
                                                                                           Operações	
  Lógicas	
  
•  Operadores	
  relacionais	
  +	
  operadores	
  lógicos	
  =	
                                                              •  Operadores	
  relacionais	
  +	
  operadores	
  lógicos	
  =	
  
   operações	
  lógicas	
                                                                                                         operações	
  lógicas	
  
•  Produzem	
  resultados	
  lógicos	
  (T/F)	
  	
                                                                            •  Produzem	
  resultados	
  lógicos	
  (T/F)	
  	
  
•  Para	
  A	
  =	
  5,	
  B	
  =	
  8	
  e	
  C	
  =	
  1:	
                                                                  •  Para	
  A	
  =	
  5,	
  B	
  =	
  8	
  e	
  C	
  =	
  1:	
   F ( V AND F )
               •     (A	
  =	
  B)	
  AND	
  (B	
  >	
  C)	
                                                                            •    (A	
  =	
  B)	
  AND	
  (B	
  >	
  C)	
                    V ( V OR F )
               •     (A	
  <>	
  B)	
  OR	
  (B	
  <	
  C)	
  	
                                                                        •    (A	
  <>	
  B)	
  OR	
  (B	
  <	
  C)	
  	
  
                                                                                                                                                                                                        V ( NOT F )
               •     NOT	
  (A	
  >	
  B)	
                                                                                             •    NOT	
  (A	
  >	
  B)	
  
               •     (A	
  <	
  B)	
  AND	
  (B	
  >	
  C)	
                                                                            •    (A	
  <	
  B)	
  AND	
  (B	
  >	
  C)	
                    V ( V AND V )
               •     (A	
  >=	
  B)	
  OR	
  (B	
  =	
  C)	
                                                                            •    (A	
  >=	
  B)	
  OR	
  (B	
  =	
  C)	
                    F ( F OR F )
               •     NOT	
  (A	
  <=	
  B)	
                                                                                            •    NOT	
  (A	
  <=	
  B)	
                                    F ( NOT V )
•  São	
  usadas	
  em	
  decisões	
  nos	
  algoritmos...	
                                                                   •  São	
  usadas	
  em	
  decisões	
  nos	
  algoritmos...	
  
                                                                                                                    29                                                                                                  30
Exercícios	
  	
                                                                                          Exercícios	
  
•  Escreva	
  os	
  passos	
  necessários	
  para	
  uma	
                                                 •  IdenQfique	
  os	
  dados	
  de	
  entrada,	
  processamento	
  e	
  
                                                                                                              saída	
  no	
  algoritmo	
  abaixo	
  
   pessoa	
  efetuar	
  um	
  saque	
  em	
  um	
  caixa	
  
                                                                                                               –  Receba	
  código	
  da	
  peça	
  
   eletrônico	
                                                                                                –  Receba	
  valor	
  da	
  peça	
  
•  Escreva	
  a	
  seqüência	
  de	
  passos	
  para	
  que	
  uma	
                                           –  Receba	
  QuanQdade	
  de	
  peças	
  (Qtde)	
  
   pessoa	
  abra	
  um	
  arquivo	
  armazenado	
  em	
  um	
                                                 –  Calcule	
  o	
  valor	
  total	
  da	
  peça	
  (Qtde	
  *	
  Valor)	
  
                                                                                                               –  Mostre	
  o	
  código	
  da	
  peça	
  e	
  seu	
  valor	
  total	
  
   pen-­‐drive	
  uQlizando	
  o	
  Word	
  do	
  Windows	
  
                                                                                                           •  Faça	
  um	
  algoritmo	
  para	
  “Calcular	
  o	
  estoque	
  médio	
  
                                                                                                                  de	
  uma	
  peça”,	
  sendo	
  que	
  
                                                                                                           estoquemédio	
  =	
  	
  
                                                                                                              	
  (quanQdade	
  mínima	
  +	
  quanQdade	
  máxima)	
  /2	
  
                                                                                                    31                                                                                       32




                                       Exercício	
  
     	
  Considere	
  a	
  seguinte	
  atribuição	
  de	
  valores	
  para	
  as	
  variáveis:	
  
         A=3,	
  B=4,	
  C=8.	
  Avalie	
  as	
  expressões	
  indicando	
  o	
  resultado	
  final:	
  
         T	
  /	
  F	
  
•        A	
  >	
  3	
  AND	
  C	
  =	
  8	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  	
  
•        A	
  <>	
  2	
  OR	
  B	
  <=	
  5	
  
•        A	
  =	
  3	
  OR	
  B	
  >=	
  2	
  AND	
  C	
  =	
  8	
  
•        A	
  =	
  3	
  AND	
  NOT	
  B	
  <=	
  4	
  AND	
  C	
  =	
  8	
  
•        A	
  <>	
  8	
  OR	
  B	
  =	
  4	
  AND	
  C	
  >	
  2	
  
•        B	
  >	
  A	
  AND	
  C	
  <>	
  A	
  
•        A	
  >	
  B	
  OR	
  B	
  <	
  5 	
  	
  
•        A	
  <>	
  B	
  AND	
  B	
  =	
  C	
  
•        C	
  >	
  2	
  OR	
  A	
  <	
  B 	
  	
  
•        A	
  >	
  B	
  OR	
  B	
  >	
  A	
  AND	
  C	
  <>	
  B 	
   	
  	
  
                                                                                                    33

Mais conteúdo relacionado

Semelhante a Introdução a Algoritmos e Estruturas de Dados

Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - AlgoritmosPsLucas
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascalTácito Graça
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009starley lobo
 
Aula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxAula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxMárcio Santos
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoEduardo de Lucena Falcão
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasMessias Batista
 
Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Márcio Santos
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Fernando Passold
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptxJONATHANSILVADEOLIVE
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aulaLoAlves21
 

Semelhante a Introdução a Algoritmos e Estruturas de Dados (20)

Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - Algoritmos
 
Aula 01 introdução a linguagem pascal
Aula 01   introdução a linguagem pascalAula 01   introdução a linguagem pascal
Aula 01 introdução a linguagem pascal
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
 
Algoritmos - Aula 01 B - Introducao
Algoritmos - Aula 01 B - IntroducaoAlgoritmos - Aula 01 B - Introducao
Algoritmos - Aula 01 B - Introducao
 
Aula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxAula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptx
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvido
 
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e ProgramasAula 01.3 - Fundamentos da Construção de Algoritmos e Programas
Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas
 
Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Introduçao a Algoritmo...................
Introduçao a Algoritmo...................
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Pged 07
Pged 07Pged 07
Pged 07
 
Cap04
Cap04Cap04
Cap04
 
Cap04
Cap04Cap04
Cap04
 
Cap04
Cap04Cap04
Cap04
 

Introdução a Algoritmos e Estruturas de Dados

  • 1. Aula  2:  Lógica  de  Programação   Algoritmos e Estruturas de Dados I 1.  Lógica  de  Programação   (AEDS I) 2.  Instruções   3.  Algoritmo   Prof. Olga N. Goussevskaia 4.  Debugging   olga@dcc.ufmg.br 5.  Teste   6.  Elementos  do  algoritmo   –  Variáveis   –  Atribução   Obs: Alguns slides por Profa Mirella M. Moro –  Operadores   2 1.  LÓGICA  DE  PROGRAMAÇÃO   2.  INSTRUÇÕES   •  Técnica  de  encadear  pensamentos  para  aQngir   •  Cada  um  dos  passos,  cada  uma  das  ações  a  tomar   determinado  objeQvo   (obedecendo  a  seqüência  lógica)  para  ir  resolvendo   •  Necessária  para  desenvolver  programas  e  sistemas,   o  problema,  ou  para  ir  executando  a  tarefa   pois  permite  definir  a  seqüência  lógica  para  a   •  É  a  instrução  que  indica  a  um  computador  uma   solução  de  um  problema   operação  elementar  a  executar   •  SEQÜÊNCIA  LÓGICA     –  Ex.:  “somar”,  “subtrair”,  “comparar  se  é  maior”,  etc   –    ?    →  1  →  2  →  3  →    !   •  Uma  só  instrução  não  resolve  problemas   –  Estes  pensamentos  podem  ser  descritos  como  uma   seqüência  de  instruções,  que  devem  ser  seguidas  para  se   cumprir  uma  determinada  tarefa   •  Executar  um  conjunto  de  instruções   –  Passos  executados  até  se  aQngir  um  objeQvo  ou  solução  de   um  problema   •  Executar  em  uma  seqüência  lógica   3 4 Instruções   3.  ALGORITMO   •  EXEMPLO:  para  “fazer  omelete”   •  Seqüência  finita  de  passos  que  levam  à  execução  de   –  Instruções:  “quebrar  ovos”,  “bater  ovos”,  “pôr  sal”,  “ligar   uma  tarefa   fogão”,  “pôr  óleo  na  frigideira”,  “pôr  frigideira  no  fogo”,   •  Claro  e  preciso.  Ex.  “somar  dois  números”:   “fritar  ovos  baQdos”,  etc...   –  Escrever  primeiro  número  no  retângulo  A   •  Quanto  às  instruções  isoladas:   –  Escrever  segundo  número  no  retângulo  B   –  Só  “quebrar  ovos”,  ou  só  “pôr  óleo  na  frigideira”,  não  é   –  Somar  o  número  do  retângulo  A  com  o  número  do   suficiente  para  cumprir  a  tarefa  “fazer  omelete”   retângulo  B  e  escrever  o  resultado  no  retângulo  C   •  Quanto  à  seqüência  lógica:   A B C –  Se  executarmos  “fritar  ovos  baQdos”  antes  de  “bater  ovos”,   ou  pior,  antes  de  “quebrar  ovos”,  não  iremos  cumprir  a   + = tarefa  “fazer  omelete”   5 6
  • 2. Exemplo  de  algoritmo   Programa    Trocar  o  um  pneu  furado:  uma  roQna  para   •  Algoritmo  escrito  em  uma  linguagem  de  computador     realizar  essa  tarefa   –  linguagem  de  programação:  C,  Pascal,  COBOL,  Fortran,   Basic,  Java,  entre  outras   1.  Verifica qual pneu está furado •  Interpretado  e  executado  por  um  computador   2.  Posiciona o macaco para levantar o carro 3.  Pega o estepe •  Interpretação  rigorosa,  exata,  do  computador       4.  Solta os parafusos 5.  Substitui o pneu furado 6.  Recoloca os parafusos  Escrita  do  algoritmo  na  linguagem  de  prog.  tem  que   7.  Desce o carro seguir  regras  mais  rigorosas   8.  Guarda o macaco e o pneu furado 7 8 Programa   Debugging   •  Sequência  de  instruções  que  especifica  como   •  Programação  é  um  processo  complexo  que,   realizar  uma  computação   por  ser  feito  por  seres  humanos,   –  Exemplos:  achar  as  raízes  de  um  polinômio,  achar   frequentemente  leva  a  erros  (bugs):   uma  sequência  de  caracteres  em  um  documento   –  Erros  de  compilação  =  erros  de  sintaxe,   •  Conjunto  básico  de  instruções:   detectados  pelo  compilador.  (essa  frase  contém   •  Entrada  e  saída  (E/S)  de  dados   erros  de  sintaxe)   •  Movimentação  de  dados  (transferência)   •  AritméQca:  adição,  mulQplicação,  etc.   –  Erros  em  tempo  de  execução   •  Testes:  verificação  de  certas  condições  (comparação)   –  Erros  de  lógica  e  semânQca   •  RepeQção  de  ações,  em  geral,  com  algumas  variações   •  O  programa  que  você  escreveu  não  é  o  programa  que   você  queria  escrever.  O  computador  não  consegue   detectar  tais  erros.   Debugging   Tipos  de  Algoritmos   •  Pseudocódigo   •  Uma  das  habilidade  mais  importante  que  você   –  Facilita  descrever  o  algoritmo  antes  de  passá-­‐lo  para  uma   deverá  adquirir  é  a  depuração  experimental   ling.  de  programação   –  Intermediária:  linguagem  natural  –  linguagem  de   •  Debugar  é  parecido  com  o  trabalho  de  um  deteQve   programação   e  envolve:   –  Pseudocódigo  =  “códigofalso”   •  Análise  de  pistas  e  eventos   •  Fluxograma   •  Infererência  de  causas  que  levam  aos  resultados  do  seu   –  Forma  universal  de  representação   programa   –  UQliza  figuras  geométricas  para  ilustrar  passos  a  serem   •  Trabalho  experimental:  ao  ter  uma  idéia  sobre  o  erro,  modifique   seguidos  para  a  resolução  de  problemas   o  seu  programa  e  tente  executar  novamente.  Se  sua  hipótese   estava  correta,  você  chegou  mais  perto  de  um  programa   correto.  Senão,  invente  outra  hipótese!   12
  • 3. Pseudocódigo   Escrevendo  Pseudocódigo   •  Descrição  do  algoritmo,  menos  rigorosa  que  na   •  FASES  para  desenvolver  o  algoritmo   linguagem  de  programação  (código  fonte)   –  Determinar  o  problema,  definí-­‐lo  bem   –  Dividir  a  solução  nas  três  fases   •  Fácil  de  entender  e  fácil  de  codificar  depois   •  Independente  da  linguagem  de  programação   ENTRADA PROCESSAMENTO SAÍDA •  Simples  e  objeQvo   •  Exemplo:   •  Técnica   –  Problema:  calcular  a  média  de  quatro  números   –  Um  verbo  por  frase   –  Dados  de  entrada:  os  números,  N1,  N2,  N3  e  N4   –  Processamento:  somar  os  quatro  números  e  dividir  a  soma   –  Não  escrever  “para  informatas”   por  4   –  Frases  curtas  e  simples   N1 + N2 + N3 + N4 –  Ser  objeQvo   4 –  Dados  de  saída:  a  média  final   –  Usar  palavras  sem  duplo  senQdo   13 14 Escrevendo  Pseudocódigos   Fluxograma   –  Representação  gráfica  padronizada  dos  passos  de   N1 + N2 + N3 + N4 4 um  algoritmo   –  Principais  símbolos   •  Algoritmo   Terminal: INÍCIO ou FIM do algoritmo –  Receber  o  primeiro  número   –  Receber  o  segundo  número   Processamento (ação, operação) –  Receber  o  terceiro  número   Entrada de dado manual (“ler”, “receber”) –  Receber  o  quarto  número   –  Somar  todos  os  números   Exibir (“mostrar”, saída de dado) –  Dividir  a  soma  por  4   S Decisão (teste) –  Mostrar  o  resultado  da  divisão   N 15 16 Fluxograma   4.  TESTE   INÍCIO N1 + N2 + N3 + N4 Receber N1 •  Todo  algoritmo  deve  ser  testado   4 –  Usar  dados  e  resultados  previamente  calculados   Receber N2 –  Seguir  precisamente  as  instruções  do  algoritmo     Receber N3 –  Verificar  se  o  procedimento  está  correto   •  Exemplo:  Fazer  teste  de  mesa  para  o  algoritmo  da   Receber N4 média   Calcular MEDIA= (N1+N2+N3+N4) / 4 Mostrar MEDIA FIM 17 18
  • 4. 5.  ELEMENTOS   Variável   •  Variável   •  Representa  uma  posição  na  memória,  onde   •  Atribuição   pode  ser  armazenado  um  dado   •  Operadores   •  Possui  um  nome  e  um  valor   •  Durante  a  execução  do  algoritmo,  pode  ter  seu   valor  alterado  (seu  valor  pode  variar)   •  Mudanças  no  valor  das  variáveis:   –  Por  entrada  de  dados  (“Ler  N1”)   –  Por  atribuição  (“MEDIA  =  <um  certo  valor>”)   19 20 Variável:  exemplo  seqüencial   Variável:  exemplo  seqüencial   “Calcular  a  média  de  quatro  números”   “Calcular  a  média  de  quatro  números”   –  PSEUDOCÓDIGO:   •  Ler  N1   Pseudocódigo:   VARIÁVEIS: •  Ler  N2   mais clareza no pseudocódigo –  Ler  N1   •  Ler  N3   –  Ler  N2   •  Ler  N4   –  Ler  N3   –  Ler  N4   •  MEDIA  =  (N1+N2+N3+N4)  /  4   •  Mostrar  MEDIA   –  MEDIA  =  (N1+N2+N3+N4)  /  4   –  Mostrar  MEDIA   21 VARIÁVEL 22 Atribuição   Operadores   •  Atribui  o  valor  da  direita  à  variável  da  esquerda   •  São  operações  básicas  em  processamento  de  dados   •  O  valor  pode  ser  uma  constante,  uma  variável  ou   •  Usados  para  incrementar,  decrementar,  comparar  e   uma  expressão   avaliar  dados    MEDIA  =  (N1+N2+N3+N4)  /  4    (Lê-­‐se  media  recebe  N1+...)   •  Tipos:   –  Neste  caso,  estamos  atribuindo  o  resultado  da  fórmula  à   –  AritméQcos  (+,  -­‐,  *,  /,  **  ou  ^)   variável  média,  ou  seja,  a  variável  média  está  recebendo   •  Resultados  numéricos   como  valor  o  resultado  da  fórmula   –  Relacionais  (>,  <,  >=,  <=,  =,  <>  ou  #)   •  Outros  Exemplos   •  Resultados  lógicos  (V  ou  F)   –    a  =  3;   –  Lógicos  (e,  ou,  não)   –    a  =  x;   •  Combinam  resultados  lógicos   23 24
  • 5. Operadores  AritméQcos   Operadores  Relacionais   •  Muito  usados  para  tomar   Exemplo: Hierarquia das Ops. Aritméticas Parênteses decisões  nos  algoritmos   Duas variáveis, A = 5 e B = 3 Exponenciação •  Usados  para:  testes,   Multiplicação ou Divisão Expressão Resultado Adição ou Subtração comparações,  que  resultam   em  valores  lógicos   A=B Falso (verdadeiro  ou  falso)   A <> B Verdadeiro TOTAL = PREÇO * QUANTIDADE A>B Verdadeiro 1 + 7 * 2 ** 2 – 1 = 28 A<B Falso A >= B Verdadeiro 3 * (1- 2) + 4 * 2 = 5 A <= B falso Média = (N1 + N2 + N3 + N4) / 4 25 26 Exercícios   Operadores  Lógicos   A op B T/F? •  Combinam  resultados   •  Tendo  as  variáveis  SALARIO,  IR  e  SALLIQ,  e  considerando  os   T AND T T valores  abaixo.  Informe  se  as  expressões  são  verdadeiras  ou   lógicos   falsas   T AND F F •  Geram  novos  valores   lógicos  (T  ou  F)   F AND T F •  A  “tabela-­‐verdade”  mostra   F AND F F todos  os  valores  possíveis   T OR T T •  Sabendo  que  A=3,  B=7  e  C=4,  informe  se  as  expressões  abaixo   são  verdadeiras  ou  falsas.   de  se  obter  com  oper.   T OR F T –  (A+C)  >  B    (    )   lógicos   F OR T T –  B  >=  (A  +  2)    (    )   T = Verdad. –  C  =  (B  –A)    (    )   F OR F F F = Falso –  (B  +  A)  <=  C    (    )   AND = E NOT T F –  (C+A)  >  B    (    )   OR = OU NOT = NÃO NOT F T 27 28 Operações  Lógicas   Operações  Lógicas   •  Operadores  relacionais  +  operadores  lógicos  =   •  Operadores  relacionais  +  operadores  lógicos  =   operações  lógicas   operações  lógicas   •  Produzem  resultados  lógicos  (T/F)     •  Produzem  resultados  lógicos  (T/F)     •  Para  A  =  5,  B  =  8  e  C  =  1:   •  Para  A  =  5,  B  =  8  e  C  =  1:   F ( V AND F ) •  (A  =  B)  AND  (B  >  C)   •  (A  =  B)  AND  (B  >  C)   V ( V OR F ) •  (A  <>  B)  OR  (B  <  C)     •  (A  <>  B)  OR  (B  <  C)     V ( NOT F ) •  NOT  (A  >  B)   •  NOT  (A  >  B)   •  (A  <  B)  AND  (B  >  C)   •  (A  <  B)  AND  (B  >  C)   V ( V AND V ) •  (A  >=  B)  OR  (B  =  C)   •  (A  >=  B)  OR  (B  =  C)   F ( F OR F ) •  NOT  (A  <=  B)   •  NOT  (A  <=  B)   F ( NOT V ) •  São  usadas  em  decisões  nos  algoritmos...   •  São  usadas  em  decisões  nos  algoritmos...   29 30
  • 6. Exercícios     Exercícios   •  Escreva  os  passos  necessários  para  uma   •  IdenQfique  os  dados  de  entrada,  processamento  e   saída  no  algoritmo  abaixo   pessoa  efetuar  um  saque  em  um  caixa   –  Receba  código  da  peça   eletrônico   –  Receba  valor  da  peça   •  Escreva  a  seqüência  de  passos  para  que  uma   –  Receba  QuanQdade  de  peças  (Qtde)   pessoa  abra  um  arquivo  armazenado  em  um   –  Calcule  o  valor  total  da  peça  (Qtde  *  Valor)   –  Mostre  o  código  da  peça  e  seu  valor  total   pen-­‐drive  uQlizando  o  Word  do  Windows   •  Faça  um  algoritmo  para  “Calcular  o  estoque  médio   de  uma  peça”,  sendo  que   estoquemédio  =      (quanQdade  mínima  +  quanQdade  máxima)  /2   31 32 Exercício    Considere  a  seguinte  atribuição  de  valores  para  as  variáveis:   A=3,  B=4,  C=8.  Avalie  as  expressões  indicando  o  resultado  final:   T  /  F   •  A  >  3  AND  C  =  8                               •  A  <>  2  OR  B  <=  5   •  A  =  3  OR  B  >=  2  AND  C  =  8   •  A  =  3  AND  NOT  B  <=  4  AND  C  =  8   •  A  <>  8  OR  B  =  4  AND  C  >  2   •  B  >  A  AND  C  <>  A   •  A  >  B  OR  B  <  5     •  A  <>  B  AND  B  =  C   •  C  >  2  OR  A  <  B     •  A  >  B  OR  B  >  A  AND  C  <>  B       33