Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos Indentação e Teste de Mesa Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e de Tecnologias Curso de Bacharelado em Sistemas de Informação Profª Claudia Tinós Peviani Profª Janne Oeiras Lachi 1 Plano de aula Entender a indentação de algoritmos Entender e aplicar o teste de mesa a seus algoritmos em geral 2 Indentação Consiste na inserção de espaços, parágrafos etc. em um código de linguagem de programação (Dicionário Aulete) programa PESO_GRAMAS var P, PG: real início escreva “Informe o peso em quilos:” leia P PG P * 1000 escreva “O peso em gramas e:” escreva PG fim Indentação aqui é o recuo em relação ao corpo mínimo do algoritmo e em relação a seção de variáveis. Indentação Objetivos: Dar legibilidade ao algoritmo; Facilitar a compreensão do algoritmo por outras pessoas; Algoritmo sem indentação programa CALC_APROVACAO var RESULTADO: caractere NI, N2, N3, N4: real SOMA, MEDIA: real início leia NI, N2, N3, N4 SOMA NI + N2 + N3 + N4 MEDIA SOMA/4 se (MEDIA >= 7) então RESULTADO “aprovado” senão RESULTADO “reprovado” fim_se escreva “Média ”, MEDIA escreva “Resultado: ”, RESULTADO fim programa CALC_APROVACAO var RESULTADO: caractere NI, N2, N3, N4: real SOMA, MEDIA: real início leia NI, N2, N3, N4 SOMA NI + N2 + N3 + N4 MEDIA SOMA/4 se (MEDIA >= 7) então RESULTADO “aprovado” senão RESULTADO “reprovado” fim_se escreva “Média ”, MEDIA escreva “Resultado: ”, RESULTADO fim Teste de mesa Para testar se as funcionalidades implementadas em um algoritmo estão corretas é necessário testar o algoritmo. É necessário verificar o conteúdo das variáveis passo a passo. Para efetuar esta tarefa, costuma-se utilizar o chamado TESTE DE MESA ou TESTE EXAUSTIVO. 5 Teste de Mesa É um procedimento bastante utilizado por programadores como forma de auxílio à detecção de falhas em algoritmos, melhorando a confiabilidade desses. O teste de mesa pode ser aplicado a qualquer algoritmo. Para isso apenas simulamos possíveis valores para as variáveis e vamos seguindo as instruções até completarmos o algoritmo. 6 Como se faz o teste de mesa? Vamos seguir alguns passos: 1. Leia o algoritmo que foi escrito; 2. Crie uma coluna para cada uma das variáveis declaradas no algoritmo e uma coluna para a saída de dados (o que vai ser impresso na tela); 3. Em seguida, acompanhe linha a linha a execução do algoritmo, anotando nas colunas apropriadas cada mudança de valor das variáveis ou do que foi escrito na tela; 4. Preste atenção nas estruturas condicionais (porque pode haver instruções que não serão executadas) e nas estruturas de repetição (porque pode haver trechos de instruções que devem ser executados mais de uma vez); 5. Siga a execução até chegar ao final do algoritmo. 7 Exemplo de teste de mesa 8 1. programa CALC_CUSTO 2. var 3. qtd_caderno, qtd_caneta, qtd_borracha: inteiro 4. custo: real 5. início 6. escreva “Qtde de caderno:” 7. leia qtd_caderno 8. escreva “Qtde de caneta:” 9. leia qtd_caneta 10. escreva “Qtde de borracha:” 11. leia qtd_borracha 12. custo qtd_caderno * 10.0 + qtd_caneta * 0.80 + qtd_borracha * 0.50 13. escreva “Custo total eh:”, custo 14. fim 1. Leia o algoritmo que foi escrito Exemplo de teste de mesa 9 2. Crie uma coluna para cada uma das variáveis declaradas no algoritmo e uma coluna para a saída de dados (o que vai ser impresso na tela); Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 7 8 9 10 11 12 13 Exemplo de teste de mesa 10 3. Em seguida, acompanhe linha a linha a execução do algoritmo, anotando nas colunas apropriadas cada mudança de valor das variáveis ou do que foi escrito na tela; Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 7 8 9 10 11 12 13 Exemplo de teste de mesa 11 Executando linha nº 6 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 8 9 10 11 12 13 Exemplo de teste de mesa 12 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 9 10 11 12 13 Executando linha nº 7 Exemplo de teste de mesa 13 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 Qtde de caneta: 9 10 11 12 13 Executando linha nº 8 Exemplo de teste de mesa 14 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 15 Qtde de caneta: 9 15 30 10 11 12 13 Executando linha nº 9 Exemplo de teste de mesa 15 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 15 Qtde de caneta: 9 15 30 10 15 30 Qtde de borracha: 11 12 13 Executando linha nº 10 Exemplo de teste de mesa 16 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 15 Qtde de caneta: 9 15 30 10 15 30 Qtde de borracha 11 15 30 10 12 13 Executando linha nº 11 Exemplo de teste de mesa 17 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 15 Qtde de caneta: 9 15 30 10 15 30 Qtde de borracha 11 15 30 10 12 15 30 10 179.0 13 Executando linha nº 12 Exemplo de teste de mesa 18 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 15 Qtde de caneta: 9 15 30 10 15 30 Qtde de borracha 11 15 30 10 12 15 30 10 179.0 13 15 30 10 179.0 Custo total eh: 179.0 Executando linha nº 13 Exemplo de teste de mesa 19 Executando Variáveis Nº da linha qtd_caderno qdt_caneta qtd_borracha custo Tela 6 Qtde de caderno: 7 15 8 15 Qtde de caneta: 9 15 30 10 15 30 Qtde de borracha 11 15 30 10 12 15 30 10 179.0 13 15 30 10 179.0 Custo total eh: 179.0 5. Final do algoritmo Outro exemplo de teste de mesa – estrutura condicional 20 1. programa CALC_APROVACAO 2. var 3. RESULTADO: caractere 4. NI, N2, N3, N4: real 5. SOMA, MEDIA: real 6. início 7. leia NI, N2, N3, N4 8. SOMA NI + N2 + N3 + N4 9. MEDIA SOMA/4 10. se (MEDIA >= 7) então 11. RESULTADO “aprovado” 12. senão 13. RESULTADO “reprovado” 14. fim_se 15. escreva “Nota 1: ”, N1 16. escreva “Nota 2: ”, N2 17. escreva “Nota 3: ”, N3 18. escreva “Nota 4: ”, N4 19. escreva “Média: ”, MEDIA 20. escreva “Resultado: ”, RESULTADO 21. fim Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 21 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8 9 11 15 16 17 18 19 20 Outro exemplo de teste demesa – estrutura condicional – média >= 7.0 22 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 9 11 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 23 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0.0 9 11 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 24 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 25 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 8.5 7.5 6.5 7.5 30.0 7.5 aprovado 15 16 17 18 19 20 4. Preste atenção nas estruturas condicionais (porque pode haver instruções que não serão executadas) e nas estruturas de repetição (porque pode haver trechos de instruções que devem ser executados mais de uma vez); Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 26 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 8.5 7.5 6.5 7.5 30.0 7.5 Aprovado 15 8.5 7.5 6.5 7.5 30.0 7.5 Aprovado Nota 1: 8.5 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 27 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 8.5 7.5 6.5 7.5 30.0 7.5 aprovado 15 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 1: 8.5 16 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 2: 7.5 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 28 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 8.5 7.5 6.5 7.5 30.0 7.5 aprovado 15 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 1: 8.5 16 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 2: 7.5 17 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 3: 6.5 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 29 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 8.5 7.5 6.5 7.5 30.0 7.5 aprovado 15 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 1: 8.5 16 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 2: 7.5 17 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 3: 6.5 18 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 4: 7.5 19 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 30 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 8.5 7.5 6.5 7.5 30.0 7.5 aprovado 15 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 1: 8.5 16 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 2: 7.5 17 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 3: 6.5 18 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 4: 7.5 19 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Média: 7.5 20 Outro exemplo de teste de mesa – estrutura condicional – média >= 7.0 31 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8.5 7.5 6.5 7.5 8 8.5 7.5 6.5 7.5 30.0 9 8.5 7.5 6.5 7.5 30.0 7.5 11 8.5 7.5 6.5 7.5 30.0 7.5 aprovado 15 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 1: 8.5 16 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 2: 7.5 17 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 3: 6.5 18 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Nota 4: 7.5 19 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Média: 7.5 20 8.5 7.5 6.5 7.5 30.0 7.5 aprovado Resultado: aprovado Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 32 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 8 9 13 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 33 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 9 13 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 34 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 13 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 35 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 36 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 6.0 7.0 6.0 7.0 26.0 6.5 reprovado 15 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 37 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 6.0 7.0 6.0 7.0 26.0 6.5 reprovado 15 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 1: 6.0 16 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 38 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 6.0 7.0 6.0 7.0 26.0 6.5 reprovado 15 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 1: 6.0 16 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 2: 7.0 17 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 39 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 6.0 7.0 6.0 7.0 26.0 6.5 reprovado 15 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 1: 6.0 16 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 2: 7.0 17 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 3: 6.0 18 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 40 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 6.0 7.0 6.0 7.0 26.0 6.5 reprovado 15 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 1: 6.0 16 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 2: 7.0 17 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 3: 6.0 18 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 4: 7.0 19 20 Outro exemplo de teste de mesa – estrutura condicional – média < 7.0 41 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 6.0 7.0 6.0 7.0 26.0 6.5 reprovado 15 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 1: 6.0 16 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 2: 7.0 17 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 3: 6.0 18 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 4: 7.0 19 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Média: 6.5 20 Outro exemplo deteste de mesa – estrutura condicional – média < 7.0 42 Executando Variáveis Nº da linha NI N2 N3 N4 SOMA MEDIA RESULTADO Tela 7 6.0 7.0 6.0 7.0 8 6.0 7.0 6.0 7.0 26.0 9 6.0 7.0 6.0 7.0 26.0 6.5 13 6.0 7.0 6.0 7.0 26.0 6.5 reprovado 15 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 1: 6.0 16 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 2: 7.0 17 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 3: 6.0 18 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Nota 4: 7.0 19 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Média: 6.5 20 6.0 7.0 6.0 7.0 26.0 6.5 reprovado Resultado: reprovado Vamos exercitar o conteúdo visto Em todos esses exercícios é para desenvolver o algoritmo e fazer o teste de mesa para verificar se está correto: 1. Faça um algoritmo para “Calcular o estoque médio de uma peça”, sendo que ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2 2. Faça um algoritmo que leia a cotação do dólar e um valor em dólares. Calcule a conversão desse valor para real (R$). Mostre o valor em dólar e o valor em real. 3. Faça um algoritmo que leia 4 (quatro) números inteiros. Calcule o quadrado para cada um, somem todos e mostre o quadrado de cada número e a soma dos quadrados. 43 Referências ALGORITMOS. MANZANO – Lógica para desenvolvimento de programação de computadores. José Augusto N. G. Manzano, Jayr Figueiredo de Oliveira. São Paulo: Érica, 2006. Acesso em 22 de agosto de 2011 ftp://ftp.unicamp.br/pub/apoio/treinamentos/logica/logica.pdf Acesso em 22 de agosto de 2011 http://pt.scribd.com/doc/50982484/Introducao-a-Programacao- Fasciculo-III 44
Compartilhar