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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Ex. 30 — Usando o gerador de XML que construímos neste Capítulo, implemente o<br />

procedimento xml->string, que recebe nossa representação de XML <strong>com</strong>o S-expressões e<br />

devolve uma string. Não duplique código: faça pequenas alterações nos procedimentos<br />

que já existem.<br />

Ex. 31 — Crie um formato, usando S-expressões, para armazenar dados de uma planilha<br />

de cálculo. Inicialmente, pense em armazenar em cada célula somente números ou texto.<br />

Escreva um programa <strong>Scheme</strong> que exponha uma API que permita construir a planilha,<br />

alterá-la e gravar no formato CSV.<br />

Ex. 32 — Modifique o formato de planilha de cálculo do Exercício 31 para que seja<br />

possível armazenar também em cada célula S-expressões que fazem referência a outras<br />

céululas e onde seja possível usar procedimentos matemáticos de <strong>Scheme</strong>.<br />

Ex. 33 — Use a API construída nos exercícios 31 e 32 para fazer uma planilha de cálculo<br />

em modo texto (a cada modificação do usuário, a planilha é mostrada novamente).<br />

Ex. 34 — Mude o gerador de XML para que ele escreva tags vazias no formato abreviado.<br />

Por exemplo, ao invés de ele deve escrever .<br />

Ex. 35 — Se você conhece gramáticas livres de contexto, construa um parser para XML,<br />

<strong>com</strong>patível <strong>com</strong> o gerador que criamos.<br />

Ex. 36 — Faça um programa que leia um arquivo <strong>com</strong> texto e conte a frequência das<br />

palavras. Depois, o programa deve gerar um arquivo SVG <strong>com</strong> cada palavra do texto<br />

(sem repetição), onde o tamanho da fonte é proporcional à frequência da palavra. Depois<br />

tente implementar as seguintes modificações:<br />

•Use cores aleatóreas;<br />

•Use cores em um gradiente, sendo que a cor de cada palavra depende também da<br />

sua frequência;<br />

•Faça as palavras serem dispostas em posições aleatóreas na imagem;<br />

•Faça as palavras serem dispostas em posições aleatóreas, mas sem que uma fique<br />

sobre a outra.<br />

Versão Preliminar<br />

Ex. 37 — Torne o gerador de triângulos de Sierpinski mais flexível: ele deve gerar triângulos<br />

não equiláteros (pense em que argumentos você deve passar ao procedimento).<br />

80<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!