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

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

Introdução à Programação: uma Abordagem Funcional

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação: uma Abordagem Funcional"— Transcrição da apresentação:

1 Introdução à Programação: uma Abordagem Funcional
PD I – Eng. Elétrica Prof.ª Claudia Boeres 2008/2 Theme created by Sakari Koivunen and Henrik Omma Released under the LGPL license. 1

2 Exemplo: Deseja-se escrever um programa que permita determinar a menor quantidade de cédulas necessárias para pagar uma dada quantia em Reais. 2

3 Etapas 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) (mod q 50) (mod q 10) (mod q 5) 3

4 Compreensão do problema
E com as cédulas 1, 2, 5, 10, 20, 50 e 100? Desenvolvimento: ncedulas1 q = (div q 100) + (div (mod q 100) 50) + (div (mod (mod q 100) 50) 20) + (div (mod (mod (mod q 100) 50) 20) 10) + (div (mod (mod (mod (mod q 100) 50) 20) 10) 5) + (div (mod (mod (mod (mod (mod q 100) 50) 20) 10) 5) 2) + (mod (mod (mod (mod (mod (mod q 100) 50) 20) 10) 5) 2) (mod q 50) (mod (mod q 50) 20) (mod q 10) (mod q 5) (mod q 5) 4

5 Avaliação do processo e seus resultados
ncedulas q = n100 + n50 + n10 + n5 + n1   where n100 = div q r100 = mod q n50 = div r r50 = mod q n10 = div r r10 = mod q n5 = div r n1 = mod r10 5 5

6 Conceitos importantes para programação
Abstração: calcular a área de um círculo de raio 3: * 3 * 3 = areaCirculoraio3 = * 3 * 3 areaCirculoraio3 = pi =

7 Conceitos importantes para programação
Generalização: calcular a área de um círculo de raio 3: pi = r = 3 areaCirculoraio3 = pi * r * r Parametrização: areaCirculo r = pi * r * r

8 Conceitos importantes para programação
Instanciação: a mesma definição pode ser usada para vários exemplos do mesmo problema calcular a área de um círculo de raio 3: pi = areaCirculo r = pi * r * r Hugs> areaCirculo 3 Hugs> areaCirculo 4

9 Conceitos importantes para programação
Modularização: “Dividir para conquistar”

10 Moduralização

11 Modularização Como seria um script em Haskell para descrever
essa área? área total          = área amarela + área vermelha + área azul área azul           =  área azulclaro  + área azulescuro

12 Árvore da estrutura modular do problema

13 Exemplo


Carregar ppt "Introdução à Programação: uma Abordagem Funcional"

Apresentações semelhantes


Anúncios Google