Decomposition of nonlinear chance-constrained programming problems by dynamic programming