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 32 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 32 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 32 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Co-Autoria: Veruska Zamborlini e Clebson Oliveira

2 A arte de resolver problemas Só se aprende a resolver problemas através da experiência; A ajuda do professor não deve vir através da apresentação pura e simples de uma solução; É muito importante não se conformar com uma única solução;

3 A arte de resolver problemas Na busca pela solução de um problema, nossa ferramenta principal é o questionamento; Aprenda desde cedo a buscar um aprimoramento da sua técnica para resolver problemas; Crie uma sistematização.

4 A arte de resolver problemas Polya: processo dividido em quatro etapas; Por onde começar cada etapa? O que posso fazer com os elementos que disponho? Qual a vantagem de proceder da forma escolhida?

5 A arte de resolver problemas Compreensão do problema Planejamento Desenvolvimento: construção da solução; planejamento do teste; execução do teste; codificação da solução; teste com o uso do computador. Avaliação do processo e seus resultados

6 A arte de resolver problemas Deseja-se escrever um programa que permita determinar a menor quantidade de cédulas necessárias para pagar uma dada quantia em Reais.

7 A arte de resolver problemas Compreensão do problema: Cédulas de 1, 5, 10, 50 e 100 Planejamento Desenvolvimento: ncedulas q = (div q 100) + (div (mod q 100) 50) + (div (mod (mod q 100) 50) 10) + (div (mod (mod (mod q 100) 50) 10) 5)+ (div (mod (mod (mod (mod q 100) 50) 10) 5) 1)

8 A arte de resolver problemas Avaliação do processo e seus resultados: Há uma outra forma de resolver o problema? Pode-se deixar a solução mais clara? Melhore seu código Crie uma base de testes Outra versão: nMinCedulas2 q = n100 + n50 + n10 + n5 + n1 where n100 = div q 100 r100 = mod q 100 n50 = div r r50 = mod r n10 = div r50 10 r10 = mod r50 10 n5 = div r10 5 r5 = mod r10 5 n1 = div r5 1

9 Princípios para resolução de problemas Abstração Generalização Instanciação Modularização

10 Abstração Escreva a expressão que determina a hipotenusa de um triângulo de lados 4 e 10. Hugs> sqrt((10 * 10) + (4 * 4)) Hugs> E se quisermos chamar várias vezes essa mesma expressão? hipotenusa = sqrt((10 * 10) + (4 * 4))

11 Generalização Porque escrever uma definição de hipotenusa que retorna sempre o mesmo valor, ao invés de generalizá-la? hipotenusa x y = sqrt((x * x) + (y * y))

12 Instanciação Uma vez definida a função genérica para cálculo da hipotenusa, podemos instanciá-la para diferente valores de catetos: Hugs> hipotenusa Hugs> hipotenusa Hugs> hipotenusa

13 Modularização

14 a b c d e

15

16 a b c d e areaTotal a b c d e =areaRetangulo a b + areaRetangulo (hipotenusa a d) e + areaAzul a c d where areaAzul a c d = areaRetangulo c d + areaTrianguloRetangulo d a areaTrianguloRetangulo x y = (x * y)/2 areaRetangulo x y = x * y areaAzul a c d = d*c + areaTrianguloRetangulo d a areaTrianguloRetangulo x y = (x * y)/2

17 Exercício Descreva o algoritmo para calcular o volume das peças a seguir; Implemente esse algoritmo em Haskell; Crie uma bateria de testes e teste seu programa.


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

Apresentações semelhantes


Anúncios Google