Programa funcional. Ainda faltam alguns tratamentos e organizar o
código.