[next] [previous] [contents]

  DECLARE REAL FUNCTION mdlo (REAL, INTEGER)
  DEF mdlo( REAL argument, INTEGER modulus )
      !Check for argument equal to zero
      EXIT DEF IF argument = 0
      !Check for modulus equal to zero, modulus equal to absolute
      !value of argument, and modulus greater than absolute
      !value of argument.
      SELECT modulus
      CASE = 0%
            EXIT DEF
      CASE > ABS( argument )
            EXIT DEF
      CASE = ABS( argument )
            mdlo = argument
            EXIT DEF
      END SELECT
      !If argument is negative, set flag negative% and set argument
      !to its absolute value.
      IF argument < 0
          THEN argument = ABS( argument )
              negative% = -1%
      END IF
      UNTIL argument < modulus
              argument = argument - modulus
              !If this calculation ever results in zero, mdlo returns zero
              IF argument = modulus
                  THEN mdlo = 0
                  EXIT DEF
              END IF
      NEXT
      !Argument now contains the right number, but the sign may be wrong.
      !If the negative argument flag was set, make the result negative.
      IF negative%
          THEN mdlo = - argument
          ELSE mdlo = argument
      END IF
  END DEF
  INPUT "PLEASE INPUT THE VALUE AND THE MODULUS"; X,Y
  PRINT mdlo(X,Y)
  END