Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Documentos relacionados
Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Departamento de Engenharia Rural Centro de Ciências Agrárias. Lógica e Técnica de Programação

Conceitos Básicos. Fundamentos de Programação de Computadores

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Fundamentos de Programação 1

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

Programação Aplicada à Engenharia

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

Introdução à Computação (IC) Algoritmos: Estrutura condicional

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Capítulo 2 Introdução à Programação Estrutura de Controle

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO. Sistema de Planos de Ensino da PUC Goiás

Programação Estruturada Aula VisualG

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO DEPARTAMENTO DE COMPUTAÇÃO PLANO DE ENSINO

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

Programação Aplicada à Engenharia

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

Eng. Alimentos PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO CÓDIGO DISCIPLINA PRÉ-REQUISITOS

CURSO DE INFORMÁTICA. Algoritmos. Parte 5. Ricardo José Cabeça de Souza

Algoritmo e Programação Matemática

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

Método para Construção de Algoritmos

PLANO DE CURSO. 3. OBJETIVO GERAL DA DISCIPLINA: Desenvolver no aluno uma metodologia de análise de problemas e formulação de algoritmos.

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

Introdução a Programação

Capítulo 2 Introdução à Programação

Algoritmos e Programação

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Introdução à Computação (IC) Algoritmos: Comandos de entrada e saída

Apresentação da Disciplina

DISCIPLINA: Computação e Algoritmo I. PROFESSOR: Léo M. Lopes da Silva Garcia FORMAÇÃO:

Algoritmos e Programação

Programação de Computadores

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

ET51D - INFORMÁTICA. Algoritmos - Introdução. Prof: Glauber G. O. Brante e Mariana Furucho.

Objetivo: Desenvolver algoritmos a partir de problemas

Processamento de Dados aplicado à Geociências. AULA 4:Comando de Entrada Comando de Saída Comando de Atribuição

Programação de Computadores

Pseudocódigo e Visualg

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CEFET-MG UNIDADE DE ENSINO

Estruturas de Controle de Fluxo

Apresentação da Disciplina

Fundamentos de Programação 1

Programação Aplicada à. Engenharia de Alimentos

Fluxograma. Símbolo Nome Descrição

CURSO DE INFORMÁTICA. Algoritmos. Parte 2. Ricardo José Cabeça de Souza

Fundamentos de Algoritmos (5175/31)

Programação de Computadores

AMBIENTE DIDÁTICO GRÁFICO PARA A COMPREENSÃO DE LÓGICA DE PROGRAMAÇÃO. Rodrigo Ferreira da Silva

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

Exercícios de Fixação Conteúdo das aulas 03 a 06

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian

ALGORITMOS AULA 1. Profª Amanda Gondim

Introdução à Lógica de Programação

Introdução aos algoritmos computacionais

Linguagem Computacional

Introdução à Algoritmos. Professora: Fabíola Gonçalves.

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

Ricardo José Cabeça de Souza.

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Londrina PLANO DE ENSINO

Capítulo 1 Conceitos Básicos

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE PELOTAS PRÓ-REITORIA DE GRADUAÇÃO PLANO DE ENSINO

CONCEITOS DE ALGORITMOS

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Capítulo 7 Matriz. Roteiro

CP Introdução à Informática Prof. Msc. Carlos de Salles

Algoritmos e Programação

FACCAT Sistemas de Informação. Estruturas de Dados

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

Portugol. Tiago Alves de Oliveira

Fábio Rodrigues / Israel Lucania

BCC 701 Programação de Computadores I

Introdução à Computação (IC) Algoritmos: Expressões lógicas

Algoritmos e Programação

Lógica de Programação. Tecnologia em Redes de Computadores IFSULDEMINAS Campus Inconfidentes Prof. Kleber Rezende

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

Introdução a Lógica de Programação

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO

Introdução a programação Visão geral

O que é Sintaxe e Semântica? Sintaxe e Semântica. O que é Sintaxe e Semântica? Sintaxe e Semântica. Instruções Primitivas

INF 1005 Programação I

Algoritmos. Laura Goulart. 11 de Dezembro de 2018 UESB. Laura Goulart (UESB) Algoritmos 11 de Dezembro de / 12

Introdução a Algoritmos Aula 1

Introdução a Programação

