Introdução a Algoritmos e Estruturas de Dados

6
Algoritmos e Estruturas de Dados I (AEDS I) Prof. Olga N. Goussevskaia [email protected] 2 Aula 2: Lógica de Programação 1. Lógica de Programação 2. Instruções 3. Algoritmo 4. Debugging 5. Teste 6. Elementos do algoritmo Variáveis Atribução Operadores Obs: Alguns slides por Profa Mirella M. Moro 3 1. LÓGICA DE PROGRAMAÇÃO Técnica de encadear pensamentos para aQngir determinado objeQvo Necessária para desenvolver programas e sistemas, pois permite definir a seqüência lógica para a solução de um problema SEQÜÊNCIA LÓGICA ? 1 2 3 ! Estes pensamentos podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa Passos executados até se aQngir um objeQvo ou solução de um problema 4 2. INSTRUÇÕES Cada um dos passos, cada uma das ações a tomar (obedecendo a seqüência lógica) para ir resolvendo o problema, ou para ir executando a tarefa É a instrução que indica a um computador uma operação elementar a executar Ex.: “somar”, “subtrair”, “comparar se é maior”, etc Uma só instrução não resolve problemas Executar um conjunto de instruções Executar em uma seqüência lógica 5 Instruções EXEMPLO: para “fazer omelete” Instruções: “quebrar ovos”, “bater ovos”, “pôr sal”, “ligar fogão”, “pôr óleo na frigideira”, “pôr frigideira no fogo”, “fritar ovos baQdos”, etc... Quanto às instruções isoladas: Só “quebrar ovos”, ou só “pôr óleo na frigideira”, não é suficiente para cumprir a tarefa “fazer omelete” Quanto à seqüência lógica: Se executarmos “fritar ovos baQdos” antes de “bater ovos”, ou pior, antes de “quebrar ovos”, não iremos cumprir a tarefa “fazer omelete” 6 3. ALGORITMO Seqüência finita de passos que levam à execução de uma tarefa Claro e preciso. Ex. “somar dois números”: Escrever primeiro número no retângulo A Escrever segundo número no retângulo B Somar o número do retângulo A com o número do retângulo B e escrever o resultado no retângulo C A B C + =

Transcript of Introdução a Algoritmos e Estruturas de Dados

Page 1: Introdução a Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados I (AEDS I)

Prof. Olga N. Goussevskaia [email protected]

2

Aula  2:  Lógica  de  Programação  

1.  Lógica  de  Programação  

2.  Instruções  3.  Algoritmo  

4.  Debugging  5.  Teste  6.  Elementos  do  algoritmo  

–  Variáveis  

–  Atribução  –  Operadores  

Obs: Alguns slides por Profa Mirella M. Moro

3

1.  LÓGICA  DE  PROGRAMAÇÃO  

•  Técnica  de  encadear  pensamentos  para  aQngir  determinado  objeQvo  

•  Necessária  para  desenvolver  programas  e  sistemas,  pois  permite  definir  a  seqüência  lógica  para  a  solução  de  um  problema  

•  SEQÜÊNCIA  LÓGICA    –    ?    →  1  →  2  →  3  →    !  –  Estes  pensamentos  podem  ser  descritos  como  uma  seqüência  de  instruções,  que  devem  ser  seguidas  para  se  cumprir  uma  determinada  tarefa  

–  Passos  executados  até  se  aQngir  um  objeQvo  ou  solução  de  um  problema  

4

2.  INSTRUÇÕES  

•  Cada  um  dos  passos,  cada  uma  das  ações  a  tomar  (obedecendo  a  seqüência  lógica)  para  ir  resolvendo  o  problema,  ou  para  ir  executando  a  tarefa  

•  É  a  instrução  que  indica  a  um  computador  uma  operação  elementar  a  executar  –  Ex.:  “somar”,  “subtrair”,  “comparar  se  é  maior”,  etc  

•  Uma  só  instrução  não  resolve  problemas  

•  Executar  um  conjunto  de  instruções  •  Executar  em  uma  seqüência  lógica  

5

Instruções  

•  EXEMPLO:  para  “fazer  omelete”  –  Instruções:  “quebrar  ovos”,  “bater  ovos”,  “pôr  sal”,  “ligar  fogão”,  “pôr  óleo  na  frigideira”,  “pôr  frigideira  no  fogo”,  “fritar  ovos  baQdos”,  etc...  

