08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notas de aula - Jerônimo C. Pellegrini<br />

acc )))<br />

( make-svg-image<br />

( make-svg-triangle x12 y12 x23 y23 x13 y13<br />

fill fill 0))<br />

( make-sierpinski-aux x1 y1 x12 y12 x13 y13<br />

fill (- n 1) ’())<br />

( make-sierpinski-aux x2 y2 x12 y12 x23 y23<br />

fill (- n 1) ’())<br />

( make-sierpinski-aux x3 y3 x13 y13 x23 y23<br />

fill (- n 1) ’())))<br />

( append ( list ( make-svg-triangle x1 y1 x2 y2 x3 y3<br />

fill-out fill-out 0))<br />

( make-sierpinski-aux x1 y1 x2 y2 x3 y3<br />

fill-in n ’())))))<br />

O procedimento make-sierpinski-aux calcula os pontos médios dos três lados do<br />

triângulo, desenha um triângulo <strong>com</strong> vértices nestes três pontos e em seguida chama a si<br />

mesmo recursivamente para desenhar os outros três triângulos.<br />

A figura no início desta seção foi gerada usando o código a seguir.<br />

( let ((s ( make-sierpinski 0 600 300 0 600 600<br />

" black " " white "<br />

10)))<br />

( images- > xml s " sierpinski . svg "))<br />

O tempo usado por este programa é exponencial (proporcional a 3 n ), assim <strong>com</strong>o o<br />

tamanho do arquivo gerado.<br />

exercícios<br />

Ex. 27 — Faça um programa que leia uma frase (ou texto) e diga a média do tamanho<br />

das palavras do texto.<br />

Versão Preliminar<br />

78<br />

[ 27 de outubro de 2010 at 15:47 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!