Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIsabel Caram Alterado mais de 10 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.