•  Quanto  às  instruções  isoladas:  –  Só  “quebrar  ovos”,  ou  só  “pôr  óleo  na  frigideira”,  não  é  suficiente  para  cumprir  a  tarefa  “fazer  omelete”  

•  Quanto  à  seqüência  lógica:  –  Se  executarmos  “fritar  ovos  baQdos”  antes  de  “bater  ovos”,  ou  pior,  antes  de  “quebrar  ovos”,  não  iremos  cumprir  a  tarefa  “fazer  omelete”  

6

3.  ALGORITMO  

•  Seqüência  finita  de  passos  que  levam  à  execução  de  uma  tarefa  

•  Claro  e  preciso.  Ex.  “somar  dois  números”:  –  Escrever  primeiro  número  no  retângulo  A  –  Escrever  segundo  número  no  retângulo  B  

–  Somar  o  número  do  retângulo  A  com  o  número  do  retângulo  B  e  escrever  o  resultado  no  retângulo  C  

A B C

+ =

Page 2: Introdução a Algoritmos e Estruturas de Dados

7

Exemplo  de  algoritmo  

 Trocar  o  um  pneu  furado:  uma  roQna  para  realizar  essa  tarefa  

1.  Verifica qual pneu está furado 2.  Posiciona o macaco para levantar o carro 3.  Pega o estepe 4.  Solta os parafusos 5.  Substitui o pneu furado 6.  Recoloca os parafusos 7.  Desce o carro 8.  Guarda o macaco e o pneu furado

8

Programa  

•  Algoritmo  escrito  em  uma  linguagem  de  computador    –  linguagem  de  programação:  C,  Pascal,  COBOL,  Fortran,  Basic,  Java,  entre  outras  

•  Interpretado  e  executado  por  um  computador  •  Interpretação  rigorosa,  exata,  do  computador      

 Escrita  do  algoritmo  na  linguagem  de  prog.  tem  que  seguir  regras  mais  rigorosas  

Programa  

•  Sequência  de  instruções  que  especifica  como  realizar  uma  computação  – Exemplos:  achar  as  raízes  de  um  polinômio,  achar  uma  sequência  de  caracteres  em  um  documento  

•  Conjunto  básico  de  instruções:  •  Entrada  e  saída  (E/S)  de  dados  •  Movimentação  de  dados  (transferência)  •  AritméQca:  adição,  mulQplicação,  etc.  •  Testes:  verificação  de  certas  condições  (comparação)  •  RepeQção  de  ações,  em  geral,  com  algumas  variações  

Debugging  

•  Programação  é  um  processo  complexo  que,  por  ser  feito  por  seres  humanos,  frequentemente  leva  a  erros  (bugs):  – Erros  de  compilação  =  erros  de  sintaxe,  detectados  pelo  compilador.  (essa  frase  contém  erros  de  sintaxe)  

– Erros  em  tempo  de  execução  

– Erros  de  lógica  e  semânQca  •  O  programa  que  você  escreveu  não  é  o  programa  que  você  queria  escrever.  O  computador  não  consegue  detectar  tais  erros.  

Debugging  

•  Uma  das  habilidade  mais  importante  que  você  deverá  adquirir  é  a  depuração  experimental  

•  Debugar  é  parecido  com  o  trabalho  de  um  deteQve  e  envolve:  

•  Análise  de  pistas  e  eventos  •  Infererência  de  causas  que  levam  aos  resultados  do  seu  programa  

•  Trabalho  experimental:  ao  ter  uma  idéia  sobre  o  erro,  modifique  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

Tipos  de  Algoritmos  

•  Pseudocódigo  –  Facilita  descrever  o  algoritmo  antes  de  passá-­‐lo  para  uma  ling.  de  programação  

–  Intermediária:  linguagem  natural  –  linguagem  de  programação  

–  Pseudocódigo  =  “códigofalso”  •  Fluxograma  

–  Forma  universal  de  representação  –  UQliza  figuras  geométricas  para  ilustrar  passos  a  serem  seguidos  para  a  resolução  de  problemas  

Page 3: Introdução a Algoritmos e Estruturas de Dados

13

Pseudocódigo  

•  Descrição  do  algoritmo,  menos  rigorosa  que  na  linguagem  de  programação  (código  fonte)  

