inicio de implementacao da funcao gera