A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Professores Claudia Boeres e Estefhan Dazzi Wandekoken 2010/1.

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Professores Claudia Boeres e Estefhan Dazzi Wandekoken 2010/1."— Transcrição da apresentação:

1 Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Professores Claudia Boeres e Estefhan Dazzi Wandekoken 2010/1

2 O teste de programas y1 y2 B 1 5 3 E x1 x2 F A D C O ponto P(x,y) pertence a qual região?

3 Passos importantes: Escolher as instâncias apropriadas; determinar, sem o uso do programa, qual o valor que deveria resultar quando o programa for alimentado com essas instâncias; submeter cada instância ao programa e anotar o resultado produzido por ele; comparar cada valor esperado com o valor produzido e descrever qual o tipo de ocorrência.

4 Quais instâncias escolher? 1 4 1 5 P1 P2 F A D C E B

5 Quais valores devemos escolher? xy resultado esperado resultado obtido diagnóstico Pontos representantes de classes de equivalência

6 Qual é o próximo passo? Depois de escolhidas as instâncias, fazer o teste com as mesmas no computador Verificar se todos os valores coincidiram Senão, fazer a depuração no programa

7 Depuração. Depurar um programa é um processo que consiste em buscar uma explicação para os motivos da falha e posteriormente corrigí-la.

8 Processo de teste

9 Atenção Mas lembre-se, isto ainda não garante que seu programa esteja 100% correto! Quando não identificamos erro, apenas podemos concluir que para as instâncias que usamos o nosso programa apresenta os resultados esperados.

10 Exemplo y1 y2 B 1 5 3 E x1 x2 F A D C O ponto P(x,y) pertence a qual região?

11 Solução qualRegiao x y x1 y1 x2 y2 = if pertenceLosango x y a1 b1 a2 b2 then 'E' else if pertenceRetangulo x y x1 y1 x2 y2 then if x < xc then if y > yc then 'B' else 'C' else if y > yc then 'A' else 'D' else 'F' where a1 = x1 b1 = (y1 + y2)/2 a2 = (x1 + x2)/2 b2 = y2 xc = a2 yc = b1

12 Continuação do script pert x a b = a =a && x <= b pertenceRetangulo x y a b c d = pert x a c && pert y b d pertenceLosango x y a b c d = acimaReta x y a b e f && acimaReta x y e f g h && abaixoReta x y a b c d && abaixoReta x y c d g h where e = c f = 2*b-d g = 2*c-a h = b

13 Final do script acimaReta x y a b c d = y >= m * (x-a) + b where m = (d-b)/(c-a) abaixoReta x y a b c d = y <= m * (x-a) + b where m = (d-b)/(c-a)

14 Quais instâncias escolher? 1 4 1 5 P1 P2 F A D C E B

15 Quais valores devemos escolher? xy resultado esperado resultado obtido diagnóstico 33EE ok 12.5BB ok 24BBOk 15FF ok Pontos representantes de classes de equivalência

16 Exercício: faça um script para determinar se um ponto pertence à área cinza. Faça um plano de teste. r r r r C

17 O ponto P (x, y) pertence a qual das áreas 1, 2, 3 e 4? Faça o plano de teste P (x, y) ? a a/2 C (x1, y1) 1 3 2 4


Carregar ppt "Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Professores Claudia Boeres e Estefhan Dazzi Wandekoken 2010/1."

Apresentações semelhantes


Anúncios Google