•  Fácil  de  entender  e  fácil  de  codificar  depois  •  Independente  da  linguagem  de  programação  •  Simples  e  objeQvo  •  Técnica  

–  Um  verbo  por  frase  –  Não  escrever  “para  informatas”  –  Frases  curtas  e  simples  –  Ser  objeQvo  –  Usar  palavras  sem  duplo  senQdo  

14

Escrevendo  Pseudocódigo  

•  FASES  para  desenvolver  o  algoritmo  –  Determinar  o  problema,  definí-­‐lo  bem  –  Dividir  a  solução  nas  três  fases  

•  Exemplo:  –  Problema:  calcular  a  média  de  quatro  números  –  Dados  de  entrada:  os  números,  N1,  N2,  N3  e  N4  –  Processamento:  somar  os  quatro  números  e  dividir  a  soma  por  4  

–  Dados  de  saída:  a  média  final  

ENTRADA PROCESSAMENTO SAÍDA

N1 + N2 + N3 + N4 4

15

Escrevendo  Pseudocódigos  

•  Algoritmo  –  Receber  o  primeiro  número  

–  Receber  o  segundo  número  –  Receber  o  terceiro  número  

–  Receber  o  quarto  número  –  Somar  todos  os  números  

–  Dividir  a  soma  por  4  –  Mostrar  o  resultado  da  divisão  

N1 + N2 + N3 + N4 4

16

Fluxograma  – Representação  gráfica  padronizada  dos  passos  de  um  algoritmo  

– Principais  símbolos  

Terminal: INÍCIO ou FIM do algoritmo

Processamento (ação, operação)

Entrada de dado manual (“ler”, “receber”)

Exibir (“mostrar”, saída de dado)

Decisão (teste) S

N

Fluxograma  

17

N1 + N2 + N3 + N4 4

INÍCIO

Calcular MEDIA= (N1+N2+N3+N4) / 4

Receber N1

Mostrar MEDIA

Receber N2

Receber N3

Receber N4

FIM 18

4.  TESTE  

•  Todo  algoritmo  deve  ser  testado  –  Usar  dados  e  resultados  previamente  calculados  

–  Seguir  precisamente  as  instruções  do  algoritmo    –  Verificar  se  o  procedimento  está  correto  

•  Exemplo:  Fazer  teste  de  mesa  para  o  algoritmo  da  média  

Page 4: Introdução a Algoritmos e Estruturas de Dados

5.  ELEMENTOS  

•  Variável  •  Atribuição  •  Operadores  

19 20

Variável  

•  Representa  uma  posição  na  memória,  onde  pode  ser  armazenado  um  dado  

•  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>”)  

21

Variável:  exemplo  seqüencial  

“Calcular  a  média  de  quatro  números”  

Pseudocódigo:  – Ler  N1  – Ler  N2  – Ler  N3  – Ler  N4  – MEDIA  =  (N1+N2+N3+N4)  /  4  

– Mostrar  MEDIA  22

Variável:  exemplo  seqüencial  

“Calcular  a  média  de  quatro  números”  – PSEUDOCÓDIGO:  

•  Ler  N1  •  Ler  N2  •  Ler  N3  •  Ler  N4  

•  MEDIA  =  (N1+N2+N3+N4)  /  4  •  Mostrar  MEDIA  

VARIÁVEIS: mais clareza no pseudocódigo

VARIÁVEL

23

Atribuição  

•  Atribui  o  valor  da  direita  à  variável  da  esquerda  •  O  valor  pode  ser  uma  constante,  uma  variável  ou  uma  expressão  

 MEDIA  =  (N1+N2+N3+N4)  /  4    (Lê-­‐se  media  recebe  N1+...)  

–  Neste  caso,  estamos  atribuindo  o  resultado  da  fórmula  à  variável  média,  ou  seja,  a  variável  média  está  recebendo  como  valor  o  resultado  da  fórmula  

•  Outros  Exemplos  –    a  =  3;  –    a  =  x;  

24

Operadores  

•  São  operações  básicas  em  processamento  de  dados  

•  Usados  para  incrementar,  decrementar,  comparar  e  avaliar  dados  

•  Tipos:  –  AritméQcos  (+,  -­‐,  *,  /,  **  ou  ^)  

•  Resultados  numéricos  

