*&---------------------------------------------------------------------* *& Report ZPCALC *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zpcalc. * Parameters PARAMETERS: p_val1 TYPE i, p_val2 TYPE i, p_op TYPE c. * Define local variables. DATA: vl_result TYPE p DECIMALS 2. * Check if user choose a valid operation. IF NOT ( p_op = '+' OR p_op = '-' OR p_op = '/' OR p_op = '*' ). WRITE: 'No valid operation'(iop). * Check division by zero. ELSEIF p_op = '/' AND p_val2 = 0. WRITE: 'Error division by zero'(zer). ELSE. * Choose correct operation based on operation choosen by user. CASE p_op. WHEN '+'. vl_result = p_val1 + p_val2. WHEN '-'. vl_result = p_val1 - p_val2. WHEN '/'. vl_result = p_val1 / p_val2. WHEN '*'. vl_result = p_val1 * p_val2. ENDCASE. * Print the result at the output. WRITE: 'Result'(res), vl_result. ENDIF.