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 Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro."— Transcrição da apresentação:

1 Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Co-Autoria: Clebson Oliveira

2 2 Teste e Depuração de Programas

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

4 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.

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

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

7 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

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

9 Processo de teste

10 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.

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

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

13 Funções auxiliares 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

14 Funções auxiliares 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)

15 Outra 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

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

17 Quais valores devemos escolher? xy resultado esperado resultado obtido diagnóstico 33'E' ok 12.5'B' ok 24'B' ok 15'F' ok Pontos representantes de classes de equivalência

18 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

19 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)


Carregar ppt "Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro."

Apresentações semelhantes


Anúncios Google