–  Relacionais  (>,  <,  >=,  <=,  =,  <>  ou  #)  •  Resultados  lógicos  (V  ou  F)  

–  Lógicos  (e,  ou,  não)  •  Combinam  resultados  lógicos  

Page 5: Introdução a Algoritmos e Estruturas de Dados

25

Operadores  AritméQcos  

Hierarquia das Ops. Aritméticas Parênteses Exponenciação Multiplicação ou Divisão Adição ou Subtração

TOTAL = PREÇO * QUANTIDADE

1 + 7 * 2 ** 2 – 1 = 28

3 * (1- 2) + 4 * 2 = 5

Média = (N1 + N2 + N3 + N4) / 4

26

Operadores  Relacionais  

•  Muito  usados  para  tomar  decisões  nos  algoritmos  

•  Usados  para:  testes,  comparações,  que  resultam  em  valores  lógicos  (verdadeiro  ou  falso)  

Exemplo: Duas variáveis, A = 5 e B = 3

Expressão Resultado A = B Falso A <> B Verdadeiro A > B Verdadeiro A < B Falso A >= B Verdadeiro A <= B falso

27

Exercícios  

•  Tendo  as  variáveis  SALARIO,  IR  e  SALLIQ,  e  considerando  os  valores  abaixo.  Informe  se  as  expressões  são  verdadeiras  ou  falsas  

•  Sabendo  que  A=3,  B=7  e  C=4,  informe  se  as  expressões  abaixo  são  verdadeiras  ou  falsas.  –  (A+C)  >  B    (    )  –  B  >=  (A  +  2)    (    )  –  C  =  (B  –A)    (    )  –  (B  +  A)  <=  C    (    )  –  (C+A)  >  B    (    )  

28

Operadores  Lógicos  •  Combinam  resultados  lógicos  

•  Geram  novos  valores  lógicos  (T  ou  F)  

•  A  “tabela-­‐verdade”  mostra  todos  os  valores  possíveis  de  se  obter  com  oper.  lógicos  

T = Verdad. F = Falso AND = E OR = OU NOT = NÃO

A op B T/F? T AND T T

T AND F F F AND T F

F AND F F T OR T T T OR F T

F OR T T F OR F F

NOT T F NOT F T

29

Operações  Lógicas  

•  Operadores  relacionais  +  operadores  lógicos  =  operações  lógicas  

•  Produzem  resultados  lógicos  (T/F)    

•  Para  A  =  5,  B  =  8  e  C  =  1:  •  (A  =  B)  AND  (B  >  C)  •  (A  <>  B)  OR  (B  <  C)    •  NOT  (A  >  B)  •  (A  <  B)  AND  (B  >  C)  •  (A  >=  B)  OR  (B  =  C)  •  NOT  (A  <=  B)  

•  São  usadas  em  decisões  nos  algoritmos...  30

Operações  Lógicas  

•  Operadores  relacionais  +  operadores  lógicos  =  operações  lógicas  

•  Produzem  resultados  lógicos  (T/F)    

•  Para  A  =  5,  B  =  8  e  C  =  1:  •  (A  =  B)  AND  (B  >  C)  •  (A  <>  B)  OR  (B  <  C)    •  NOT  (A  >  B)  •  (A  <  B)  AND  (B  >  C)  •  (A  >=  B)  OR  (B  =  C)  •  NOT  (A  <=  B)  

•  São  usadas  em  decisões  nos  algoritmos...  

F ( V AND F ) V ( V OR F ) V ( NOT F ) V ( V AND V ) F ( F OR F ) F ( NOT V )

Page 6: Introdução a Algoritmos e Estruturas de Dados

31

Exercícios    

•  Escreva  os  passos  necessários  para  uma  pessoa  efetuar  um  saque  em  um  caixa  eletrônico  

•  Escreva  a  seqüência  de  passos  para  que  uma  pessoa  abra  um  arquivo  armazenado  em  um  pen-­‐drive  uQlizando  o  Word  do  Windows  

32

Exercícios  

•  IdenQfique  os  dados  de  entrada,  processamento  e  saída  no  algoritmo  abaixo  –  Receba  código  da  peça  –  Receba  valor  da  peça  –  Receba  QuanQdade  de  peças  (Qtde)  –  Calcule  o  valor  total  da  peça  (Qtde  *  Valor)  –  Mostre  o  código  da  peça  e  seu  valor  total  

•  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  

33

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