definicoes e algoritmo