Introduo Programao uma Abordagem Funcional PD I Eng
Introdução à Programação: uma Abordagem Funcional PD I – Eng. Elétrica Prof. ª Claudia Boeres 2008/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.
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) + (mod q 50) (div (mod q 100) 50) 10) + (mod q 10) (div (mod q 100) 50) 10) 5)+ (mod q 5) (div (mod q 100) 50) 10) 5) 1)
Compreensão do problema E com as cédulas 1, 2, 5, 10, 20, 50 e 100? Desenvolvimento: ncedulas 1 q = (div q 100) + (div (mod q 100) 50) + (div (mod q 100) 50) 20) + (mod q 50) (div (mod q 100) 50) 20) 10) + (mod q 50) 20) (div (mod q 100) 50) 20) 10) 5) + (mod q 10) (mod q 5) (div (mod (mod q 100) 50) 20) 10) 5) 2) + (mod (mod q 100) 50) 20) 10) 5) 2) (mod q 5)
Avaliação do processo e seus resultados ncedulas q = n 100 + n 50 + n 10 + n 5 + n 1 where n 100 = div q 100 r 100 = mod q 100 n 50 = div r 100 50 r 50 = mod q 50 n 10 = div r 50 10 r 10 = mod q 10 n 5 = div r 10 5 n 1 = mod r 10 5
Conceitos importantes para programação Abstração: calcular a área de um círculo de raio 3: 3. 1416 * 3 = 28. 2735 area. Circuloraio 3 = 3. 1416 * 3 area. Circuloraio 3 = 28. 2735 pi = 3. 1416
Conceitos importantes para programação Generalização: calcular a área de um círculo de raio 3: pi = 3. 1416 r = 3 area. Circuloraio 3 = pi * r Parametrização: pi = 3. 1416 area. Circulo r = pi * r
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 = 3. 1416 area. Circulo r = pi * r Hugs> area. Circulo 3 28. 2735 Hugs> area. Circulo 4 50. 2656
Conceitos importantes para programação Modularização: “Dividir para conquistar”
Moduralização
Modularização Como seria um script em Haskell para descrever essa área? área amarela + área vermelha + total área azul = área azulclaro + área azulescuro =
Árvore da estrutura modular do problema
Exemplo
- Slides: 13