ГОСТ Р ИСО 10303-41—2022
единицы измерения соответствуют типу единицы измерения, функция возвращает значение TRUE (ис
тина). В противном случае функция возвращает значение FALSE (ложь).
EXPRESS-спеииФикация:
*)
FUNCTION valid_units (m :measure_with_unit) :BOOLEAN;
IF ’MEASURE_SCHEMA.LENGTH_MEASURE’ IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF ’MEASURE_SCHEMA.MASS_MEASURE’ IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF ’MEASURE_SCHEMA.TIME_MEASURE’ IN TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF ’MEASURE_SCHEMA.ELECTRIC_CURRENT_MEASURE’ IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF ’MEASURE_SCHEMA.THERMODYNAMIC_TEMPERATURE_MEASURE’ IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF ’MEASURE_SCHEMA.CELSIUS_TEMPERATURE_MEASURE’ IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF ’MEASURE_SCHEMA.AMOUNT_OF_SUBSTANCE_MEASURE’ IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF ’MEASURE_SCHEMA.LUMINOUS_INTENSITY_MEASURE’ IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN
181