Estrutura geral do algoritmo