Programação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.

Transcrição:

Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I

Técnicas de verificação de algoritmos Um tipo de teste de algoritmo, denominado Teste de Mesa (ou Teste Exaustivo) pode ser feito através de uma simulação da execução do mesmo. São dados valores para os dados de entrada e vaise preenchendo uma tabela na qual são colocadas todas as variáveis e constantes do algoritmo.

Teste de mesa Segue-se o fluxo de execução como se estivesse executando o algoritmo em um computador imaginário.

Teste de mesa A cada comando de atribuição ou cálculo de expressão o valor das variáveis deve ser atualizado. Ao final do teste pode-se ter as seguintes situações: o resultado esperado foi alcançado; ou foram detectados erros nos comandos; ou foram detectados erros no fluxo de execução - erro nas estruturas de controle.

Teste de mesa Procure fazer testes relevantes como, por exemplo, aqueles que verificam casos extremos e casos de exceções. Com o teste é possível identificar em que ponto o algoritmo está falhando e fazer a correção. Algoritmos errados podem gerar resultados errados ao serem executados por um computador ou mesmo não gerar nada se o computador detectar erros graves na sequência de operações.

algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 } MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média } fim.

O teste de mesa desse algoritmo é dado da seguinte maneira considerando que serão fornecidos como entrada os valores 9.6, 5.7, 6.8 e 8.9 para as variáveis P1, P2, P3 e P4 respectivamente : Passo NUM_NOT MEDIA P1 P2 P3 P4 0 4 - - - - -

Passo 1: algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 } MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média } fim. Passo NUM_NOT MEDIA P1 P2 P3 P4 0 4 - - - - - 1-9.6 - - -

Passo 2: algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 } MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média } fim. Passo NUM_NOT MEDIA P1 P2 P3 P4 0 4 - - - - - 1-9.6 - - - 2-5.7 - -

Passo 3: algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 } MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média } fim. Passo NUM_NOT MEDIA P1 P2 P3 P4 0 4 - - - - - 1-9.6 - - - 2-5.7 - - 3-6.8 -

Passo 4: algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 } MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média } fim. Passo NUM_NOT MEDIA P1 P2 P3 P4 0 4 - - - - - 1-9.6 - - - 2-5.7 - - 3-6.8-4 - 8.9

Passo 5: algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 } MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média } fim. Passo NUM_NOT MEDIA P1 P2 P3 P4 0 4 - - - - - 1-9.6 - - - 2-5.7 - - 3-6.8-4 - 8.9 5 7.75

Inicialmente, os valores das variáveis são indefinidos, ou seja, não podemos afirmar quais os valores armazenados nestas variáveis. Por convenção, diz-se que os valores dessas variáveis são lixos. No passo 0 o valor da constante já é definido, porém os valores das variáveis são lixos. No passo 1 do algoritmo, a variável P1 é lida e as demais continuam com lixo.

No fim da execução do algoritmo podemos ver claramente os valores armazenados em cada variável. O valor da constante, devido a sua definição, não é alterado em momento algum. Passo NUM_NOT MEDIA P1 P2 P3 P4 0 4 - - - - - 1-9.6 - - - 2-5.7 - - 3-6.8-4 - 5 4 7.75 9.6 5.7 6.8 8.9

Referências BORLAND. Turbo Pascal, versão 7.0. [S.L.] : Borland International, Inc.,1992. DEITEL, P. J.; DEITEL, H.M.; Java: How to program, 9th ed, Ed. Prentice-Hall, 2011. ISBN: 978-0-13-257566-9. FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Algoritmos estruturados. 3ed, Ed. LTC, 1999. ISBN: 9788521611806. FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Pascal estruturado. 3ed, Ed. LTC, 1999. ISBN: 9788521611745. GUIMARÃES, A. M.; LAGES, N. A. C.; Algoritmos e estruturas de dados. 1ed, Ed. LTC, 1994. ISBN: 9788521603788. GRIFFITHS,D., BARRY,P., Head First Programming A learner's guide to programming using the Python language, O Reilly, 2009, 406p. http://wwwusers.rdc.puc-rio.br/rmano/processo.html Velloso, F. C.; Informática: Conceitos Básicos. 7ed, Ed. Campus, 2004. ISBN: 9788535215366.