Codigo em versao quase-final [mas com segmentation fault]