Все госты и снипы онлайн

Более 10000 документов в открытом доступе, абсолютно бесплатно

ГОСТ 32144-2013 - Электрическая энергия. Совместимость технических средств электромагнитная. Нормы качества электрической энергии в системах электроснабжения общего назначения

Этот документ был распознан автоматически. В блоке справа Вы можете найти скан-копию. Мы работаем над ручным распознаванием документов, однако это титанический труд и на него уходит очень много времени. Если Вы хотите помочь нам и ускорить обработку документов, Вы всегда можете сделать это, пожертвовав нам небольшую сумму денег.

Файлы для печати:

МЕЖГОСУДАРСТВЕННЫЙ СОВЕТ ПО СТАНДАРТИЗАЦИИ, МЕТРОЛОГИИ И СЕРТИФИКАЦИИ

(MFC) INTERSTATE COUNCIL FOR STANDARDIZATION, METROLOGY AND CERTIFICATION (ISC)

ГОСТ МЕЖГОСУДАРСТВЕННЫЙ 32144— СТАНДАРТ 2013

Электрическая энергия

Совместимость технических средств электромагнитная

НОРМЫ КАЧЕСТВА ЭЛЕКТРИЧЕСКОЙ ЭНЕРГИИ В СИСТЕМАХ ЭЛЕКТРОСНАБЖЕНИЯ ОБЩЕГО НАЗНАЧЕНИЯ

(EN 50160:2010, NEQ)

Издание официальное

Москва Стандартинформ 2014


МЕЖГОСУДАРСТВЕННЫЙ СОВЕТ ПО СТАНДАРТИЗАЦИИ, МЕТРОЛОГИИ И СЕРТИФИКАЦИИ

(MFC) INTERSTATE COUNCIL FOR STANDARDIZATION, METROLOGY AND CERTIFICATION (ISC)

ГОСТ МЕЖГОСУДАРСТВЕННЫЙ 32144— СТАНДАРТ 2013

Электрическая энергия

Совместимость технических средств электромагнитная

НОРМЫ КАЧЕСТВА ЭЛЕКТРИЧЕСКОЙ ЭНЕРГИИ В СИСТЕМАХ ЭЛЕКТРОСНАБЖЕНИЯ ОБЩЕГО НАЗНАЧЕНИЯ

(EN 50160:2010, NEQ)

Издание официальное

Москва Стандартинформ 2014


ГОСТ 32144—2013 Предисловие

Цели, основные принципы и основной порядок проведения работ по межгосударственной стандар- тизации установлены ГОСТ 1.0—92 «Межгосударственная система стандартизации. Основные положения» и ГОСТ 1.2-—2009 «Межгосударственная система стандартизации. Стандарты межгосударственные, правила и рекомендации по межгосударственной стандартизации. Правила разработки, принятия, применения, обновления и отмены»

Сведения о стандарте

1 РАЗРАБОТАН Обществом с ограниченной ответственностью «ЛИНВИТ» и Техническим комитетом по стандартизации ТК 30 «Электромагнитная совместимость технических средств»

2 ВНЕСЕН Федеральным агентством по техническому регулированию и метрологии (Росстандарт)

3 ПРИНЯТ Межгосударственным советом по стандартизации, метрологии и сертификации (протокол №55-П от 25 марта 2013 г.).

За принятие проголосовали:

Краткое наименование страны Код страны по МК (ИСО Сокращенное наименование национального органа по МК (ИСО 31686) 004.97 3166) 004.97 по стандартизации

Армения Министерство экономики Республики Армения

Беларусь

Кыргызстан

Российская Федерация

Таджикистан

Узбекистан Агентство «Узстандарт»

4 Приказом Федерального агентства по техническому регулированию и метрологии от 22 июля 2013 г. №400-ст межгосударственный стандарт ГОСТ 32144—2013 введен в действие в качестве национального стандарта Российской Федерации с 1 июля 2014 г.

5 Настоящий стандарт соответствует европейскому региональному стандарту ЕМ 50160:2010 Voltage characteristics of electricity supplied by public distribution пеймогк5 (Характеристики напряжения электричества, поставляемого общественными распределительными сетями).

Степень соответствия — неэквивалентная (МЕО).

Стандарт разработан на основе применения ГОСТ Р 54149—2010

5 ВВЕДЕН ВПЕРВЫЕ

Информация об изменениях к настоящему стандарту публикуется в ежегодном информационном указателе «Национальные стандарты», а текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или от- мены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячном информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте национального органа Российской Федерации по стандартизации в сети Интернет

© Стандартинформ. 2014

В Российской Федерации настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии.


ГОСТ 32144—2013 Предисловие

Цели, основные принципы и основной порядок проведения работ по межгосударственной стандар- тизации установлены ГОСТ 1.0—92 «Межгосударственная система стандартизации. Основные положения» и ГОСТ 1.2-—2009 «Межгосударственная система стандартизации. Стандарты межгосударственные, правила и рекомендации по межгосударственной стандартизации. Правила разработки, принятия, применения, обновления и отмены»



Сведения о стандарте

1 РАЗРАБОТАН Обществом с ограниченной ответственностью «ЛИНВИТ» и Техническим комитетом по стандартизации ТК 30 «Электромагнитная совместимость технических средств»

2 ВНЕСЕН Федеральным агентством по техническому регулированию и метрологии (Росстандарт)

3 ПРИНЯТ Межгосударственным советом по стандартизации, метрологии и сертификации (протокол №55-П от 25 марта 2013 г.).

За принятие проголосовали:

Краткое наименование страны Код страны по МК (ИСО Сокращенное наименование национального органа по МК (ИСО 31686) 004.97 3166) 004.97 по стандартизации

Армения Министерство экономики Республики Армения

Беларусь

Кыргызстан

Российская Федерация

Таджикистан

Узбекистан Агентство «Узстандарт»

4 Приказом Федерального агентства по техническому регулированию и метрологии от 22 июля 2013 г. №400-ст межгосударственный стандарт ГОСТ 32144—2013 введен в действие в качестве национального стандарта Российской Федерации с 1 июля 2014 г.

5 Настоящий стандарт соответствует европейскому региональному стандарту ЕМ 50160:2010 Voltage characteristics of electricity supplied by public distribution пеймогк5 (Характеристики напряжения электричества, поставляемого общественными распределительными сетями).

Степень соответствия — неэквивалентная (МЕО).

Стандарт разработан на основе применения ГОСТ Р 54149—2010

5 ВВЕДЕН ВПЕРВЫЕ

Информация об изменениях к настоящему стандарту публикуется в ежегодном информационном указателе «Национальные стандарты», а текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или от- мены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячном информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте национального органа Российской Федерации по стандартизации в сети Интернет

© Стандартинформ. 2014

В Российской Федерации настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии.


ГОСТ 32144—2013

Содержание

1 Область применения. ен нение а 1 2 Нормативные ссылки. ......... еее ее 2 3 Термины. определения и обозначения ................... eee eee ee 2 3.1 Термины и определения eee eee tee 2 3.2 Обозначения... ен нина я 5 4 Показатели и нормы качества электрической энергии. ee 5 4.1 Общие попожения .............. eee ee tees 5 4.2 Продолжитепьные изменения характеристик нь... 5 4.2.1 Отклонение частоты... eee eee eee eee 5 4.2.2 Медленные изменения напряжения еее нана 6 4.2.3 Колебания напряжения и фликер иена + 6 4.2.4 Несинусоидальность te eee 7 4.2.5 Несимметрия напряжений в трехфазных системах............... eee 9 4.2.6 Напряжения сигналов. передаваемых по элоктрическим сетям. eee 9 4.3 Случайные события... не ние не я 9 4.3.1 Прерывания напряжения ............... еее неее нана 9 4.3.2 Провалы напряжения и перенапряжения.............. 10 4.3.3 Импульсные напряжения елена 10

Приложение А (справочное) Характеристики провалов, прерываний напряжения и перенапряжений в электрических eee eee eee 11

Приложение Б (справочное) Значения импульсных напряжений. вызываемых молниевыми разрядами

и процессами коммутации ............... еее нение 13 Библиография ........... неее ее нение нь 16


ГОСТ 32144—2013

МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ

Электрическая энергия Совместимость технических средств электромагнитная

НОРМЫ КАЧЕСТВА ЭЛЕКТРИЧЕСКОЙ ЭНЕРГИИ В СИСТЕМАХ ЭЛЕКТРОСНАБЖЕНИЯ ОБЩЕГО НАЗНАЧЕНИЯ

Electric energy. Etactromagnetic compatibilily of technical equipment. Power quality limits in the public: power supply systems

Дата введения — 2014—07—01

1 Область применения

Настоящий стандарт устанавливает показатели и нормы качества электрической энергии (КЗ) в точках передачи электрической энергии пользователям электрических сетей низкого. среднего и вы- сокого напряжения систем электроснабжения общего назначения переменного тока частотой 50 Гц.

Примечание — Определения низкого. среднего и высокого напряжений приведены в 3.1.11—3.1.13.

Требования настоящего стандарта применяют при установлении норм КЭ в электрических сетях:

- систем электроснабжения общего назначения, присовдиненных к Единой энергетической системе,

. изолированных систем электроснабжения общего назначения.

Требования настоящего стандарта применяют во всех режимах работы систем электроснабжения общего назначения, кроме режимов, обусловленных:



. обстоятельствами непреодолимой силы: землетрясениями, наводнениями, ураганами. пожарами, гражданскими беспорядками, военными действиями:

. опубликованием нормативно-правовых актов органов власти. устанавливающих правила временного энергоснабжения.

. введением временного электроснабжения пользователей электрических сетей в целях устранения неисправностей или выполнения работ по минимизации зоны и длительности отсутствия электроснабжения.

Настоящий стандарт предназначен для применения при установлении и нормировании показателей КЭ. связанных с характеристиками напряжения электропитания. относящимися к частоте. значениям и форме напряжения. а также к симметрии напряжений в трехфазных системах электроснабжения. Данные характеристики напряжения подвержены изменениям из-за изменений нагрузки. влияния кондуктивных электромагнитных помех. создаваемых отдельными видами оборудования. и возникновения неисправностей. вызываемых. главным образом. внешними событиями. В результате возникают слу- чайные изменения характеристик напряжения во времени в любой отдельной точке передачи электрической энергии пользователю электрической сети. а также случайные отклонения характеристик напряжения в разпичных точках передачи электрической энергии в конкретный момент времени.

Учитывая непредсказуемость ряда явлений, влияющих на напряжение. не представляется возможным установить определенные допустимые границы значений для соответствующих характеристик напряжения. Поэтому изменения характеристик напряжения. связанные с такими явлениями, как например. провапы и прерывания напряжения, перенапряжения и импульсные напряжения в настоящем стандарте не нормируются. При заключении договоров на поставку или передачу электрической энер- гии спедует учитывать статистические данные. относящиеся к таким характеристикам.

Нормы КЭ., установленные в настоящем стандарте. не рассматривают в качестве уровней электромагнитной совместимости для кондуктивных электромагнитных помех и предельных значений кон-

Издание официальное


ГОСТ 32144—2013

дуктивных электромагнитных помех. создаваемых оборудованием электроустановок потребителей эпектрической энергии в системах электроснабжения общего назначения.

Нормы КЭ в электрических сетях. находящихся в собственности потребителей электрической энергии. должны соответствовать нормам КЭ. установленным настоящим стандартом.

Методы измерения показателей КЭ, применяемые в соответствии с настоящим стандартом. установлены в ГОСТ 30804.4.30 и ГОСТ 30804.4.7.

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на [1] ''и следующие стандарты:

ГОСТ 29322—92 Стандартные напряжения

ГОСТ 30804.4.30—2013 (IEC 61000-4-30:2008) Электрическая энергия. Совместимость технических средств эпектромагнитная. Методы измерений показателей качества электрической энергии

ГОСТ 30804.4.7—2013 (ЕС 61000-4-7:2009} Совместимость технических средств электромагнит- ная. Общее руководство по средствам измерений и измерениям гармоник и интергармоник для систем электроснабжения и подключаемых к ним технических средств

ГОСТ 30804.3.3—2013 (МЭК 61000-3-3:2008} Совместимость технических средств электромагнит- ная. Ограничение изменений напряжения. колебаний напряжения и фликера в низковольтных системах электроснабжения общего назначения. Технические средства с номинальным током не более 16 А (в одной фазе). подключаемые к электрической сети при несоблюдении определенных условий подключения. Нормы и методы испытаний

Примечание — При пользовании настоящим стандартом целесообразно проверить действив сосыпоч- ных стандартов в информационной системе общего пользования — на официальном сайте Федерального агент- ства по техническому регулированию и метрологии в сети Интернет ипи по ежегодному информационному указатепю „Национальные стандарты». который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если ссылочный стандарт заменен {изменен), то при пользовании настоящим стандартом следует руководствоваться заменяющим (измененным] стандартом. Если ссылочный стандарт отменен без замены. то положенив. в котором дана ссылка на него. применяется в части. не затрагивающей эту ссылку.

3 Термины, определения и обозначения

3.1 Термины и определения

В настоящем стандарте применены следующие термины с соответствующими определениями:

3.1.1 система электроснабжения общего назначения: Совокупность электроустановок и электрических устройств, предназначенных для обеспечения электрической энергией различных потребителей электрических сетей.

3.1.2. пользователь электрической сети: Сторона. получающая электрическую энергию от электрической сети, либо передающая электрическую энергию в электрическую сеть. К пользователям электрических сетей относят сетевые организации и иных владельцев электрических сетей, потребителей эпектрической энергии. а также генерирующие организации.

3.1.3 распределительная электрическая сеть: Совокупность электроустановок для передачи и распределения электрической энергии между пользователями электрической сети, состоящая из подстанции. распределительных устройств. токопроводов, воздушных и кабельных линий эпектропередачи. работающих на определенной территории.

3.1.4 сетевая организация: Организация. владеющая на праве собственности или на ином установленном законами основании объектами электросетевого хозяйства. с использованием которых оказывающая услуги по передаче электрической энергии и осуществляющая в установленном порядке технологическое присоединение энергопринимающих устройств (энергетических установок) юридических и физических лиц к электрическим сетям. а также осуществляющая право заключения договоров об оказании успуг по передаче электрической энергии с использованием объектов электросетевого хозяйства. принадлежащих другим собственникам и иным законным владельцам и не входящих в единую национальную электрическую сеть.



1' На территории Российской Федерации действует ГОСТ Р 51317.4.15—2012 (МЭК 61000-4-15:2010)


ГОСТ 32144—2013

3.1.5 потребитель электрической энергии: Юридическое или физическое лицо. осуществляю- щее пользование электрической энергией (мощностью) на основании заключенного договора.

3.1.6 точка передачи электрической энергии: Точка злектрической сети. находящаяся на линии раздела объектов электроэнергетики между впадельцами по признаку собственности или владения на ином предусмотренном законами основании. определенная в процессе технологического присоединения.

3.1.7 точка общего присоединения: электрически ближайшая к конкретной нагрузке пользователя сети точка. к которой присоединены нагрузки других пользователей сети.

3.1.8 номинальное напряжение: Напряжение. для которого предназначена или идентифицирована электрическая сеть. и применительно к которому устанавливают ов рабочие характеристики.

3.1.9 напряжение электропитания: Среднеквадратическое значение напряжения в определенный момент времени в точке передачи электрической энергии пользователю электрической сети. измеряемое в течение установленного интервала времени.

3.1.10 согласованное напряжение электропитания U..: Напряженив. отличающееся от стандартного номинального напряжения электрической сети по ГОСТ 29322. согласованное для конкрет- ного пользователя электрической сети при технологическом присоединении в качестве напряжения электропитания.

3.1.11 низкое напряжение: Напряжение. номинальное среднеквадратическое значение которого не превышает 1 кВ.

3.1.12 среднее напряжение: Напряжение, номинальное среднеквадратическое значение которого превышает 1 кВ. но не превышает 35 кВ.

3.1.13 высокое напряжение: Напряжение. номинальное среднеквадратическов значение которого превышает 35 кВ. но не превышавт 220 кВ.

3.1.14 частота напряжения электропитания: Частота повторения колебаний основной гармоники напряжения электропитания, измеряемая в течение установленного инторвала времени.

3.1.15 номинальная частота: Номинальное значение частоты напряжения электропитания.

3.1.16 кондуктивная электромагнитная помеха: Электромагнитная помеха. распространяющаяся по проводникам электрической сети. В некоторых случаях электромагнитная помеха распространятся через обмотки трансформаторов и может действовать в электрических сетях с разными значениями напряжения. Кондуктивные электромагнитные помехи могут ухудшить качество функционирования устройств. электроустановок или систем. или вызвать их повреждение.

3.1.17 уровень электромагнитной совместимости в системе электроснабжения: Регламентированный уровень кондуктивной электромагнитной помехы, используемый в качестве опорного дпя координации между допустимым уровнем помех. вносимым техническими средствами пользователей электрических сетей. и уровнем помех, воспринимавмым техническими средствами, подключенными к электрической сети. без нарушения их нормального функционирования.

3.1.18 напряжение гармонической составляющей: Сроднеквадратическое значение синусоидального напряжения. частота которого является кратной основной частоте напряжения эпектропитания.

3.1.19 напряжение интергармонической составляющей: Среднеквадратическое значение синусоидального напряжения, частота которого не является кратной основной частоте напряжения электропитания

п римечание — Одновременно возникающие интергармонические составпяющие на сближенных частотах могут образовать напряжение с широкополосным спектром

3.1.20 напряжение сигналов в электрической сети: Напряжение сигналов, добавляемое к напряжению электропитания при передаче информации в распределительных электрических сетях и электроустановках потребителей эпектрической энергии.

3.1.21 быстрое изменение напряжения: Быстрое изменение среднеквадратического значения напряжения между двумя последовательными уровнями установившегося напряжения.

Примечание — См. гакже ГОСТ 30804.3.3.

3.1.22 опорное напряжение (при оценке провалов. прерываний напряжения и перенапряжений): Значение напряжения, применяемое в качестве основы при установлении остаточного напряжения. пороговых значений напряжения и других характеристик провалов. прерываний напряжения и перенапряжений. выраженное в вольтах или в процентах номинального напряжения.


ГОСТ 32144—2013

п римечание — В соответствии с требованиями настоящего стандарга спорное напряжение (при осценке провапов, прерываний напряжения и перенапряжений] считают равным номинальному или согласованному напряжению электропитания

3.1.23 прерывание напряжения: Ситуация. при которой напряжение в точке передачи электрической энергии меньше 5 % опорного напряжения.

3.1.24 импульсное напряжение: Перенапряжение, представляющее собой одиночный импульс или колебательный процесс (обычно сильно демпфированный). длительностью до несколь- ких миллисекунд.

3.1.25 провал напряжения: Временное уменьшение напряжения в конкретной точке электрической системы ниже установленного порогового значения.

3.1.26 длительность провала напряжения: Интервал времени между моментом. когда напряжение в конкретной точке системы электроснабжения падает ниже порогового значения начала провала напряжения. и моментом. когда напряжение возрастает выше порогового значения окончания провала напряжения.

3.1.27 пороговое значение окончания провала напряжения: Среднеквадратическое значение напряжения в системе эпектроснабжения, установленное для определения окончания провала напряжения.

3.1.28 остаточное напряжение провала напряжения: Минимальное среднеквадратическое значение напряжения, отмеченное в течение провала напряжения



п римечание — В соответствии с требованиями настоящего стандарта остаточное напряжение провала напряжения выражают в процентах опорного напряжения.

3.1.29 пороговое значение начала провала напряжения: Среднеквадратическое значение напряжения в системе электроснабжения, установленное для определения начала провала напряжения.

3.1.30 перенапряжение: Временное возрастание напряжения в конкретной точке электрической системы выше установленного порогового значения.

3.1.31 длительность перенапряжения. Интервал времени между моментом. когда напряжение в конкретной точке системы эпоктроснабжения возрастает выше порогового значения начала перенапряжения, и моментом. когда напряжение падает ниже порогового значения окончания перенапряжения.

3.1.32 пороговое значение окончания перенапряжения: Среднеквадратическое значение напряжения в системе электроснабжения, установленное для определения окончания перенапряжения.

3.1.33 пороговое значение начала перенапряжения: Среднеквадратическов значение напряжения в системе электроснабжения, установленное для определения начала перенапряжения.

3.1.34 фликер. Ощущение неустойчивости зрительного восприятия. вызванное световым источ- ником, яркость или спектральный состав которого изменяются во времени.

3.1.35 среднеквадратическое значение: Корень квадратный из среднеарифметического значения квадратов мгновенных значений величины, измеренных в течение установленного интервала времени и в установленной полосе частот.

3.1.36 усреднение по времени: Усреднение нескольких последовательных значений конкретного показателя КЭ. измеренных на одинаковых интервалах времени. для получения значения показателя при большем интервале времени.

Примечание — В ГОСТ 30804.4_30 применен термин «объединение по времени».

3.1.37 маркированные данные: Термин. применяемый для обозначения результатов измерений показателей КЭ и результатов их усреднения на временных интервалах, в пределах которых имели место прерывания, провалы напряжения или перенапряжения.

Примечания

1 При оценке соответствия электрической энергии нормам КЭ. установленным в настоящем стандарте. мар- кированные данные не учитывают.

2 В ряде спучаев сведения о маркировании результатов измерений показателей КЭ могут учитываться при анализе качества электрической энерпли {см. ГОСТ 30804.4.30).

3.1.38 качество электрической энергии (КЭ): Степень соответствия характеристик электрической энергии в данной точке электрической систвмы совокупности нормированных показателей КЭ.

3.1.39 несимметрия напряжений: Состояние трехфазной системы энергоснабжения переменного тока, в которой среднеквадратические значения основных составляющих междуфазных напряжений или углы сдвига фаз между основными составляющими междуфазных напряжений не равны между собой.

4


ГОСТ 32144—2013

3.2 Обозначения

В настоящем стандарте приняты следующие обозначения:

Г. — номинальное значенив частоты электропитания. Гц;

\Г — отклонение частоты, Гц;

и... — номинальное напряжение электропитания. В, кВ.

и. — согласованное напряжение электропитания. В. кВ:

и

SU, — отрицательное отклонение напряжения электропитания, % (..

OU, ,— положительное отклонение напряжения электропитания. % Ш:

— значение основной гармонической составляющей напряжения. В, кВ: К, „, — коэффициент 0-ой гармонической составляющей напряжения, % Ш;

К, — суммарный коэффициент гармонических составляющих напряжения. %.

К», — коэффициент несимметрии напряжений по обратнои последовательности, %;

Kou — коэффициент несимметрии напряжений по нулевой поспедовательности, %; — длительность провала напряжения, с.

м длительность прерывания напряжения, с;

п — номер гармонической составляющей напряжения.

4 Показатели и нормы качества электрической энергии

4.1 Общие положения

Изменения характеристик напряжения электропитания в точке передачи эпектрической энергии пользователю электрической сети. относящихся к частоте, значениям, форме напряжения и симметрии напряжений в трехфазных системах электроснабжения. подразделяют на две категории — продолжительные изменения характеристик напряжения и спучайные события.

Продопжительные изменения характеристик напряжения электропитания представляют собой длительные отклонения характеристик напряжения от номинальных значений и обусловлены, в основном. изменениями нагрузки или влиянием нелинейных нагрузок.

Случайные события представляют собой внезапные и значительные изменения формы напряжения, приводящие к откпонению его параметров от номинальных. Данные изменения напряжения. как правило. вызываются непредсказуемыми событиями (например. повреждениями оборудования пользователя электрической сети) или внешними воздействиями (например. погодными условиями или действиями стороны. не являющейся пользователем электрической сети}.

Применительно к продолжительным изменениям характеристик напряжения электропитания. от- носящихся к частоте. значениям, форме напряжения и симметрии напряжений в трехфазных системах. в настоящем стандарте установлены показатели и нормы КЗ.

Для случайных событий в настоящем стандарте приведены справочные данные (см. приложения А, Б).



4.2 Продолжительные изменения характеристик напряжения

4.2.1 Отклонение частоты Показателем КЭ, относящимся к частоте. является отклонение значения основной частоты напряжения электропитания от номинального значения. Гц

Af fn fase , (1) где /, — значение основной частоты напряжения электропитания, Гц, измереннов в интервале времени 10 с в соответствии с требованиями ГОСТ 30804.4.30. подраздел 5.1: — номинальное значение частоты напряжения электропитания, Гц. "Номинальное значение частоты напряжения электропитания в электрической сети равно 50 Гц. Для указанного показателя КЭ установлены спедующие нормы: - отклонение частоты в синхронизированных системах эпектроснабжения не должно превышать + 0.2 Гц в течение 95 % времени интервала в одну неделю и + 0.4 Гц в течение 100 % времени интер- вапа в одну неделю:


ГОСТ 32144—2013

- отклонение частоты в изопированных системах эпектроснабжения с автономными генераторны- ми установками. не подключенных к синхронизированным системам передачи электрической энергии, не должно превышать + 1 Гц в течение 95 % времени интервала в одну неделю и + 5 Гц в течение 100 % времени интервала в одну неделю.

При оценке соответствия электрической энергии нормам КЭ. относящимся к частоте. установленным в настоящем стандарте. должны быть проведены измерения по ГОСТ 30804.4.30, класс А, при этом маркированные данные не учитывают.

4.2.2 Медленные изменения напряжения

Медленные изменения напряжения электропитания (как правило. продолжительностью более 1 мин) обусловлены обычно изменениями нагрузки эпектрической сети.

Показателями КЭ, относящимися к медленным изменениям напряжения электропитания, являют- ся отрицательное ^И ‚и положительное зи ‚, ОТклонения напряжения эпектропитания в точке передачи электрической энергии от номинального/согласованного значения, %:

и, 49. НД 100: (2) BU) (Up. Ug |fus | 100, (3) foe U,,, Uy... — SHANEHKA HANPAKEHHA MeHbUIKE (Ц; и большие Ц. соответственно.

усредненные в интервале времени 10 мин в соответствии с требованиями ГОСТ 30804.4.30, подраздел 5.12:

И; — напряжение. равное стандартному номинальному напряжению Упот или согласованному напряжению \..

В электрических сетях низкого напряжения стандартное номинальное напряжение электропитания (,.... равно 220 В (между фазным и нейтральным проводниками для однофазных и четырехпроводных трехфазных систем} и 380 В (между фазными проводниками для трех- и четырехпроводных трех- фазных систем).

В электрических сетях среднего и высокого напряжений вместо значения номинального напряжения электропитания принимают согласованное напряжение электропитания Ц...

Для указанных выше показателей КЭ установлены следующие нормы. положительные и отрицатель- ные отклонения напряжения в точке передачи эпектрической энергии не должны превышать 10 % номинального или согласованного значения напряжения в течение 100 % времени интервала в одну неделю.

Примечание — Установленные нормы медленных изменений напряжения электропитания относятся к 1008 интервапам времени измерений по 10 минут каждый.

Допустимые значения положительного и отрицательного отклонений напряжения в точках общего присоединения должны быть установлены сетевой организацией с учетом необходимости выполнения норм настоящего стандарта в точках передачи электрической энергии.

В электрической сети потребителя должны быть обеспечены условия, при которых отклонения напряжения питания на зажимах электроприемников не превышают установленных для них допустимых значений при выполнении требований настоящего стандарта к КЭ в точке передачи электрической энергии.

При оценке соответствия электрической энергии нормам КЭ. относящимся к медпенным изменениям напряжения. установленным в настоящем стандарте, должны быть проведены измерения по ГОСТ 30804.4.30, подраздел 5.12. класс А, при этом маркированные данные не учитываются.

4.2.3 Колебания напряжения и фликер

Колебания напряжения электропитания (как правило. продолжительностью менее 1 мин). в том числе одиночные быстрые изменания напряжения. обусловливают возникновение фликера.

Показателями КЭ, относящимися к колебаниям напряжения. являются кратковременная доза фликера Р.,, измеренная в интервапе времени 10 мин. и длительная доза фликера Р,. измеренная в интервале времени 2 ч. в точке передачи электрической энергии.

Для указанных показателей КЭ установлены следующие нормы:

кратковременная доза фликера Р., не должна превышать значения 1.38,

длительная доза фликера Р, не должна превышать значения 1,0

в течение 100 % времени интервала в одну неделю.


ГОСТ 32144—2013

При оценке соответствия электрической энергии нормам КЭ. относящимся к колебаниям напряжения, установленным в настоящем стандарте. должны быть проведены измерения по [1]. при этом маркированные данные не учитывают.

4.2.3.1 Одиночные быстрые изменения напряжения

Одиночные быстрые изменения напряжения вызываются. в основном. резкими изменениями нагрузки в эпектроустановках потребителей, переключениями в системе либо неисправностями и характеризуются быстрым переходом среднеквадратического значения напряжения от одного установившегося значения к другому.

Обычно одиночные быстрые изменения напряжения не превышают 5 % в электрических сетях низкого напряжения и 4 % — в электрических сатях среднего напряжения. но иногда изменения напряжения с малой продолжительностью до 10 % Ц, и до 6 % Ц. соответственно могут происходить несколько раз в день.

Если напряжение во время изменения пересекает пороговое значение начала провала напряжения или перенапряжения. одиночное быстрое изменение напряжения классифицируют как провал напряжения или перенапряжение.



4.2.4 Несинусоидальность напряжения 4.2.4.1 Гармонические составляющие напряжения

Гармонические составляющие напряжения обусловлены. как правило, нелинейными нагрузками пользователей электрических сетей, подключаемыми к электрическим сетям различного напряжения. Гармонические токи. протекающие в электрических сетях, создают падения напряжений на полных с0- противлениях эпектрических сетей. Гармонические токи. полные сопротивления электрических сетей и. спедовательно. напряжения гармонических составляющих в точках передачи электрической энергии изменяются во времени.

Показателями КЭ. относящимися к гармоническим составляющим напряжения являются.

- значения коэффициентов гармонических составляющих напряжения до 40-го порядка К, „,„, в процентах напряжения основной гармонической составляющей (/, в точке передачи электрической энергии:

- значение суммарного коэффициента гармонических составляющих напряжения (отношения среднеквадратического значения суммы всех гармонических составляющих до 40-го порядка к среднеквадратическому значению основной составляющей) К. % в точке передачи электрической энергии.

Для указанных показателей КЭ установлены следующие нормы.

а) значения коэффициентов гармонических составляющих напряжения К, „„,. усредненные в интервале времени 10 мин. не должны превышать значений. установленных в таблицах 1—3. в течение 95 % времени интервала в одну неделю:

6) значения коэффициентов гармонических составляющих напряжения К, „,. усредненные в интервале времени 10 мин. не должны превышать значений. установленных в таблицах 1—3. увеличенных в 1.5 раза, в течение 100 % времени каждого периода в одну неделю.

в) значения суммарных коэффициентов гармонических составляющих напряжения К, .. усредненные в интервале времени 10 мин. не должны превышать значений. установленных в таблице 4, в течение 95 % времени интервала в одну неделю.

Г) значения суммарных коэффициентов гармонических составпяющих напряжения К... усредненные в интервале времени 10 мин. не должны превышать значений. установленных в таблице 5, в течение 100 % времени интервала в одну неделю.

Измерения напряжения гармонических составляющих Ц, должны быть проведены в соответ- ствии с требованиями ГОСТ 30804.4.7. класс |, в интервалах времени 10 периодов без промежутков между интервалами с последующим усреднением в интервале времени 10 мин. В качестве результатов измерений в интервалах времени 10 периодов должны быть применены гармонические подгруппы по ГОСТ 30804.4.7, подраздел 3.2.

В качестве суммарных коэффициентов гармонических составляющих напряжения К,, должны быть применены суммарные коэффициенты гармонических подгрупп по ГОСТ 30804.47. подраздел 3.3.


ГОСТ 32144—2013

Таблица 1 — Значения коэффициентов нечетных гармонических составляющих напряжения не кратных трем Кит) [ем. 4.2.4.1. перечисления а), 6)]

Значения коэффициентов гармонических составляющих напряжения % Uy

Напряжение электрической сети, кВ

Порядок гармонической составляющей п

Таблица 2 — Значения коэффициентов нечетных гармонических составляющих напряжения, кратных трем [см. 4.2.4.1. перечисления а), 6)]

Значения козффициентов напряжения гарманических составляющих % Ч, Порядок гармонической составляющей A Напряжение электрической сети, кВ

Кии)

Таблица 3 — Значения козффициентов напряжения четных гармонических составляющих К перечисления а), б)]

ил) [ем. 4.2.4.1,

n Знамения коэффициентов гармонических составляющих напряжения Kin ny орядок

гармонической Напряжение электрической сети, кВ


ГОСТ 32144—2013

Таблица 1 — Значения коэффициентов нечетных гармонических составляющих напряжения не кратных трем Кит) [ем. 4.2.4.1. перечисления а), 6)]

Значения коэффициентов гармонических составляющих напряжения % Uy

Напряжение электрической сети, кВ

Порядок гармонической составляющей п

Таблица 2 — Значения коэффициентов нечетных гармонических составляющих напряжения, кратных трем [см. 4.2.4.1. перечисления а), 6)]

Значения козффициентов напряжения гарманических составляющих % Ч, Порядок гармонической составляющей A Напряжение электрической сети, кВ

Кии)

Таблица 3 — Значения козффициентов напряжения четных гармонических составляющих К перечисления а), б)]

ил) [ем. 4.2.4.1,

n Знамения коэффициентов гармонических составляющих напряжения Kin ny орядок

гармонической Напряжение электрической сети, кВ




ГОСТ 32144—2013

Таблица 4 — Значения суммарных коэффициентов гармонических составляющих напряжения К, [см. 4.2.4.1, перечисление в)]

Значения суммарных коэффициентов гармонических составляющих напряжения К), % Напряжение эпектрической сети, «В

[= [65 [хе

Таблица 5 — Значения суммарных коэффициентов гармонических составляющих напряжения К, [ем. 4.2.4.1, перечисление г)]

ow Tes Tw Tea

При оценке соответствия электрической энергии нормам КЭ, относящимся к гармоническим составляющим напряжения, установленным в настоящем стандарте, маркированные данные не учитывают.

4.2.4.2 Интергармонические составляющие напряжения

Уровень интергармонических составляющих напряжения электропитания увеличивается в связи с применением в электроустановках частотных преобразователей и другого управляющего оборудования.

Допустимые уровни интергармонических составляющих напряжения электропитания находятся на рассмотрении.

4.2.5 Несимметрия напряжений в трехфазных системах

Несимметрия трехфазной системы напряжений обусловлена несимметричными нагрузками потребителей электрической энергии или несимметрией элементов электрической сети.

Показателями КЭ, относящимися к несимметрии напряжений в трехфазных системах, являются коэффициент несимметрии напряжений по обратной последовательности К, и коэффициент несимметрии напряжений ло нулевой последовательности К.

Для указанных показателей КЭ установлены следующие нормы:

- значения коэффициентов несимметрии напряжений по обратной последовательности К, и несимметрии напряжений по нулевой последовательности К, в точке передачи электрической энергии, усредненные в интервале времени 10 мин, не должны превышать 2 % в течение 95 % времени интер- вала в одну неделю;

- значения коэффициентов несимметрии напряжений по обратной последовательности Ку И несимметрии напряжений по нулевой последовательности К, в точке передачи электрической энергии, усредненные в интервале времени 10 мин, не должны превышать 4 % в течение 100 % времени интер- вала в одну неделю.

При оценке соответствия электрической энергии нормам КЭ. относящимся к несимметрии напряжений, установленным в настоящем стандарте, должны быть проведены измерения по ГОСТ 30804.4.30, подраздел 5.7, класс А, при этом маркированные данные не учитывают.

4.2.6 Напряжения сигналов, передаваемых по электрическим сетям

Допустимые уровни напряжения сигналов, передаваемых по электрическим сетям, и методы оценки соответствия требованиям находятся на рассмотрении.

4.3 Случайные события

4.3.1 Прерывания напряжения

Прерывания напряжения относят к создаваемым преднамеренно, если пользователь электрической сети информирован о предстоящем прерывании напряжения, и к случайным, вызываемым длительными или кратковременными неисправностями, обусловленными, в основном, внешними воздействиями, отказами оборудования или влиянием электромагнитных помех.


ГОСТ 32144—2013

Таблица 4 — Значения суммарных коэффициентов гармонических составляющих напряжения К, [см. 4.2.4.1, перечисление в)]

Значения суммарных коэффициентов гармонических составляющих напряжения К), % Напряжение эпектрической сети, «В

[= [65 [хе

Таблица 5 — Значения суммарных коэффициентов гармонических составляющих напряжения К, [ем. 4.2.4.1, перечисление г)]

ow Tes Tw Tea

При оценке соответствия электрической энергии нормам КЭ, относящимся к гармоническим составляющим напряжения, установленным в настоящем стандарте, маркированные данные не учитывают.

4.2.4.2 Интергармонические составляющие напряжения

Уровень интергармонических составляющих напряжения электропитания увеличивается в связи с применением в электроустановках частотных преобразователей и другого управляющего оборудования.

Допустимые уровни интергармонических составляющих напряжения электропитания находятся на рассмотрении.

4.2.5 Несимметрия напряжений в трехфазных системах

Несимметрия трехфазной системы напряжений обусловлена несимметричными нагрузками потребителей электрической энергии или несимметрией элементов электрической сети.

Показателями КЭ, относящимися к несимметрии напряжений в трехфазных системах, являются коэффициент несимметрии напряжений по обратной последовательности К, и коэффициент несимметрии напряжений ло нулевой последовательности К.

Для указанных показателей КЭ установлены следующие нормы:

- значения коэффициентов несимметрии напряжений по обратной последовательности К, и несимметрии напряжений по нулевой последовательности К, в точке передачи электрической энергии, усредненные в интервале времени 10 мин, не должны превышать 2 % в течение 95 % времени интер- вала в одну неделю;

- значения коэффициентов несимметрии напряжений по обратной последовательности Ку И несимметрии напряжений по нулевой последовательности К, в точке передачи электрической энергии, усредненные в интервале времени 10 мин, не должны превышать 4 % в течение 100 % времени интер- вала в одну неделю.



При оценке соответствия электрической энергии нормам КЭ. относящимся к несимметрии напряжений, установленным в настоящем стандарте, должны быть проведены измерения по ГОСТ 30804.4.30, подраздел 5.7, класс А, при этом маркированные данные не учитывают.

4.2.6 Напряжения сигналов, передаваемых по электрическим сетям

Допустимые уровни напряжения сигналов, передаваемых по электрическим сетям, и методы оценки соответствия требованиям находятся на рассмотрении.

4.3 Случайные события

4.3.1 Прерывания напряжения

Прерывания напряжения относят к создаваемым преднамеренно, если пользователь электрической сети информирован о предстоящем прерывании напряжения, и к случайным, вызываемым длительными или кратковременными неисправностями, обусловленными, в основном, внешними воздействиями, отказами оборудования или влиянием электромагнитных помех.


ГОСТ 32144—2013

Создаваемые преднамеренно прерывания напряжения, как правило, обусловлены проведением запланированных работ в электрических сетях.

Случайные прерывания напряжения подразделяют на длительные (длительность более 3 мин) и кратковременные (длительность не более 3 мин).

Ежегодная частота длительных прерываний напряжения (длительностью более 3 мин) в значительной степени зависит от особенностей системы электроснабжения (в первую очередь, применения кабельных или воздушных линий) и климатических условий. Кратковременные прерывания напряжения наиболее вероятны при их длительности менее нескольких секунд.

В трехфазных системах электроснабжения к прерываниям напряжения относят ситуацию, при которой напряжение меньше 5 % опорного напряжения во всех фазах. Если напряжение меньше 5 % опорного напряжения не во всех фазах, ситуацию рассматривают, как провал напряжения.

Пороговое значение начала прерывания считают равным 5 % опорного напряжения.

Характеристики кратковременных прерываний напряжения приведены в приложении А.

4.3.2 Провалы напряжения и перенапряжения

4.3.2.1 Провалы напряжения

Провалы напряжения обычно происходят из-за неисправностей в электрических сетях или в электроустановках потребителей, а также при подключении мощной нагрузки.

Провал напряжения, как правило, связан с возникновением и окончанием короткого замыкания или иного резкого возрастания тока в системе или электроустановке, подключенной к электрической сети. В соответствии с требованиями настоящего стандарта провал напряжения рассматривается как электромагнитная помеха, интенсивность которой определяется как напряжением. так и длитель- ностью. Длительность провала напряжения может быть до 1 мин.

В трехфазных системах электроснабжения за начало провала напряжения принимают момент, когда напряжение хотя бы в одной из фаз падает ниже порогового значения начала провала напряжения, за окончание провала напряжения принимают момент, когда напряжение во всех фазах возрастает выше порогового значения окончания провала напряжения.

4.3.2.2 Перенапряжения

Перенапряжения, как правило, вызываются переключениями и отключениями нагрузки. Перенапряжения могут возникать между фазными проводниками или между фазными и защитным проводниками. В зависимости от устройства заземления короткие замыкания на землю могут также приводить к возникновению перенапряжения между фазными и нейтральным проводниками. В соответствии с требованиями настоящего стандарта перенапряжение рассматривается как электромагнитная помеха, интенсивность которой определяется как напряжением, так и длительностью. Длительность перенапряжения может быть до 1 мин.

4.3.2.3 Определение и оценка провалов напряжения и перенапряжений

Оба явления — провалы и перенапряжения — непредсказуемы и в значительной степени случайны. Частота возникновения их зависит от типа системы электроснабжения, точки наблюдения, времени года.

Характеристики провалов напряжения и перенапряжений, а также данные об определении и оценке их приведены в приложении А.

4.3.3 Импульсные напряжения

Импульсные напряжения в точке передачи электрической энергии пользователю электрической сети вызываются, в основном, молниевыми разрядами или процессами коммутации в электрической сети или электроустановке потребителя электрической энергии. Время нарастания импульсных напряжений может изменяться в широких пределах (от значений менее 1 микросекунды до нескольких миллисекунд).

Импульсные напряжения, вызванные молниевыми разрядами, в основном, имеют большие амплитуды, но меньшие значения энергии, чем импульсные напряжения, вызванные коммутационными процессами, характеризующимися, как правило, большей длительностью.

Значения импульсных напряжений в электрических сетях низкого, среднего и высокого напряжения приведены в приложении Б.

10


ГОСТ 32144—2013

Создаваемые преднамеренно прерывания напряжения, как правило, обусловлены проведением запланированных работ в электрических сетях.

Случайные прерывания напряжения подразделяют на длительные (длительность более 3 мин) и кратковременные (длительность не более 3 мин).

Ежегодная частота длительных прерываний напряжения (длительностью более 3 мин) в значительной степени зависит от особенностей системы электроснабжения (в первую очередь, применения кабельных или воздушных линий) и климатических условий. Кратковременные прерывания напряжения наиболее вероятны при их длительности менее нескольких секунд.

В трехфазных системах электроснабжения к прерываниям напряжения относят ситуацию, при которой напряжение меньше 5 % опорного напряжения во всех фазах. Если напряжение меньше 5 % опорного напряжения не во всех фазах, ситуацию рассматривают, как провал напряжения.



Пороговое значение начала прерывания считают равным 5 % опорного напряжения.

Характеристики кратковременных прерываний напряжения приведены в приложении А.

4.3.2 Провалы напряжения и перенапряжения

4.3.2.1 Провалы напряжения

Провалы напряжения обычно происходят из-за неисправностей в электрических сетях или в электроустановках потребителей, а также при подключении мощной нагрузки.

Провал напряжения, как правило, связан с возникновением и окончанием короткого замыкания или иного резкого возрастания тока в системе или электроустановке, подключенной к электрической сети. В соответствии с требованиями настоящего стандарта провал напряжения рассматривается как электромагнитная помеха, интенсивность которой определяется как напряжением. так и длитель- ностью. Длительность провала напряжения может быть до 1 мин.

В трехфазных системах электроснабжения за начало провала напряжения принимают момент, когда напряжение хотя бы в одной из фаз падает ниже порогового значения начала провала напряжения, за окончание провала напряжения принимают момент, когда напряжение во всех фазах возрастает выше порогового значения окончания провала напряжения.

4.3.2.2 Перенапряжения

Перенапряжения, как правило, вызываются переключениями и отключениями нагрузки. Перенапряжения могут возникать между фазными проводниками или между фазными и защитным проводниками. В зависимости от устройства заземления короткие замыкания на землю могут также приводить к возникновению перенапряжения между фазными и нейтральным проводниками. В соответствии с требованиями настоящего стандарта перенапряжение рассматривается как электромагнитная помеха, интенсивность которой определяется как напряжением, так и длительностью. Длительность перенапряжения может быть до 1 мин.

4.3.2.3 Определение и оценка провалов напряжения и перенапряжений

Оба явления — провалы и перенапряжения — непредсказуемы и в значительной степени случайны. Частота возникновения их зависит от типа системы электроснабжения, точки наблюдения, времени года.

Характеристики провалов напряжения и перенапряжений, а также данные об определении и оценке их приведены в приложении А.

4.3.3 Импульсные напряжения

Импульсные напряжения в точке передачи электрической энергии пользователю электрической сети вызываются, в основном, молниевыми разрядами или процессами коммутации в электрической сети или электроустановке потребителя электрической энергии. Время нарастания импульсных напряжений может изменяться в широких пределах (от значений менее 1 микросекунды до нескольких миллисекунд).

Импульсные напряжения, вызванные молниевыми разрядами, в основном, имеют большие амплитуды, но меньшие значения энергии, чем импульсные напряжения, вызванные коммутационными процессами, характеризующимися, как правило, большей длительностью.

Значения импульсных напряжений в электрических сетях низкого, среднего и высокого напряжения приведены в приложении Б.

10


ГОСТ 32144—2013

Приложение А (справочное)

Характеристики провалов, прерываний напряжения и перенапряжений в электрических сетях

А.1 Провалы и прерывания напряжения

Провалы и прерывания напряжения классифицируют в соответствии с [2] (см. таблицы А.1 и А.2). Цифры, помещаемые в ячейки таблицы. отражают число соответствующих событий.

Таблица А.1 — Классификация провалюв напряжения по остаточному напряжению и длительности

Остаточное Длительность провала (прерывания) напряжения АМ, © напряжение и, %

опорного ‚ и сари ‚ напряжения зе, за oe а oo Ш Ho во | рр

| ее рр | оне рр рр ewes рр

Таблица А.2 — Классификация кратковременных прерываний напряжения по длительности

Остаточное

напряжение и, % Длительность прерывания напряжения Alpe,

опорного — TTT TTT —

Провалы и прерывания напряжения измеряют в соответствии с ГОСТ 30804.4.30 на основе измерений среднеквадратических значений напряжения, обновляемых для каждого полупериода. Параметрами провалов, прерываний напряжения, являющимися объектами рассмотрения в настоящем стандарте, являются остаточное напряжение и длительность.

В электрических сетях низкого напряжения, четырехпроводных трехфазных системах учитывают фазные напряжения; в трехпроводных трехфазных системах учитывают линейные напряжения; в случае однофазного подключения учитывают питающее напряжение (фазное или линейное в соответствии с подключением потребителя).

Пороговое значение начала провала напряжения принимают равным 90 % опорного напряжения. Пороговое значение начала прерывания напряжения принимают равным 5 % опорного напряжения.

Примечание — При измерениях в многофазных системах рекомендуется определять и записывать чис- no фаз, затрагиваемых каждым событием.

Для электрических сетей трехфазных систем следует использовать многофазное сведение данных, которое заключается в определении эквивалентного события, характеризующегося одной длительностью и одним остаточ- ным напряжением.

Результаты измерений характеристик провалов и прерываний напряжения в электрических сетях по данным [2] приведены в таблицах А.З и А.4.

1"




ГОСТ 32144—2013

Приложение А (справочное)

Характеристики провалов, прерываний напряжения и перенапряжений в электрических сетях

А.1 Провалы и прерывания напряжения

Провалы и прерывания напряжения классифицируют в соответствии с [2] (см. таблицы А.1 и А.2). Цифры, помещаемые в ячейки таблицы. отражают число соответствующих событий.

Таблица А.1 — Классификация провалюв напряжения по остаточному напряжению и длительности

Остаточное Длительность провала (прерывания) напряжения АМ, © напряжение и, %

опорного ‚ и сари ‚ напряжения зе, за oe а oo Ш Ho во | рр

| ее рр | оне рр рр ewes рр

Таблица А.2 — Классификация кратковременных прерываний напряжения по длительности

Остаточное

напряжение и, % Длительность прерывания напряжения Alpe,

опорного — TTT TTT —

Провалы и прерывания напряжения измеряют в соответствии с ГОСТ 30804.4.30 на основе измерений среднеквадратических значений напряжения, обновляемых для каждого полупериода. Параметрами провалов, прерываний напряжения, являющимися объектами рассмотрения в настоящем стандарте, являются остаточное напряжение и длительность.

В электрических сетях низкого напряжения, четырехпроводных трехфазных системах учитывают фазные напряжения; в трехпроводных трехфазных системах учитывают линейные напряжения; в случае однофазного подключения учитывают питающее напряжение (фазное или линейное в соответствии с подключением потребителя).

Пороговое значение начала провала напряжения принимают равным 90 % опорного напряжения. Пороговое значение начала прерывания напряжения принимают равным 5 % опорного напряжения.

Примечание — При измерениях в многофазных системах рекомендуется определять и записывать чис- no фаз, затрагиваемых каждым событием.

Для электрических сетей трехфазных систем следует использовать многофазное сведение данных, которое заключается в определении эквивалентного события, характеризующегося одной длительностью и одним остаточ- ным напряжением.

Результаты измерений характеристик провалов и прерываний напряжения в электрических сетях по данным [2] приведены в таблицах А.З и А.4.

1"


ГОСТ 32144—2013

Таблица А.3 — Результаты измерений характеристик провалов и прерываний напряжения для кабельных электрических сетей

Остаточное Длительность провала (прерывания) напряжения А, © напряжение и,

напряжения

| в | в | 4 | о | о | | ого | в | т | за | 0 |] 0

Таблица А4 — Результаты измерений характеристик провалюве и прерываний напряжения для смешанных (кабельных и воздушных) электрических сетей

Остаточное Длительность провала (прерывания) напряжения, 4, © напряжение и,

% опорного ‚ в Ш Ш м “о “о о м ве (sua | om | | ю | 08 | з | 1

rouse | | в | м | 0s |] 1 | o wooo | 0s | ae om | 4 | 0 ft

А.2 Перенапряжения

Перенапряжения измеряют в соответствии с ГОСТ 30804.4.30, подраздел 5.4 на основе измерений среднеквадратических значений напряжения, обновляемых для каждого полупериода. Пороговое значение начала перенапряжения принимают равным 110 % опорного напряжения.

В среднем за год в точке присоединения возможны около 30 перенапряжений. При обрыве нулевого проводника в трехфазных электрических сетях напряжением до 1 «В, работающих с глухо заземленной нейтралью, возникают временные перенапряжения между фазой и землей. Уровень таких перенапряжений при значительной несимметрии фазных нагрузок может достигать значений линейного напряжения, а длительность — нескольких часов.

В системах низкого напряжения, при определенных обстоятельствах, неисправность, произошедшая электрически выше трансформатора, может породить временные перенапряжения на стороне низкого напряжения на время, в течение которого протекает ток. вызванный неисправностью. Такие перенапряжения в общем случае не превышают 1,5 кВ.

Для систем среднего напряжения ожидаемая величина такого перенапряжения зависит от типа заземления в системе. В системах с жестко заземленной нейтралью или с заземлением нейтрали через сопротивление перенапряжение обычно не превышает 1.7 В системах с изолированной нейтралью или с заземлением нейтрали через реактор перенапряжение обычно не превышает 2,0 (7... Тип заземления указывается оператором сети.

12


ГОСТ 32144—2013

Таблица А.3 — Результаты измерений характеристик провалов и прерываний напряжения для кабельных электрических сетей



Остаточное Длительность провала (прерывания) напряжения А, © напряжение и,

напряжения

| в | в | 4 | о | о | | ого | в | т | за | 0 |] 0

Таблица А4 — Результаты измерений характеристик провалюве и прерываний напряжения для смешанных (кабельных и воздушных) электрических сетей

Остаточное Длительность провала (прерывания) напряжения, 4, © напряжение и,

% опорного ‚ в Ш Ш м “о “о о м ве (sua | om | | ю | 08 | з | 1

rouse | | в | м | 0s |] 1 | o wooo | 0s | ae om | 4 | 0 ft

А.2 Перенапряжения

Перенапряжения измеряют в соответствии с ГОСТ 30804.4.30, подраздел 5.4 на основе измерений среднеквадратических значений напряжения, обновляемых для каждого полупериода. Пороговое значение начала перенапряжения принимают равным 110 % опорного напряжения.

В среднем за год в точке присоединения возможны около 30 перенапряжений. При обрыве нулевого проводника в трехфазных электрических сетях напряжением до 1 «В, работающих с глухо заземленной нейтралью, возникают временные перенапряжения между фазой и землей. Уровень таких перенапряжений при значительной несимметрии фазных нагрузок может достигать значений линейного напряжения, а длительность — нескольких часов.

В системах низкого напряжения, при определенных обстоятельствах, неисправность, произошедшая электрически выше трансформатора, может породить временные перенапряжения на стороне низкого напряжения на время, в течение которого протекает ток. вызванный неисправностью. Такие перенапряжения в общем случае не превышают 1,5 кВ.

Для систем среднего напряжения ожидаемая величина такого перенапряжения зависит от типа заземления в системе. В системах с жестко заземленной нейтралью или с заземлением нейтрали через сопротивление перенапряжение обычно не превышает 1.7 В системах с изолированной нейтралью или с заземлением нейтрали через реактор перенапряжение обычно не превышает 2,0 (7... Тип заземления указывается оператором сети.

12


ГОСТ 32144—2013

Приложение Б {справочное)

Значения импульсных напряжений, вызываемых молниевыми разрядами и процессами коммутации

Расчетные значения импульсных напряжений, вызываемых молниевыми разрядами в точках присоадинения к эпектрической сети. показанных на рисунке 5.1. приведены для фазных номинальных напряжений сети.

Ue g TPa м Ba Ча 1 | к РП-В

ВЛ воздушная линия КЛ кабельная линия РГА, РПБ. РГ.В распределительные подстанции ТЕ. 72; сиговые трансформаторь Ки И; - изпряжения на первичнои и вторичнои обыо*ках силового трансформатора. чес. Гуд, к т л возможные точки присоединения к электричесеой сеты

Рисунок Б.1 — Точки присоединения к электрической сети

Формы импульсов. характерные для точек присоединения на рисунке Б.1. показаны на рисунках Б.2 — Б.4.

Рисунок Б.2 — Форма импульсов. характарная для точек присоединения 2. с. ‹, с на рисунке Б.1

13


ГОСТ 32144—2013

Рисунок Б.4 — Форма импульсов. характерная для точек присоединения o, ;, к на рисунке Б.1.

Значения импульсных напряжений, вызываемых молниевыми разрялами в точках присоединения к электрической сети. показанных на рисунке В.1, приведены а таблице Б.1.

14


ГОСТ 32144—2013

Таблица Б.1 — Значения импульсных напряжений, вызываемых молпниевыми разрядами. кВ

Место Номинаньное напряжение электрическом сети, кВ Варианты

распопожения TONED

точек

на рисумхе Ь 1 присоединения

линия (ВЛ)

Кабельная пиния {КЛ}

Силовой транс- форматор (Тр)

п В варианте точек присоединения 6 в числителе указано импульсное напряжение на металлических

и железобетонных опорах, в знаменателе — на деревянных опорах

2 Имлупьсные напряжения в точке присоелинения ! соответствуют случаю отсутствия воздушной линии электропередачи нв стороне вторичного напряжения // . трансформатора Тр; (ст. рисунок Б.1} и значениям напряжений обмоток Тр. М, ‚, М... соответствующим двум номинальным напряжениям. расположенным рядом в шкале стандартных напряжений (например 35 и 10 кВ. 110 и 220 кВ}.

При других сочетаниях номинальных напряжений Тр. (например. 110 и 10 кВ. 35 ибкВ итд. } импульс- ные напряжения, проходящиа через обмотки трансформатора, меньше указанных значений.

3! При наличии на распределитепьной подстанции типа РП-6. РП-В (см. рисунок 6.1} воздушных линий электропередачи значения импульсных напряжений в точках присоединения е и К такое же, как в варианте точек присоединания 6 ис. При отсутствии на распределительной подстанции типа РП-Б. РП-В воздушных линий электропередачи импульсные напряжения в точках присоединения е и й определяются значениями импульсных напряжений в начале кабельной пинии (точки д и / }. уменьшенными в соответствии с данными по затуханию грозовых импульсов в кабельных линиях в зависимости от дпины пинии.

“! Указанные в данной строка значения импульсных напряжений справедпивы при усповии расположе-

ния точек общего присоединения (. 9. 7 на аводах силового трансформатора и наличии связи рассматриваемой обмотки с воздушной пинией. При отсутствии связи (точка гп на рисунке Б.1} импульсные напряжения

соответствуют точке присоединения /.

5' Значения импульсных напряжений с вероятностью 90 % не превышают 10 кВ — в воздушной сети напряжением 0,38 кВ и 6 кВ — вю внутренней проводке зданий и сооружений.

Значения коммутационных импульсных напряжений при их длительности на уровне 0.5 амплитуды импуль- са. равной 1000—5000 мкс. приведены в таблице Б.2

Таблица Б.2 — Значения коммутационных импульсных напряжений

Номинальное напряжение электрической сети. кВ

Коммутационное импульсное напряжение, кВ

Вероятность превышения значений коммутационных импульсных напряжений. указанных в таблице Б.2. составляет не более 5 %. а значений импульсных напряжений, вызываемых мопниевыми разрядами (таблица 5.1) — не более 10 для воздушных линий с металлическими и железобетонными опорами и 20 % — для воздушных пиний с деревянными опорами.

Значения импульсных напряжений в электрической сети потребителя могут превышать указанные в таблице Б.1 значения за счет молниевых поражений в самой сети потребителя. отражений и преломпений импульсов в сети потребителя и частично — за счет разброса параметров импульсов.

15


ГОСТ 32144—2013

п)

(2)

IEC 61000-4-15.2010

1ЕС 61000-2-8.2002

Библиография

Flikerrmeter — Functional and design specifications

[Электромагнитная совместимость (ЭМС). Часть 4—15. Методы измерений и испыта-

ний. Фликерметр. Функциональные и конструктивные требования]

(Электромагнитная совместимость (ЭМС). Часть 2—8. Эпектромагнитная обстановка. Провапы и кратковременные прерывания напряжения в общественных системах

электроснабжения со статистическими результатами измерений}

УДК 621.398:621.316 МКС 29.020

Ключевые слова: система электроснабжения, качество электрической энергии. показатель качества

33.100

электрической энергии. нормы качества электрической энергии

Редактор Н.В. Таланова Технический редактор А.И. Белов Корректор М.Н. Ганик Компьютерная верстка А.С. Шаповаловой

Сдано и набор 15.91.2014 Падписана в печать 21.01.2514 Формат 63.94% Гарнитура Аризп

Yon печ п 232 Уч иза л.200 Тираж 79 экз Зак. 265

Нэбрэно в Изда-ельсеом доме «Вебстер. wow огоуес и

Издано и отпечатана во ФГУП «СТАНДАРТИНФОРМ ‹ 123995 Москва Гранатным пер 4 waw.gostinfs re vlog gastinfo ru

Electromagnetic compatibility (EMC) — Part 4—10: Testing and measurement techniques —

Electromagnetic compatibility (EMC) — Part 2—8: Environment — Voltage dips, short interruptions on public electric power supply system with statistical measurement results


FOCT P HCO 10303-11—2000

Для значений булевекого тина ланных установлен тол же порялок. что и для значений логического типа данных: FALSE < TRUE.

Пример 17 В лом примере. агрибуг. пазванный раваг, прелстайлен булевеким типом ланных. Значением для рпаг. связанным с экземпляром зиПасе. может быть ТКИЕ или FALSE.

ENTITY surtace:

planar : BOOLEAN:

END ENTITY:

$.1.6 Строковыя тий данных

Областью значении строкового типа данных являются послеловательности символов. Символами. лопустимыми в строковых значениях. являются енмволы из ИСОУМЭК 10646-1, расположенные в позициях 98 00, и графические символы. лежашие в лиапазонах 20 ?Е и АО LUFFFE.

Синтаксис: 2923 string type = STRING | width spec |.

ALS width. spee = °C width [ FIXED |. 317? width = numeric expression .

тип ланных может иметь как фиксированную. так и переменную ширину (число символюв). Если специально не установлено. что имеется фиксированная ширина (используя резервированное слово ЫХЕО в опрелелении). то строка имеет переменную ширину.

Областью значений строкового типа ланных с фиксированной шириной является набор всех послеловательностей символов с шириной. точно указанной в определении типа.

Областью значении строкового тина данных с перемениои шириной является набор всех последовательностей символов с шириной не большей максимальной ширины. указанной в опрелелении.

Если ширина не указана, то областью значений булет набор всех последовательностей символов без ограничений по ширине этих последовательностеий.

Подстрочные и отдельные символы могут быть адресованы. используя полстрочные инлексы. как описано в 12.5. Имеет значение регистр букв (верхний или нижний) в пределах строки.

Правила ин ограничения

Выражение ширины лолжно иметь пелое положительное значение.

Примеры

Is Следующее выражение опрелеляет строку переменной алины. значения которой ие имеют определенной максимальной длины.

ить! : УТКГМО:

19 „ Следующее выражение определяет строку. имеющую ллину максимум лесять символов. значения которой могут измениться по фактической алине от нуля до десяти символов.

suing? » STRING (IO):

20 Следукишее выражение определяет строку. имеющую алину точно лесять символов. значения которой должны содержать лесять символов.

string? : STRING CIO) FIXED:

8.1.7 Двоичный гип данных Областью значений двоичного (ВИМАКУ) гина данных являются послеловательности битов. а каждый бит представляется 0 или 1. Синтаксис: 172 binan type = BINARY | width spee | .

318 width spec = °C width “po | FINED |. 317 width = numeric expression .

ДАвоичный тип ланных может иметь как фиксированную. так и переменную ширину (число битов). Если специально не определено. что ширина фикснрована (используя зарезервированное слово ЫХЕО в определении}, то лвоичный тип ланных имеет переменную ширину.

Областью значений двоичного типа ланных с фиксированной ширинон яйлнетея набор всех последовательностей битов с шириной. точно установленной в определении типа.

13


ГОСТ Р ИСО 10303-11--2000

Областью зиачений двоичного типа данных с переменной шириной является набор всех последовательностейи битов с шириной. меньшеин или равной максимальной ишрине. указанной в опрелелении тина. Если ширина ие опрелелена. то областью значений является набор всех последовательностей бигов. без; ограничения по ширине этих послеловательностей.

Подестроки и отдельные биты могут быть алресованы. используя подстрочные инлексы. как описано в 12.3.

Правила и ограничения

Выражение ширины лолжно иметь пелое положительное значение.

Пример 21 Следукниее выражение может быть использовано для преаставления информации о шрифте символа.

ENTITY character,

representation ARRAY [f:20] OF BINARY (8) FINED:

END ENTITY;

8.2 Агрегатные (сборные) тнны данных

Областями значений сборных (агрегатных) типов данных являются множества значении заданного основного типа данных (см. 8.6.1). Эти значения основного гипа ланных называются элементами сборного (агрегагного) множества. В ЕХРКЕУЗУ устаповлено определение четырех вилов сборных типов данных: АККАХ (МАССИВ). УТ (СПИСОК), ВАС (МУЛЬТИМНОЖЕСТ- ВО) н ЗЕТ (НАБОР). Каждый вил сборного типа даниых приписывает различные свойства для своих значений.

Tin ARRAY является упорялоченным множеством фиксированного размера. Оно проиилексировано послеловательностью нелых чисел.

Пример 22 Матрица преобразований (в геометрии) можег быть определена как массив массивов (чисел).

Тип 1$Т является послеловательностью элементов. к которым можно обрашаться соглаено их позинни. Число элементов в списке может изменяться и быть ограничено исходя из опрелеления липа ланных.

Пример 23 В виде списка могут быть представлены операции плана проиесса. Операции упорялочены и могут быть лобавлены или удалены из плана процесса.

Тип ВАС яваяется исупорялочениым множеством, в котором разрешены повгоряющиеся элементы. Число элементов в мультимножестве может изменяться и быть ограничено исхоля из опрелеления типа данных.

Пример 24 Множество крепежных деталей. используемых при сборке. может быть представлено как мульгимнпожество. В состав его элеменгов может вхолить некоторое число олинаковых болтов. но неважно, который из них используется в конкретном отверстии.

Тив ЗЕТ является неупорялоченным мпожеством элементов, в котором нет лвух элементов. являющихся эквивалентными экемпаярами. Число элеменгов в наборе можег изменяться и быть ограничено исходя из определения тина ланных.

Пример 25 В качестве набора может быть прелставлено население всего мира.

Примечание — Сборки (ирегаты) в языке ЕХРКЕЗУУ ивликися олномерными. Объекты. обычно рассмагриваемые хак многомерные (например. математические матрипы |. могут быль представлены сбор- ным типом данных. чей основной тип янлястся в свою очерель сборным типом ланных. Таким обраюм.

сборные тины ланных могут быть владенными ло произнольной глубины. позваляя представлять любые размерности.

Пример 26 Можно представить 11$Т [1:3 ОЕ АВКА\Х [5:10] ОЕ ТМУТЕСЕК. который в аействительности имеет размерность. равную лвум.

$.2.1 Тип данных ARRAY

Областью значении типа данных АККАУ\ является индексирование фиксированного размера множества полобных элементов. Нижние и верхние границы. значения которых выражаются ис- лыми числами, определяют лиапазон значений инлекса и. таким образом. размер кадлого множества массива. Опрелеление типа ланных АККАУ может факультативно устанавливать. что иачения массива не могут содержать повторяющихся элементов. Также может быть установлено. что значения массива не обязательно содержат олементы в кажлой проинлексированной позинии.

15


FOCT P HCO 10303-11—2000

Синтаксис: 165 array wpe = ARRAY bound spee OF [ OPTIONAL | | ИМЮСЕ | Базе туре. 176 bound spee = bound °° bound 2°

[74 bound | = numeric expression . 175 bound 2 = numene expression . 171 base type = aggregation types | simple types named types .

Допустим. что 2 является нижнеи границей. ал верхней. тогла в массиве имеется точно я-т + элементов. TH элементы пронндексированы от м ло я включительно

Примечание | — Границы могут быть положительными. отрипательными или нулевыми. но не могут быть неопределенными (*?) (см. 14.2)

Правила и ограничения

а} Оба выражения в спепификании гранипы. и лолжны выражаться иелочисленными значениями. Ни одно из них не лолжно имегь неопределенного (р значения.

Выражение bound 1 мласт нижнюю гранииу массива. Оно лолжно иметь наименьший инлекс. при котором имеется значение массива для этого гипа ланных.

с) Выражение Бони 2 заласт верхнюю гранииу массива. Оно лолжно иметь наибольший инлекс. при котором иместся значение массива для этого гипа ланных.

4) Выражение лолжно быть меньшим или равным Боип@_2.

с) Если указано ключевое слово ОРТЮМАЕ. го значение массива этого типа данных может имегь неопределенное {2} значение в олной или нескольких проинаексированных позшиях.

В Если ключевое слово ОРПОХЛЕ не указано. значение массива этого типа данных не лолжно солержаль неопределенных (р значений ии в олной проинлексированной позиции.

в) Если указано ключевое слово С МОСЕ. то каждый заемент значения массива этого тина ланных лолжеп отличаться (то есть не быть эоквивалентным экземпляром) от кажлого Apyroro элемента в том же самом значении массива.

Примечание 2 — O60 ключевых слова и СМЮСЕ могуг исполь в одном и том

же определении типа ланных АККАУ. Эта не исключает многократного появления неопределенных (Е значении в отлельных элементах массива. Эло происхолиг потому, что сравнение авух неопрелеленных (?раначении лает результат (УКМО\ММ. поэтому условие уникальности не нарушается.

Пример 27 Данный пример показывает. как объявляется мпогомерный АККАУХ. sectoss | ARRAY [ Е: 10 РОЕЁ--первае измерение АККЛУ | 11:14 | ОЕ--второе измерение UNIQUE something:

Первый массив содержит 109 заементов тина АВКАХ [11:14] ОЕ ИМЮЧЕ

Всего 40 элементов типа данных зотеше в атрибуте, названном $ес10г$. Внутри кажлого ARRAY [11:14] пе могуг появляться повторякициеся олеменгы. однако тог же экюемилир something MOACT появляться в авух различных значениях АКВАХ [11:14] внутри слинственного значения лая атрибуга названного $ес10г$.

3.2.2 Тип ланных LIST

Областью значений типа ланных Ы5Т являются послеловательности полобных элементов. Необязательные нижние и транины. значения которых выражаются целыми числами. опрелеляют минимальное и максимальное число элементов, которые могут содержаться во множестве. определенном типом данных В определении типа данных ШУТ можег быть факу.1ь- тативно установлено. что значение списка не может солержать повторяющихся элементов.

Синтаксис: 237 list type = LIST [ bound spee f OF [ UNIQUE | Базе 176 bound spec = bound bound 2°]

bound |} = numerte expression . 175 bound 2 = numeric expression . [7 i base type = aggregation types | simple types named types.

Правила и ограничения a) Выражению Боцаа_Т лолжно быгь присвоено ислочисленное значение. большее или равное нулю. Оно залает нижнюю границу. определяющую минимальное число элементов. которое

16


ГОСТ Р ИСО 10303-11—2000

может влолить в значение списка этого гила ланных. Выражение Бошад_1 ие должно иметь неопрелелениого (2) значения.

Ь) Выражению Бона лолжно быть присвоено пелочиеленное значение, большее или равное bound]. i. неопределенное 41?) значение. Оно заласт верхнюю границу. опрелеляющую максимальное число олементов, которое может влолить в значение списка лого типа ланиых.

Если данное значение является неопределенным {7). то число элементов в зиачении сниска этого типа ланных не ограничено сверху.

с) Если выражение Бош опущено. то прелелы 10:2.

4) Если укамно ключевое слово С МОСЕ. каждый элемент н змачении списка эгого тийа ланных должен отличаться (то есть не являться эквивалентным экземпляром! от .нобого другого элемента в том же самом значении списки.

Пример 2% Данный пример определяет список массивов. Список может солержать от нуля ло десяти массивов. Кажлый массив из лесяги целых чисел должен отличаться от всех пру- гих массивов в конкретном списке.

complex list: LIST{OLOP OF UNIQUE ARRAY[E:10] OF INTEGER:

8.2.3 Тип ланных ВЛАС

Областью значений типа данных ВАС являются неупорялоченные множества нолобных элементов. Необязагельные нижние и верхние границы, которые выражаются пелочисленными значениями. определяют минимальное и максимальное число элементов. которые могут солер- жаться в множестве. опрелеляемом тином ланных ВАС.

Синтаксис: 170 Бак туре = ВАО | bound spec |] OF base type . 176 bound spee = bound 1° bound 2°77

(74 bound =| = numeric expression . [7S bound 2 = numene evrpression . I7L base type = types | simple types named types .

Правила и ограничения

а) Выражению Бошад_1 лолжио быть присвоено пелочислениое змачение, большее или равное нулю. Оно залает нижнюю границу. определяющую минимальное число элементов. которое может входить в значение мультимнолества этого типа данных. Выражение bound | ne лолжио иметь неопределенного $2) значения.

5» Выражению Бош лолжно быть присвоено пелочисленное значение. большее или равное Боива_Т. или неопрелеленное {2} значение. Оно залаег верхнюю границу. определяющую максимальное число элементов, которое может вхолить в зачение мультимножества лого типа ланных.

Если ланиое значение является неопрелеленным (*). то число элементов в значении муль- тимножества того типа ланных не ограничено сверху.

с) Если выражение Бон рес пропушено. то прелелы 10:2 [.

Пример 29 - Данный пример определяет атрибут как мультимножество точки (где гочка - поименованиный тий данных, описанный в другом месте}. a baz of points : BAG OF point:

aTpuOyTa, a_bag_of_points, moaetT содержать ноль или более точек. Тот же экземпляр гочки может появиться более олного раза в значении а_фар_ой рош{$.

Если требуется. чтобы значение солержало по крайней мере олин элемент, то в специфика. пин может быгь проставлена нижняя граница:

a bag of pomts : BAG OF point:

arpuSyia, a_bag_of_points. теперь должно содержать, по крайней мере. одну точку.

$.2.4 Тип ланных ЗЕТ

Областью зиачений типа данных ЗЕТ являются исупорялоченные мпожества полобных элементов. Тип данных ЗЕТ является конкретизаниеи тина данных ВАО. Необя ательные нижние и верхние границы. выраженные целочисленными змачениями. опрелеляют минимальное и максимальное число элементов. которые могут содержаться во множестве. опрелелениом типом данных ЗЕТ. Множество. определенное типом данных ЗЕТ. не лолжно солержать повторякинихся JK JOMILTAPOL.


FOCT P HCO 10303-11—2000

Синтаксис: 285 set type = SET [| bound spee | OF base pe. 176 bound spee = bound bound 2 °[

[74 bound 1 = numeric expression . 175 bound 2 = numenec expression . 171 base type = aggregation types | simple types named types .

Правила и ограничения

а) Выражению лолжно быть присвоено иелочисленное значение. большее или равное нулю. Оно залает нижнюю границу. опрелеляющую минимальное число элементов. которое может влолить в значение набора этого гина данных. Выражение Бош _Т не должно иметь неопрелеленного (2) значения.

Ь) Выражению Бонаа_2 должно быть присвоено целочисленное змачение, большее или рав- Hoe bound_1, или неопрелеленное {(?) значение. Оно заласт перхлиюю границу, опрелеаяюшую максимальное число элементов. которое может вхолить в значение набора этого гива ланных.

Если данное значение является нсопрелеленным 412). то число элемеигов в значении набора ого тина ланных не ограпичено сверху.

с) Если выражение Бош рес пропушено. то прелелы 10:2.

4) Кажлый элемент при появлении в типе данных лолжен отличаться {то есть. не являться эквивалентным экюмиляром) от любого другого элемента в том же самом змачении набора.

Пример 30 Этот пример опрелеляет атрибут как набор точек (гле точка поименованный тий данных. описанный в лруом месте).

a set_of points : SET OF point:

Атрибут. названный ройи$. может содержать ноль или более точек. Требуется. чтобы кажлый эокземиляр точки (в значении набора} отличался от кажлой другой точки в наборе.

Если требуется. чтобы значение содержало не более 15 точек. в спепификации должна быть установлена верхняя граница:

a set of points . SET [0:15] OF point:

arpuGyvra a_ set_of_points treneph ConepAaTb He более 15 точек.

$.2.5 Уникальность значения в совокупностях (агрегатах }

Уникальность межлу элементами совокупности (ирегата) основана на сравнении экземиля- pa (em. 12.2.2) Совокупность (агрегат) может быть ограничена уникальными шачениями своих элементов при помоши использования функции ИМЮЧЕ (см. 13.29).

Пример 3! Набор. ограниченный значением уникальности. TYPE value unique set = SET OF a: WHERE wri: value unique(SELF): END TYPE: a римечание — молельщиком уникальность значения можег быть хстннонлена через; пару функций. называемых. например. и ках показано в псевлоколе.

FUNCTION my equal Тут СЕМС: реп): LOGICAL: (* Returns TRUE if vi ‘equals’ v2 *) END FUNCTION,

FUNCTION ту unique(e: AGGREGATE OF GENIRIC): LOGICAL: (* Returns FALSE if two elements of ¢ have the same ‘value’ Else returns UNKNOWN if any element comparison is UNKNOWN Othenvise returns TRUE *) LOCAL result : LOGICAL, unknownp : BOOLEAN := FALSE: END LOCAL: IF (SIZEOF(.) = 0) THEN RETURNCTRUE), END IF: Is


ГОСТ Р ИСО 10303-11—-2000

REPEAT i := и) 0: КЕРЕЛТ } := (+1) ТО resultc= my equal(e [i] . clipe: IF (result = TRUE) THEN RETURN(FALSE): ENDIF: IF (result = UNKNOWN) THEN Luknownp := TRUE: END IF. END. REPEAT, END REPEAT: IF unknownp THEN RETURNCUNKNOWN)- ELSE RETURNCTRLE): END IF: END FUNCTION:

my_equal рял евойсгв. позволяющих формировать классы эквивалентности. В слелуюшем примере “ рассматриваемых объектов, а му_едша! (1. р). ети) принадлежат 5. возвращает олно из значений |Е^ЬЗЕ. ЧИМКУХОМ/М. TRUE].

a) my_equal(i, имест значение ТВОЕ лля всех тв 5 (так как неопределенность (?) не приналлежит 5, то не требуется. чтобы my_equal (?,?) имело змачении ТКИЕН

b) my_equal(i, J) = my_equal(j, i) vii peer i. joa S:

c) (my_equal(i, j) = TRUE) AND (my_equal(j, k) = TRUE), (my_equal(i, k) = TRUE) Lia pees bj KS.

8.3 тнпы данных

Поименованными типами данных являкися типы, которые могут быть объявлены в фор- мальной спепификации. Существуют ава вила поименованных типов ланных: объекта и опреде ленный. В настоящем рашеле описаны ссылки на поименованные типы ланных: объявление типов ланных описано в разеле 9.

3.3. Тин данных объекта

Типы данных офъекта усганавливаются в соответствии с объянлениями (см. 9.2}. Тип ланных объекта устанавливается пользователем путем присвоения идентификатора объекту. На тип ланных объекта ссылаются по его илентификатору.

Синтаксис:

[47 entity ref = entity id.

Правила и ограничения Выражение еп должно быть ссылкой на объект. вилимый в активной области (см. разлел 1%).

Пример 32. В данном примере тип ланных объекта рони использован аля представления его атрибута. ENTITY point.

wy. 2 REAL: END ENTITY: ENTITY line,

pO. pr: point: END ENTITY:

Нае имеет ава атрибута. названных ро и рЕ Типом ланных кажлого из этих атрибу - тов является point.

$.3.2 Определенный тип данных

Опрелеленные типы данных назначаются объявлениями ТУРЕ (см. 9.1). Определенный тип ланных устанавливается пользователем путем присвоения илентификатора типу. На опрелеленный тий данных ссылаются по его идентификагору.

Синтаксис:

154 пре геЁ= type id.

19


FOCT P HCO 10303-11—2000

Правила и ограничения Выражение лолжно быть именем определенного типа ланных. вилимого в активной области (см. разлел 10}.

Пример 33 - Следующая спецификация является определенным типом ланных. исполь- зуемым аля указания елинии измерения. связанных с атрибутом. TYPE volume = REAL, END TYPE. ENTITY PART:

bulk : volume:

END ENTITY:

bulk, лействительным числом. но использование опрх- леленного типа ланных уднме помогает разъяснить смысл и контекст лействительного числа: например. оно определяет удфите в отличие от объекта. преаставляемого типом ВЕЛЁ.

8.4 Созданные типы данных

Существуют два виля созланных типов данных в ЕМСМЕКАТЮОМ (перечисляемые) типы ланных перечия и ЗЕБЕСТ (выбираемые) тины ланных выбора. Эти гипы ланных имеют позобные синтаксические структуры и используются лля обеснечения исхолных прелставлений определенных типов данных (см. 9.1).

Примечание — Созланные типы данных a EXPRESS могут быть использованы только как прелстанления лая опрелеленных тииов ланных.

3.4.1 Перечиеляемый гии длайнных

Областью значений типа лаиных ЕМЕМЕКАТЮМ (перечисляемого! является упорялоченный набор имен. Имена представляют собой значения перечисляемого типа ланных. Эти имена обозначаются как епитеганов 4. и на них ссылаются как на перечисляемые элементы.

Синтаксис

201 enumeration type = MERATION OF enumeration id {°° enumeration id}

Два различных типа ланных ЕМЕМЕКАТЮМ могут солержать тот же самый епитегайов 4. В лом случае любая ссылка на _ №9 (например. в выражении) должна быть переопрелелена в соответствии с илентификатором тина ланных аля обеспечения олнозначности ссылки. Ссылка затем Kuk type_id.enumeration_id.

Примечание — Значение буре № neem доступно. потому что EXPRESS aonyexacr тии ланных ЕХЕМЕКА ПОМ голько как ислолное преаставление опрелеленного типа данных.

Правила ин ограничения

а) В целях сравнения. упорялочение значений перечисляемого тина лолжно быть опрелелено их относительной позицией в списке епштега вой _№@. первый встречаюшиися элемент лдолжен быть меньше. чем второй: второй меныше. чем третий. и та.

№ Сравнение межах значениями различных типов Jans ENUMERATION te onpeaeteno.

с) Перечисляемый тил должен быть использован голько как исхолный тии определенного типа ланных.

Пример 34 В данном примере типы ланных ЕХИМЕВАТЮМ использованы дли гого. чтобы показать. как авижутся различные вилы транспортных срелств. TYPE car can move = ENUMERATION OF (left. night, backward, forward). END TYPE: TYPE plane can move = ENUMERATION OF Пей. nght. buckward. forward. up, down), В ТУРЕ:

Элемент перечисления ЮЙ имеег ава независимых опрелеления. они залаются каждым TH- пом. являющимся компонентом. Межлу лвумя этими опрелелениями илентификатора 1ей не имеется никакой взаимосвязи. Ссылка из ЮЙ или Ч сама по себе является неоднозначной. Чтобы разрешить эму неоднозначность, ссылка на любое из этих змачении должна быгь квалифицирована именем типа. например. саг_сап_тоуе.еЙ.

N


ГОСТ Р ИСО 10303-11—2000

3.4.2 Выбираемый тип данных

Областью змачений типа ланных ЗЕБЕСТ является объелинение областей значении поиме - нованных типов данных в соответствующем списке выбора. Тип ланных является обобшением каждого из понмепованных типов ланных в списке выбора.

Синтаксис:

284 select type = SELECT (C named types 4°.) named types

Правила ин ограничения:

Кажлый элемент в списке выбора лолжен быть типом ланных объекта или опрелеленным типом даиных.

Тин данных должен иепользоваться только как исходный тип определенного типа занных.

Примечание — Значение тина ланных ЗЕБЕСТ можсг быть значением более чем одного из поименованных типов ланных. опрелеленных в списке выбора аля ланного выбираемого типа данных. Эта ситуания возникает только тогда. когла соответстнующие поименованные типы ланных являются частью 0бшего графа наслелования (9.2.3}.

Пример 35 Если аи 6 подтирами с и они связаны выражением АХООК. н сушествует тип. определенный SELECT (а. bb: TO можно получить значение тина ланных SELECT, которое может быть равным а и 6 олновременно.

Пример 36 -- В ламном контексте должен быть сделан выбор среди нескольких типов

прелмегов. ТУРЕ

апасйтейе мешоа = SELECT(permanent attaghment, temporary attachment): END TYPE: TYPE permanent attachment = SELECT (glue, weld): END TYPE: TYPE temporary attachment = SELECT#nail. screw): END TYPE: ENTITY nail:

body Jeneth : REAL:

head area: REAL: END ENTITY: ENTITY serw;:

body leneth : REAL:

pitch : REAL: END ENTITY: ENTITY glue.

composition > material composition,

solvent > Material composition, END ENTITY: ENTITY weld:

composition : material composition: END ENTITY: ENTITY wall mounting:

mounting . product:

on > wall,

using attachment method: END ENTITY:

wall_mounting wm в используя постоянный или временный

мегол присоелинения. оба из которых полразлеляюлся далее. Значение wall_mounting Gyiet

агрибут изшр. который являегся значением одного вай (гвозля). 5сгем (винта). рше (клея) или ме М (сварного шва).

‘I


FOCT P HCO 10303-11—2000

8.5 Обобщенные типы данных Синтаксис:

21 непеганаеЧ = арргере туре | репега? арегерипой туре» | generic type -

Обобщенные типы данных используются аля установления обобшения некоторых других типов ланных и модул быть использованы в конкретных и очень спенифических контекстах. Тип CENERIC явзястся обобщением всех типов ланных. Агрегатныи тип данных АОССВЕСАТЕ является обобщением всех сборных (агрегатных! типов ланных. Общие сборные (агрегатные) гиры ланных являются обобшениями сборных ‹агрегатных) типов. которые ослабляки некоторые ограничения, обычно налагаемые па сборные (агрегатные) типы данных. Вес эти типы данных опр®- лелены в 9.5.3.

8.6 Класснфикация использования типов данных

В языке ЕХРКЕУУ типы ланных используются тремя различными способами: основные Гипы занных используются в качестве прелсгавления атрибутов и сборных (агрегатных) элементов: параметрические тины как прелставаения формальных параметров лля функний и пропелур: а нсхолиые типы — как представления определенных типов данных. Некоторые классы гипов ланных могут быть использованы любым из этих способов. в то время как другие могут быть ис- пользованы только в опрелеленном контексте. Эти различия показаны в таблице $.

Габлина 7 -- типов данных

агОсновные типы ланных — иредетавление агри-

pad bp ch бут или элементов совокупности.

rele

| Сборные (арргсхлиюл) типы ланных ef eye! b) Парамегрические типы данных — ирелетавле- | ®] ®| © ние формального параметра. локальной перс- Гу | ® меннои или функционального результата un

с! Исхазные типы ланных — ппрелеленнога тина (см. 9.1)

5.6. Основные типы ланных

Основные гипы занных используются в качестве представления агрибутов или как основные типы сборных (агрегатных) типов данных.

Основными типами данных являются простые. сборные (агрегагные) и поименованные типы данных.

Синтаксис:

I7l base type = ageregation types | simple types | named types .

3.6.2 Параметрические гипы данных

Параметрические типы данных непользуются в качестве преаставления формальных параметров для алгоритмов {функиий и процелур). Иараметрические типы данных также могут также использованы для прелетавления возвратных типов функинй и локальных переменных. объявленных в апоритмах.

Параметрическими типами ланных являются простые. поименованные и обобшенные гипы данных.

Синтаксис:

253 parameter type = generalized types } named_ types | simple types .

$.6.3 Ислолные тилы данных Исхолные (ипЧеуть) типы ланных используются в качестве представления определенных типов занных. Исхолными типами данных являются простые, сборные Сагрегатные). созланные и определенные тины данных. Синтаксис: 309 underlying (wpe = constructed types | aggregation types simple types |

type ref.


ГОСТ Р ИСО 10303-11--2000

9 Объявления

В настояшем разаеле определены различные объявления. доступные в яяяке ЕХРКЕЗУ. ЕХРКЕУ%-объявление созлает новый ЕХРКЕУ%-олемент и свя иавает с ним соответствующий илентификатор. На ЕХРКЕ$$-элемент можно ссылаться в другом месте пугем описания связанного с ним имени (см. разлел 9}.

Приннипиальные возможности языка EXPRESS установлены в слелующих объявлениях:

- типа:

- OObEKTAL

- схемы: константы: функиии:

- пронелуры:

- правила.

Объявления могут быть или явными или неявными. В настоящем разлеле полностью описзны явные объявления. Неявные объявления описаны в настояшем и последующих разделах. включая их элементы и условия, при когорых они устанавливаются.

9.1 Объявление типа

Объявление типа созлает определенный тин ланных (см. 8.3.2} и объявляет илентификатор для ссылки на этот тип. Конкретно фуре_4 объявляется как имя опрелелениого типа ланных. Предеставлением отого типа ланных является underlying буре. Область зиачения опрелеленного типа ланных совпалает с областью значении лалее ограниченного where_clause {если оно есть}. Определенный тий данных является конкретизацией исходного типа и. слеловательно, совместим с исхолным типом.

Примечание {1 — Составные опреасленные типы данных могут быть связаны с тем же самым представлением. Имена могут помочь чициелю в понимании назначения (или контекста применения uaderiying_type

304 type deel = TYPE type id underlying type “2 [| where cliuse f END TYPE

309 underlying type = constructed types: aggregation types | simple types | type rf.

Пример 37 Следующее объявление указывает определенный тип ланных, названный регзоп_пате. с исхолным представлением типа ЭТЕИМО. Опрелеленный тип регбоп_пате лалсе доступен дая использования в качестве представления атрибутов, локальных переменных и фюр- мальных параметров. Это придает ему большее количество значений. чем простое использование ina STRING.

TYPE person_name = STRING; D TYPE:

Правила области значений (оператор \УНЕКЕ)

Правила области значении устанавливают ограничения. которые лимитируют область значе - ний опрелеленного типа данных. Область значений определенного типа ланных является областью значений их исходного прелетавления. ограниченного правилом{ами) области значений. Правила области значений слелуют за ключевым словом \!НЕКЕ

Синтаксис:

315 where cliuse = WHERE domain гще ``} Чомат пе‘:

Кажлому domain rule быть залана метка правила. Ссылки на метки правил не описаны в настояшем станларте.

fl римечание 2-8 случае их залания. метки правил могут пыть использованы в реализаниях, например для локумеитании. сообщении об ошибках и обязательных спепификаций. Для этого желательно исполь ювание правил.

Правила и ограничения

а) Кажлому правилу области значенни должно присваиваться логическое (ТВОЕ. FALSE wan UNKNOWN) ia неопределенное (?) значение.

23


FOCT P HCO 10303-11—2000

b) Ronouvenoe слово ЗЕЁЕ (см. 14.5, полжно появляться по менышейи мере один раз н каждом правиле области значений. Правило области значений лолжно выражаться конпкрегным значением в области значении исходного типа путем замены обнаруженной в правиле лексемы соответствующшим значением.

с} Правило области значений булет выполнено. если выражению будег присвоено значение ТКЫИЕ. и будет нарушено. ссли выражению булет присвоено значение и не булет ни вы- полненным ни нарушенным, ссли выражению булет присвоено неопрелеленное (?} значение или значение ОХКМОММ.

4) Область значений определенного типа ланных состоит из всех иначений области значений исходного тила. которые не нарушают ни одно из правил области.

е) Мегки правила области значений лолжны быть уникальны внутри заланного объяпления ТУРЕ.

Пример 3% - Может быть созлаи опрелеленный тин данных. который ограничивает ис- холный пелочисленный тий только положительными целыми числами.

TYPE positive = INTEGER: WHERE

notnegative : SELF » 0; END TYPE:

Любой атрибут. локальная переменная или формальный параметр. которые объявлены как приналлежашие к положительному типу. могут иметь только положительные пелочисленные значения.

9.2 Объявленне объекта

Объявление ЕМ ИТУ созаает гии данных объекта и объявляет нлентификатор для ссылки на него.

Кажлый атрибут прелетавляет свойство объекта и может быть связан со змачением кажлого экземпляра объекта. Тип данных атрибута устанавливает область сго возможных значений.

Кажлое ограничение представляет олно из слелующих свойств объекта:

- ограничения на число. вил и организацию значений атрибутов. Они определяются в объ- явлениях атрибута:

- требуемые отношения между значениями атрибута или ограничениями на допустимые чения атрибутов аля данного экземпляра. Они представлены в настояшем разлеле и на них ссы- лаются как на правила области значений:

- требуемые отношения между значениями атрибутов аля всех экюемпляров типа ланных объекга. Они появляются в:

отдельном разделе, где на них ссылаются как на уникальные ограничения, другом разлеле. гле на них ссылаются как на основные ограничения. глобальных правилах (см. 9.6):

- требуемые отношения между экземплярами нескольких типов объекта. Они не появляются

в объявлении объекта непосреаственио. а проявляются как глобальные правила (см. 9.6}.

Синтаксис: 196 entity decl = entity head enuty body END ENTITY г. 197 entity head = ENTITY entity id | subsuper [0 .

194 entity body = | explicit attr} [ derive clause | [ inverse clause | | unique clause | | where clause | .

Правила и ограничения:

я) Кажлый идентификатор атрибута и метка. указанная в объявлении объекта, должны быть уникальными внутри объявления.

Ь» Подтии не должен объявлять атрибут. имеющий тот же самый идентификатор в качестве атрибута одного из супертипов, за исключением того. когла полтип переобъявляет атрибут. унас- лелованный из одного изега супертинов (см. 9.2.3.4).

9.2. Атрибуты

Агрибуты типа данных объекта представляют важные черты. свонелва или характеристики объекта. Объявление атрибута устанавливает отношение межлу типом данных объекта и гином ланных. вызванным атрибутом.

23


ГОСТ Р ИСО 10303-11--2000

Имя атрибута представляет роль. играемую связанным с ним значением. в контексте объекта. в котором оно появляется.

Существуют три вила атрибутов:

- явный — атрибуг. чье значение лолжно быть обеспечено реализаниеи для созлания экюмпляра объекта:

- вычисляемый — атрибут с вычисляемым этачением;

- мнверсный — атрибут. чье значение состоит из экземпляров объекта. которые используют объект в конкретной роли.

Кажлыи атрибут устанавливает огношения между окюмпляром объявленного типа ланных объекта и некоторым зругим экземпляром или экземплярами. Атрибут. предоставляемый несбор- ным (неагрегатныму типом ланных устанавливает простое отношение с эгим типом лапных. Агрибут. преаставляемый сборным (агрегатным) типом данных. устанавливает как коллектинные отношения лля объелинения значений. так и разлельные отношения с элементами этих сборных значений. Кроме того. кажлый атрибут усганавливает неявное инверсионное отношение между основным и объявленным типом ланных объекта.

п римечание — Дальнейшее обхужление эгих отношений см. в приложении С.

9.2.1.1 Явный атрибут

Явный атрибут прелетавляет свойство. значение которого должно быть обеспечено реализавией лля созлания экюмиляра. Кажлый явный атрибут определяет отдельное свойство. Объявле. ние явного атрибута созлает один или несколько явных атрибутов. имекиних указанную область значений, присвоенную кажлому из них его илентификатором.

Синтаксис: 203 ехрИсй аиг = Чес] | attribute dech J | OPTIONAL |

base type 167 attribute decl = auribute id | qualified attribute . ГУТ base type = aggregation | simple types named types .

Примечание | — Синтаксис для пролусмагривалет персопрелеление атрибута, которос описано в 9.2.4.4.

Правила н ограничения

а} Если явный атрибут не объявлен как ОРТЮМАЁ. каждый экюмпляр типа данных объек та лолжен иметь значение для этого атрибута.

Ь) Ключевое слово ОРТЮМАЕ указывает на то. что в ланном окюмиляре объекта атрибут не обязан иметь мачение. Если атрибут не имеет значения. то считается. что его значение булет неопределенным (*).

Ключевое слово ОРТОМАЁ указывает на то. что атрибут всегла имеет смысл лля экемиляров этого гипа объекта. но лля некоторых экземпляров может ис быть такого значения. которое играло бы роль. опрелеленную атрибутом. ОРТЮМАЕ не па то. что атрибут не имеет значения для некоторых экземпляров тина ланных объекта.

Примечания

2 Случаи. когла атрибут не имесг значения аля некоторых экземилярон. правильно моделируется пу- зем определения подтииа (ем. 9.2.1).

& Необходимо обратить внимание на ссылки к необя кисльным атрибутам. особенно в правилах. так как они могут не иметь никакого значения. Встроенная функиия ЕХ15 ГУ может быть использована для опрелеления сушествования значении или встроенная функция МУЁ может быть использанана аля обеспечения вычисления значения по умозчанию. Если ни олна из них не используется. могут быть получены нс- ожиланные результаты.

Пример 39 Следующие объявления эквивалентны: ENTITY point:

x.y. 2: REAL: END ENTITY: ENTITY point:

x: REAL: у: КЕАЁ: z. REAL:

END ENTITY,


FOCT P HCO 10303-11—2000

9.2.1.2 Вычисалнемый атрибут Вычисляемый атрибут представляет собой такое свойство. значение которого вычисляется путем присвоения численного значения выражению. Вычисляемые атрибуты объявляюгся после ключевого слова Объявление состоит из илентификатора атрибута. типа его прелетавления и выражения. используемого аля вычисления значения атрибута. Синтаксис: 190 derived attr = ацибие Че Базе пуре `:=` ехргезмой ':`

167 ацибие дес = auribute id | qualified

171 Базе туре = types | simple types © named types .

— аля прелусмагривает персопрелеление атрибуга. кон росе описана в 9.2.4.4.

Выражение может ссылаться на любой атрибут. константу (вкночая ЗЕЁГЕ) или илентификатор функиии. который находится в области применения.

Правила и ограннчения

а) Выражение лолжно быть совместимо по присваиванию (см. 13.3} с типом данных атрибута.

Ь) Для конкретного экземпляра объекта значение вычисляемого агрибута определяется присвоением значения выражению путем замены кажлого обнаруженного ЗЕТЕ па текушии эк ляр. а кажлой ссылки на агрибуг на соответствующее значение агрибута.

Пример 40 В данном примере. круг (сие) определяется (сепие). осью (ах) и ралиусом (гад). В дополнение к эгим явным атрибутам необходимо учесть важные свойства. такие как плошаль (агса) и периметр Это выполняется пугем определения их как вы- числяемых атрибутов. залакицих значения в виде выражений.

ENTITY circle:

centre pont: radius > REAL, ахк г уесюг: DERIVE area : REAL :=

й

perimeter > REAL := 2.0¢Pl¢radius: END ENTITY:

9.2.1.3 Инверсный атрибут

Если другой объект устанавливает отношение с ланным объектом посрелством явного агриинверсный атрибут может быть использован, чтобы описать ло отношение в контексте ланного объекта. Этот инверсный атрибут может также быть использован для дальнейшего ограпичения отношения.

Инверсные атрибугы объявляются после ключевого слова ИМУЕКУЕ. Кажлый инверсный ат- PUGS лолжен быть определен отдельно.

Основные ограничения инверсного отошения устанавливаются спецификацией границы инвереного атрибута таким же образом. как лля явных атрибутов.

Примечание | — Подробная информация об отношении между явными и инвереными атрибутами приведена в приложении Gs.

типом ланных объекта или типами ВАО и УЕТ, явяю- шимися основным типом типа ланных объекта. На тип данных объекта ссылаются как на ссы- лочный объект.

Объявление инвереного атрибута также называет явный атрибут ссылочного объекта. Для конкретного экземпляра типа ланных данного объекта значение инверсного агрибуга состоит из экемпляра или экземпляров типов данных ссылочного объекта. которые непользуюг данный экземпляр в опрелелениной роли.

Кажлое из трех возможных представлений типов лля инверсии палагает некоторые ограничения на отношение межлу двумя объектами.

Тип данных ВАС. Указание грании. при его наличии. определяет минимальное и максимальное число экземпляров ссылочного объекта, которое может использовать экземпляр ланного объекта. Так как мультимножество может солержать отлельный экземнляр несколько раз. TO He- сколько экземпляров могут ссылаться на экземпляр. а конкреиияй экземиляр может ссылаться на ланный экземпляр более одного раза.

26


ГОСТ Р ИСО 10303-11—2000

Примечания

2 Если инверзированный атрибуг представаен неуникальным сборным {агреслным) типом данных, то есть списком или массивом. для которых не установлено ключевое слово © МОЕ. или конкретный экземпляр ланного объекта может быть использован конкретным экемиляром ссылочного объ- секта несколько раз

3 Гели инвертированный атрибут представлен уникальным сборным типом ланных, например списком или набаром. которые определены клюкеным словом ОМЮСЕ. или набором. конкретный ок данного объекта может быть испальзован талько олин раз конкретным эклемиляром ссылочнеойп» объекта.

Факультативио инверсный атрибуг выражается определением нижней гранииы равным ну- лю. показывающим. что на заланиый экземпляр даниого объекта не обязан ссылаться ни олин экюмиляр ссылочного объекта.

Тип данных ЗЕТ. Как и лля ВАС. но с лополиигельным ограничением, чго ссылочные экземпляры лоалжны быль уникальными. Это ограничение также озшачаег. что конкретный ссылоч- ный экземиляр может использовать данный экемиляр в инвертированной роли только один раз.

Примечание 4 — Если инвертированный атрибут представлен уникальным сборным (агрегатным)

типом ланных, например списком или массивом. которые опрелелены словом или набором. инвереня не лобавляет новых о! раничении относительно уникальности.

Тип данных объекта. Инверсный атрибут точно указывает. что имеется олин экземиляр типа ссылочного объекта. который использует ланный экюмиляр в конкретной роли. В этом случае мошность связи инверсного отношения 1:1.

Синтиксис: 234 inverse atte = attbute deel “2 | ( SET | BAG > [ bound spec | OF J entity: ret FOR attribute ref’ 167 attribute deel = attribute id | qualified attribute . = "[ bound 1°.) bound 2 °]° Numeric expression .

176 bound spec 174 bound | = [75 bound 2 = питейе expression .

Правила м ограничения

2) Объект. определяющий объявление прямого отношения с ланным объектом. должен лелать ло так же. как и явный атрибуг.

Тип ланных явного атрибута в объекте. опрелеляюшем объявление прямого отношения. лолден быть объявлен ланным объектом через один из его супертипов или сборным (агрегатным) типом ланных, используя занный объект пли один изего супертипов как основной тип.

Пример 41 - Предполагается. чго мы имеем слелующее объявление лая аверного блока (door assembly ):

ENTITY door:

handle : knob:

hinges . SET [I:?] OF hinge: END ENTITY:

Затем мы можем пожелать ограничить объявление кнопок (КлоБ) так. чтобы кнонки могли присутствовать только. если они использованы в роли вВаа@е в одном из экземпляров двери. NTITY knob:

INVERSE

opens : door FOR handle: END ENTITY:

С лруой стороны. мы можем просто пожелать опрелелить. чтобы кнопка использовалась в одной или не в одной двери (например, она либо уже на или еще только должна быть к ней присослинена).

ENTITY knob: INVERSE

opens : SET [G:t{ OF door FOR handle:

END ENTITY:


FOCT P HCO 10303-11—2000

9.2.2 Локальные правила

Локальные правила утверждаются лля обласги заачений экземпляров объекта и таким образом лействуют для всех экземпляров типа данных этого объекта. Сушествукл два вила локальных правил. Правила увикальности контролируют уникальность значении атрибутов среди весел экзэемиляров типа ланных заданного объекта. Правила области значении описывают другие ограничения на значения агрибугов кажлого жкземиляра тина ланиых заланного объекта или межлу ними.

Кажлому из локальных правил может быть присвоена метка правила. Ссылки на метки правил в настояшем станларте ие определены.

и римечание — Метки правнл. при их наличии. моцт быть использованы лля обозначения правил в рещизаниях. например в локументаиии. сообщениях 06 ошибках и техиических заланиях. Присвоение меток пранилам прелполагается использовать именно лля этой MOTH.

9.2.2.1 Иравиаюо уникальности

В правиле уникальности может быть опрелелено ограничение уникальности для отдельных агрибутов или комбинаций атрибутов. Правила уникальности следуют за ключевым словом ИМОСЕ и опрелеляют или олиночное имя атрибута. или список имен атрибута. Правило. когорюе опрелеляет имя одиночного атрибуга. называемое прюжтым правилом уникальности. устанавливает. что никакие ава экземпляра типа AHI объекта в области значений не лолжны исполь- зовагь гот же самый экземпляр для поименованного атрибута. Правило. которое опрелеляег лва или несколько имен атрибутов, называемое совместным правилом уникальности. опрелеляет. что никакие ава экюмиляра типа ланных объекта не лолжны иметь ту же самую комбинанию экземпляров для поименованных атрибутов.

Примечание — Проверяется эквивалентность а не равенство значений (см.

Синтаксис: 310 unique clause = LU NIQUE unique rule ( unique rule |.

3EL unique rule = | label f referenced attribute (2° referenced attribute } . 266 referenced attribute = attribute ref | qualified attribute .

Правила н ограннчения

Когла явный атрибут. который отмечен как ОРПОМАЕ 1см. 9.2.1.1}. появляется в правиле уникальности. и если при этом атрибут не имеет значения аля конкрегиого эокземилира объекта. правило уникальности ни нарушено. ни утвержлено и. следовательно, экземиляр облекла являет- ся элементом области значений.

Примеры 42 Если объект имел три атрибута. назывниемые а. Би с. мы могли бы получить: ENTITY e: а. Б. с: ИМТЕСЕВ: UNIQUE url sa: wr sb: шЗ с: END ENTITY: Yro YO ABA экземпляра объявляемого тина данных объекта не могут иметь олно и тоже значение лля а. В или с.

43 Объект может выглялеть следующим обраюм: ENTITY person name:

last first > STRING: middle STRING:

nickname STRING: END ENTITY:

и может быть использован как:

TITY етрюуее:

as


ГОСТ Р ИСО 10303-11--2000

badge : NUMBER: name . Peron nume,

UNIQUE

url : badge, name: END ENTITY:

В лом примере ава экземпляра объекта регзоп_ваше могли бы иметь тог же самый набор значений для четырех атрибутов. В случае служашего (етроуее). олнако. имеется требование. чтобы признак (Баёре} и имя {паше) вместе были уникальными. Таким образом. два экземпляра етрюуее могут иметь го же самое значение или Бадре, или ваше. Олнако никакие лва экземпляра employee не могут иметь олинаковых эк Бадре и паше вместе. так как ла комбинаиия экземпляров должна быть уникальна (см. 9.6 для мегола уникальности значения описываемого агрибута)-

Правила области значений ограничивают зшачения отдельных атрибугов или комбинаций агрибутов лля каждого экземпляра объекта. Все правила области значений следуюг а киочевым словом \МНЕВЕ.

Синтаксис:

318 where clause = WHERE domain rule (2° | domain rule

Правила и ограничения

а) Каждому выражению правила области значений должно присваивагься логическое (ТВОЕ. ЕАЁЗЕ или или неопределенное {?) значение.

Ь) Каждое выражение правила области значений должно включать ссылку на ЗЕЁЕ или атрибуты. объявленные внутри объекта или люфюго из его супертинов.

с} Появление слова ЗЕЕ должно озмачать ссылку на окюмоляр объянляемого объекта.

4) Правило области значений булет верным. когла выражению присвоено значение TREE. будет нарушенным, когла выражению присвоено значение и будет ни верным. ни нару- шенным, если выражению присвоено неопределенное (?) значение или значение ИМКХОММ.

©) Для того чтобы экземпляр объекта был верным (в области значений) не лоажно быть нарушено ни олного правила.

Пример 4 Даля объекти unit_vector требуется. чтобы ллина вектора была точно равна единице. Это ограничение можег быть определено слелуюшим образюм:

ENTITY unit sector: a. bee: REAL, WHERE length |: aee2 + bee? + Coo? = 1.0: D ENTITY:

Необязательные атрибуты в правнлах области значений

Правило области значений. которое содержит необязательный атрибут. лолжно грактонагься следующим образюм.

Правила и ограничения

а) Когла атрибут имеет значение. правилу области значении должно быть присвоено значение как любому другому пранилу области значений.

Ь) Когла атрибут не имеет заачения, неопрелеленное {?) значение используется как значение атрибута при определении выражения правила области значении. Значения выражений, солержащих неопределенное (2) значение, принимаются в соответстиии с разделом 12.

Пример 4% — Рассмотрим варнант примера 44. ENTITY unit vector:

а. : REAL: с : OPTIONAL REAL: WHERE

4


FOCT P HCO 10303-11—2000

length |: ase? + bee? + cee? = 1.0: END ENTITY:

Целью правила области значении является обеспечение того. чтобы объект unit vector единичным. Олнако когла с имеет пеопрелеленное {?) значение. правилу области значений веесгла присваивается значение СМКМОМ’Х. независимо от значений а и Ъ.

Стандартная функция сем. 15.1%) может быть использована для обеспечения прнемле - мого значения. когда необязательный атрибут имеег неопрелелениное () значение. Когла необязательный атрибут имест значение. функния МУ возврашаег данное значение: в противоположном случае она возврашает заменякицее значение.

ENTITY ций уссюг: а. Б : КЕАЕ: с : ОРПОМЛЕ REAL; WHERE length |: + bee? + NVL(c. = 10: D ENTITY: 9.2.3 Полтины и супертипы Язык ЕХРКЕЗУ допускает определение объектов как подтипов аругих объектов, гле подгии объекта является конкретизациеи его супертипа. Тем самым устанавливается наслелование {например. поллипусупертин) отношения межлу объектами, в которых полтип наслелует свойства (например. атрибуты и ограничения) соответствующего супертина. Послеловательные отношения полтипусупертий устанавливаюг граф наслелования. в котором кажлый экземпаяр полтипа является экжмпляром его супертипа(ов).

Граф наслелования. установленный опюшениями поллип/супертин. лолжен быть ацикличе-

Объявление объекта, которое полностью определяет все важные свойства данного объекта. объявляет простой тип данных объекта. Объявление объекта. которое устанавливает наслелуемые отношения с супертипами. объявляет сложный тип ланных объекта. Сложный тип ланных объекга внутри графа наследования также использует характеристики соотнетелвующего супертина(ов). Сложный тип ланных объекла может иметь лополнигельные характеристики. ис солержашиеся внутри супертипа(ов).

Слелующшие факты относятся к отношениям полтип/супертин. Эти факты ссылаются па граф полтии/супертии. Граф полгип/супертип является многомерным направленным ациклическим графом. в котором узлы прелсгавляют типы объекта. а связи представляют отношения полтипа/супертила. Следующие за ОЕ связи ведут к супертипам, тогда как следующие за УИРЕВТУРЕ ОЕ связи ведут к подтипам.

Снитаксис:

294 subsuper = | supertype. constraint [| [ subtype declaration |.

297 supentype constraint = abstract: supertype declaration | supertype rule.

1536 abstract supertype declaration = ABSTRACT SUPERTYPE Jfsubtype constraint | . 295 subtype constraint = OF supertype expression ©)

298 supertype expression = supertype factor {| ANDOR supenype factor } .

299 supertype factor = supertype term { AND supertype tenn } .

301 supertype term = entity ret pone of | “Co supertype expression

250 one of = ONEOF supertype eapression [°° supertype expression. |) 300 supentype nile = SUPERTYPE subtype constraint .

Правила и ограничения

а} Разлел супертипа (при сго наличии) должен презшествовать разлелу полтица {при его наличии).

by Подтии может иметь более олного супертипа.

Супертий можег иметь более олного полтина.

4) Супертип может сам быгь полтипом олного или нескольких пругих типов объекта. То есть ветви в графе полтип/супертии могут пересекать несколько у лов.

е) Отношение полтилусупертио должно быть транзитивным. То сесть. если А является полтипом В. а В является полтипом С. то А является полтипом С. Объекты. которые янляются су-

W


ГОСТ Р ИСО 10303-11--2000

пертипами конкретного типа объекта, должны быть объектами, лля которых возможно пересечение связей. начиная с типа объекта и перечиеленых после ЗИВТУРЕ OF.

В} Полтип не должен быть супертипом любого типа в списке всех его супертипов. то сеть граф полтип;супертип являегся апиклическим.

9.2.3.1 Определение подтинов

Обьект является полтипом. если он содержит объявление ЗЫВТУРЕ. Объявление полтипа лолжно опрелелять весь (все) непосрелелненный(е)} супертины) объекта.

296 subtype declaration = SUBTYPE OF ‘(entity ref | `` еп ref} >

9.2.3.2 Определение супертипов Обьект может проявииюя как супертии посреастном явного или неяиного определения. Облект явно определяется как супертип, если в нем солержится объявление УОРЕКТУРЕ и неявно, если он назван в объявлении подтипа по краиней мере одного другого объевта. Синтаксис: 297 supenype constraint = abstract: supertype declaration | supertype 156 abstract, supertype declaration = ABSTRACT SUPERTY?PE [ subtype constraint | - 295 subtype constraint = OF °C supenype expression *) 298 supenype expression = supertype factor | ANDOR supertype fictor |.

299 supertype factor = supertype term | AND supertype term } .

300 supertype term = entity ref} one of | Co supertype expression

250 one of = ONEOF supertype expression | supertype expression | oP. 300 supertype nile = SUPERTYPE subtype constraint .

Правила и ограничения Все полтипы. упоминаемые в выражении супертипа. должны содержать объявление подгипа. которое определяет ланный объект как супертип.

Пр имер 46 Нечетные числа являютея поллипом целых чисел. слеловательно. целые YMCA являются супертипом нечетных чисел.

ENTITY integer number: val. | INTEGER:

END ENTITY:

ENTITY odd) number

SUBTYPE OF ¢integer number): WHERE

not even: ODD(Qah:

END ENTITY:

9.2.3.2 ampudyma

Илентификаторы атрибуга в BHYTPH OG.1aCTH (CML разлел 10). Таким образом. полтий наследуег все атрибуты данного супертипа. Это позволяет нодтинам определять ограничения или свои собственные атрибуты с использованием унаслеловинного атрибута. Если полтий имеет несколько супертинов, то поллип наследует вес атрибуты из соответствующих супертипов. Эго называется составным паслелованием.

Правила и ограничения

Объект не лолжен объявлять атрибут с таким же именем. как у атрибута. унаследованного ог олного из супертипов. если ой не переобъявлясг унаследованный атрибут {см. 9.2.3.4).

Когда полтий нзслелует атрибуты из двух супертинов, являкиинхея непересекаюшичися. возможно. чго в них есть различные атрибуты, имеющие одинаковый илентификатор атрибута. Неолнозначность в паименовании должна быть разрешена путем прибавления к илентификигору имени супертипа объект. из которого унаследован кажлый из атрибутов.

Пример 47 В ааином примере показано. как объект е!2 наследует лва атрибута. названные айг. а лля того, чтобы определить. какой из анух атрибутов булет ограниченным. к его имени прибаваяется префикс.


FOCT P HCO 10303-11—2000

ENTITY ek

atte: REAL: END ENTITY: ENTITY e2:

attr: BINARY:

END ENTITY:

ENTITY el2 SUBTYPE OF (el.e2),

WHERE positive > SELF chattr & 0.0: -- all Kak OOBABIEHO Bel D ENTITY:

Подтип может наследовать гот же самый атрибуг из различных супертинов. которые в свою очерель унаследовали его из одного супертипа. Это называется повторным наследованием. В этом случае подтии насалелует атрибуг только олин раз, то есть имеется только олно значение этого атрибута в экземпляре этого типа ланных объекта.

9.2.3.4 Переобъявление атрибута

Атрибут. объявленный в супертипе. может быть переобъявлен в полгипе. Атрибут остается в супертиле, но рацешенная область значений лля этого атрибута заластся переобъявлением. заланным в полтипе. Первоначальное объявление может быть изменено гремя основными способами:

-тий ланвых атрибута может быть изменен дая конкретизации первоначального типа занных (ем. 9.2.6):

Пример 3% Атрибут типа ланных МИМВЕК может быть изменен на тип данных И\- ТЕСЕК или КЕАГ: - необязательный атрибут в супертипе в подтипе может быть заменен обязательным: - явный атрибут в супертипе в поатипе может быть заменеи опрелеленным атрибутом. Синтаксис: 262 qualified attnbute = SELF group qualifier attribute

219 proup. qualifier =") entity ref. 169 attribute qualifier = "2° attribute ref.

Правила и ограничения

2) Атрибут. переобъявленный в полтице. аолжен быть конкрегизацией атрибута с тем же именем в супертице.

b>) Имя переобъявленного атрибута лолжно быть залано се использованием синтаксиса qualified_attribute.

с) Если атрибут супертипа переобъявлен в авух ие взаимно исключающих JK MIT ляр. солержашии оба полтипа. булег иметь елинственное значение для этого атрибута. которое является лопустимым для обоих переобъявлений. Реализация синтаксического анализатора языка ЕХРКЕУУ. которая претенлует на соответствие уровню 4. должна быть протестирована на наличие противоречий в персобъявлениях полтипов. которые могут сосуществовать в олном экземпляре.

Примеры

49 В иекоторых геометрических системах используют коорлинаты се плавающей точкой, в то время как в других работают в пелочиесленном коорлинатном пространстве.

ENTITY point.

x: NUMBER:

у: МИМВЕК: END ENTITY: ENTITY integer point

32


ГОСТ Р ИСО 10303-11--2000

SUBTYPE OF (point).

SELF pointy : INTEGER:

SELF point. : INTEGER: END ENTITY:

50 Этот пример показывает изменение олеменгов в сборном (агрегатном) типе данных в пелях указания их уникальности. уменьшения числа элементов в сборном гипе ланных и замены необя зательного атрибута обязаельным.

ENTITY super.

thines LIST [3°] OF thing: items BAG [0:°f OF widget: may be > OPTIONAL stuff: END ENTITY: ENTITY sub

SUBTYPE OF (super) :

SELF | LIST [3:°] OF UNIQUE thing:

SELF ‘super.items > SET [1:10] OF widget:

SELF \super.may be > stutl:

END ENTITY:

51 . В слелуюшем примере кру опрелелен иентром. осью и ралиусом. Варианг круга онрелелен центром и двумя точками. через которые он прохолиг. Эти три точки представляют занные. которыми опрелелен эгот тии круга. В лополнение к им ланным необлодимо описать и пругие важные черты ралнус н окь. Это выполияется переобъявлением их как вычисляемых атрибутов путем залания зиачений их выражениям.

ЕИХСТЮМ р2: рот: (* Найти крагчайшее расстояние межлу лвумя точками *) END FUNCTION: FUNCTION normalt(pl. p2. point) : vector: (“Вычислить нормаль к плоскости, заланной тремя точками на END FUNCTION: ENTITY circle:

centre: point: ridius: REAL: аль г уеог; DERIVE area > REAL := Pleradius¢+2.:

END ENTITY:

ENTITY circte by points SUBTYPE OF (circle): p2: point: p32: point;

DERIVE SELF \circle.radius =. REAL = distanee(centre, p2): SELF axis _ vector = normal centre, p2, p3): WHERE Not comeident i (centre <> p2) AND

(p2 <> p3) AND (p3 <> centr): is circle : distanee(centre, p3) = distanee(centre, p2): END ENTITY: В подтипе три определяющие точки (сешге, р2. и р3) являются явными атрибутами. в то время как гафи$ (ралиус). 2х5 (осьри агеа (плошаль) являются вычисляемыми атрибутами. Зна-

33


FOCT P HCO 10303-11—2000

OTH атрибутов вычисляются с помошью выражения слелующего за операто- POM приеноения. Значения гаёшу и ах получаются посрелетвом вызова функиии: значение агеа вычисляется в строке.

9.2.3.5 Привиао наследования

Кажлое локальное или глобальное правило. применимое к супертилу. применимо и к его полтиимам). Таким образом. поатии наслелует все правила своегобих» Если подтий имеет несколько супертипов. то полтип должен наследовать все правила. ограничивающие супертипы.

Невозможно изменить или улалить ни олно из правил. связаных с полтипом. через правило наследования, но возможно добавить новые правила, которые еше более ограничивают полтии.

Правила и ограничения

'Экжмиляр объекта полжен быть ограничен вееми ограничениями. установленными для Гипов ланных этого объекта. Если ограничения. устаповаенные в двух Фили более) гипах ланных объекта. противоречат друг другу. гогла не сушествует допустимого экземиляра. содержащего эти типы ланных объекта. Реализация синтаксического анализатора языка ЕХРКЕУ$. которая протенлует на соответствие уровню 4, должна быть прогестирована на наличие конфликтующих ограничений в типах ланиых объекта. которые могут сосуществовать в одном экземпляре.

Пример 52 В следующем примере а ргадиме (липломант) является а регзоп (личностью). которая и учит. и учится. Дипломант наследует и атрибуты. и ограничения из супертипов (преподаватель) н (стузент)| вместе с атрибутами и ограничениями из их общего супертини (регзоп). Дипломанту (ргадшже). в отличие от преподавателя (teacher), He позволено пренолавать па курсах для дипломантов.

УСНЕМА 5:

ENTITY person: ss no: INTEGER: born: date:

DERIVE age > INTEGER := years born): UNIQLE unl oss no: END ENTITY: ENTITY teacher SUBTYPE OF (person): teaches : SET {1:7} OF course,

WHERE old : age >= 21: END ENTITY: ENTITY student SUBTYPE OF (person). takes | SET [1:7] OF course: WHERE young . age *= 5, END ENTITY: ENTITY graduate SUBTYPE OF ¢student, teacher).

WHERE limited : NOT (GRAD LEVEL IN teaches): END ENTITY: TYPE coune = ENUMERATION OF (.... GRAD LEVEL. ...),

34


ГОСТ Р ИСО 10303-11--2000

ЕМО ТУРЕ:

END УСНЕМА: -- конец схемы $ п римечание — Если поатий наелелуег ванино проликцжчащие ограничения из супертинов. LO HE

хушествует соответствукииего экземпляра этого иполипа, любой эх емиляр нарушает олно изо!- раничении

9.2.4 Ограничения поатипайсунергипа Экземиляр типа данных объекта. являющийся полтипом. является экземпляром кажлого из его супертипов. Экземпляр типа ланных объекта. явно или неявно объявленный как супертий {ем 9.2.5.2). также может быть к юмпляром одного или нескольких его полтипов (ем. С.2}. Снитаксис: 294 зибъирег = | зирейуре_ сопягаит | [ яймуре десатайоп |. 297 superntype. constraint = abstract. supertype declaration | supertype rule . 156 abstract supertype declaration = ABSTRACT SUPERTYPE [ subtype constraint | 295 subtype constramt = OF “(0 supernype expression ©)

298 supertype expression = supertype factor | ANDOR supertype factor } .

299 supertype. factor = supertype term | AND supertype. term } .

301 supertype term = entity one of | Co supertype expression |)

250 one of = ONEOF ‘(C supertype expression |.) supertype eapression | OV. 300 supertype, nile = SUPERTYPE subtype constraint .

Имеется возможность для установления ограничении, по которым могут бып, реализованы графы полтипов/супертипов. Эти ограничения залаются в супергийе посредством ограничения SUPERTYPE

В приложении В описан формальный подлол к опрелелению возможных комбинаний полтипов/супертипов. экземпляров сушностеи с учетом всех ограничений. которые описаны ниже.

9.2.4. Абетриктные супертипы

Язык ЕХРКЕУУ позволяет объявлять супертипы. которые не прелназначаются аля непосрелственного создания экземпляров. С этой иелью в ограничение супертипа. опрелелякицее тип ланных объекти. должна быть включена фраза АВЗТКАСТ ЗИРЕКТУРЕ. Абстрактныйи супертий не должен быть ограничен созланием экземпляра. связанного голько с одним из полгипов.

и римечание — Эго означаег, что схема. солержашая абстрактный супертип, не ичекиций каких-

либо полтипон, является неполной и нс может быть использована для созлания экземпляров без объявления палтипов в ссылочной схеме.

Пример 54 В транспортной модели транспортное сределво (уе) может быть прелставлено абстрактным супертипом. поскольку все экземпляры этого типа ланных оъюкта должны быть представлены его полтипами (например. наземное. волное транспортное средство и гл.). Тип ланных объекта для транспортного срелства пе лолжен образовывать независимых окемиляров объекта.

ENTITY vehicle

ABSTRACT SUPERTYPE:

END ENTITY: ENTITY land based

SUBTYPE OF (vehicle):

END ENTITY: ENTITY water, based SUBTYPE OF (vehicle):

END ENTITY:

9.2.4.2 ONEOF ONEOF verananiipaet. WTO eniicka ONEOF чающими. Ни аля одного из элементов ие может быть созлан экземпляр с другим элементом из

38


FOCT P HCO 10303-11—2000

данного списка. Кажлый элемент лолжен быть выражением супертина, которое относитея к единственному полгияу типа данных объекта.

Синтаксис: 250 one оГ= ОХЕОЕ ‘С зирепуре ехргезмой | °.’ зирепуре expression | oy. 298 supertype expression = supertype [|АМООК зирепуре } .

299 supertype factor = supertype term {| AND supertype tenn }. 308 supertype term = entity one of | Co supertype expression

Ограничение ОМЕОЕ может комбинироваться с другими ограничениями супертипа. что позволяст описывать сложные ограничения.

Примечание -— На сетественном языке фраза В, с) читастся как: зэкземпляр объекта должен состоять иг одного и голько одного из типон данных объекта — а, Б. с.

Пример 54 Экземпляр сунертипа может быть установлен посрелетвом опрелеления экземпляра только одного нзего подтипов. Данное ограничение объявляется с использованием ограничения ОМЕОРГ. Сушествуют различные вилы зомашних животных (рей. но пи одно из KOH- кретных домашних животных не может олновременно принадлежать к двум и более вилам.

ENTITY pet ABSTRACT SUPERTYPE OF (ONEOF (cat, rabbit, doe. ead Dy

NaMe 2 pet name:

END ENTITY: ENTITY cat

SUBTYPE OF (pet): END ENTITY: ENTITY rabbit

SUBTYPE OF (pet): END ENTITY: ENTITY dog

SUBTYPE OF (pet: END ENTITY:

9.2.4.2 ANDOR

Если полтипы не являются взаимоисключаюнними, это означаег, что JRIOMILIAp может быть олновременно экземпляром более чем одного из его полтипов. отношение межлу полтипами должно быть определено ограничением АХРООК.

Примечание -- На есихолвенном языке фраза В АМООВК с чигастся как: «экземиляр должен солер- жать типы В игили с»

Пример 55 Личность грегоп) может быть одновременно и сотрулииком (етроуее). и студентом (моде) изи только олним из них. ENTITY person

SUL PERTYPE OF (employee ANDOR student):

END ENTITY:

ENTITY emplovee SUBTYPE OF (person),

END ENTITY:

36


ГОСТ Р ИСО 10303-11-2000

ENTITY student

SUBTYPE OF (person). END ENTITY:

AND

Если экземпляры супертипа классифицируются в иесколько групп вмимоисключающих полтипов (то ссть несколько группировок ОМЕОР,. указывающих. что для полной классификацни супертина используется несколько признаков. отношение между группами должно быть опрелелено с использованием ограничения АМО. Ограничение AND используется только лая соогнетслвуюшщих группировок. определенных другими ограничениями полтип/супертип.

Примечание — На сстественном языке раза 6 АМО с читастся как: ээкаемиляр лолжен олноврс- менно состоять из типов Би с.

Пример 56 — Личность (регоп) может быть классифинирована как лицо мужского (те) или женского (етаю) пола. или как гражлании ланного (скыей} или иностранного (айеп} госу - ларства.

ENTITY person SL PERTYPE OF (ONEOF(male, female) AND ONEOFCeitizen, alien)). END ENTITY: ENTITY mate SUBTYPE OF (person),

END ENTITY: ENTITY temale SUBTYPE OF (person), END ENTITY: ENTITY citizen SUBTYPE OF (person): END ENTITY: ENTITY alien SUBTYPE OF (pernon): END ENTITY: 9.2.4.5 Приоритет операторов супертипов Присвоение значений выражениям суперлипов производится слева направо. высший ирноритег имеют операторы. выполняемые первыми. В таблице 5 представлены правила приоритет-

ности аля операторов выражений супертипов. Операторы в одной строке имеют равный приоритет. а сгроки упорялочиваются по мере понижения приоритета.

алина У — Приоритет оператора выражения супертииа

Пример 57 Слелующие два выражения неэквивалентиы: ENTITY SUPERTYPE OF (a ANDOR b AND 6); END ENTITY:

12 ot


FOCT P HCO 10303-11—2000

ENTITY \ SUPERTYPE OF ((a ANDOR bh) АХО Сс): END ENTITY:

9.2.4.6 Огриничения между NO

Если в OGLEKTA He HHKGAOFO cynepTHna, (IPH их наличии) BD олновременно. то есть как ссли бы все поллишы были бы упомянуты в коиструкпия АМРОК.

В случае ограничения супертинз. которое устанойлено для полмножества полтипов ланного объекта. ограничение лолжио быть установлено для этих поатипов по умолчанию. а лля других полтипов через АМООК.

Пример 58 Модель из примера 55 эквивалентна данной молели. в которой непользу- ются конструкции по умолчанию.

TITY person END ENTITY: ENTITY emplovee SUBTYPE OF (person). END_ ENTITY: ENTITY student SUBTYPE OF (person).

END ENTITY:

9.2.5 Неявные объявления

Когла объявляется объект. одновременно с этим неявным обризюм объявляется конструктор (сопыгисюй. Илеитификатор конструктора такой же как и иленгификатор объекта и вилимость объявления конструктора гакая же. как и объявления объекта.

Конструктор после своего вызова должен возврашить в точку вызова частное значение сложного объекта лля ланного типа ланных объекта. Кажлый атрибут этого частного значения сложного объекта задается фактическим параметром. перелаваемым в вызюв конструктора. если фактический парамегр экюмпляром объекта, а данный экземпляр объекта играет роль. описываемую атрибутом в частном значении сложного объекта. Конструктору лолжны перелаваться только те атрибуты. которые явно определены в объянлении конкретного объекта.

Синтаксис:

[95 entity constructor = entity Ре‘ [| expression | eapression } [oy .

Кола созлается экемиляр сложного объекта OGLEKTA, B rpadde полтин/супертио). конструкторы аля KAACLOTO RKROMNOLICHTA помошью оператора | | (см. 12.10).

Правила ин ограннчения

а} Конструктор должен иметь один формальный параметр лля каждого явного агрибуга. объявленного в соотвегетвукиием типе ланиых объекта. Эгим не охватываются атрибугы. наслелуемые от супертипов и переобъявляемые в этом типе ланных объекта.

Ь) Порялок формальных параметров лолжен соответствовать порядку объявления явных атрибутов в объекте.

с) Параметрический тип данных аля каждого формального параметра должен быть иденгичен типу ланных соотнетствующего атрибута.

4) Если объект не имеет явных атрибутов. конструктору перслается пустой список параметров (то есть круглые скобки должны присутствовать всегла).

Примечание — Это отличается от явно объявленных функции.

Необя тельным (ОРПОМАЁЬ) атрибутам при нпеявном вызове конструктора могуг ири-

сванваться неопределенные (?р значения. Это означает, что явное значение таким атрибутам не присвоено.


ГОСТ Р ИСО 10303-11--2000

Юй Если в экемиляре сложного объекта иместея полгий. содержащий вычисляемые атрибуты. переобъявленные из явных атрибутов в супертипе. конструктору супертипа лолжны быть заланы значения для этих переопределенных агрибутов. Эти значения игнорируются в вычисляе- MOM шачении.

Пример 59 Допустим следующее объявление объекла. ENTITY point:

2: REAL: END ENTITY: неявно объявленный конструктор этого объекта может быть таким: ЕИУСТОМ рошицх.уи : КЕАЁ) ‚роте

конструктор может испольюваться для присвоения значении экемпляру лого липа ланных объ- секта: CONSTANT origin: point >= point(0.0, 0.0. 0.0); END CONSTANT:

9.2.6 Конкрегизания (спениализания}

Коинкретизация (спепиализания) является наиболее ограниченной формоин исходного объявления. Следующие случаи являются определенными конкретизациями:

- объект-полтип является конкретизацией лююого из его супертилов; тины ГУТЕСЕК и ВЕАЁ яиляются двумя конкретизациями типа МИМВЕК: THA INTEGER является конкретизшией типа REAL: тип ВООБЕЛУ является конкретизаиией THA LOGICAL: выражение 145Т ОЕ СМЮЧЕ Нем является конкретизацией выражения ЫУТ ОЕ item: выражение АККАХ ОЕ УМЮОЕ Иет являстся конкретизацией выражения ARRAY OF item: выражение АККАУ ОЕ Нет являстся конкретизаниен выражения АВКАУ ОЕ ОРТЮМАЕ

item:

- выражение SET OF item vnisetes ae BAG OF item:

- лопусгим. что сокрашение АСС обозначает олин из типов: АККАУ. ВАС. УТ или ЗЕТ. тогла выражение АСС ОЕ Кем является конкретизацией выражения АСС OF original npit vcao- вии. что Нем является конкретизацией

- лопустим. что сокращение АСС обозначает олин из гипов: ВАС. ШЗТ или ЗЕТ. тогла вы- ражение АСС [В : {| является конкретизанией выражения АСС |: и] при условии, что В ли fsh@sunfersa

- лопусгим. что сокрашение ВЗК обозначает олин из типов данных: ВИМАВУ. ЗТВЕХО или ВЕЛ. тогла выражение ВВ (евр) являстся конкретизанией ВУВ:

- выражение ВВ (5Поге) яплястея конкретимииеи ВЗВ (Юп2) при условии. что мень- ше. чем Юй:

- тип ВЕХАВУ. использующий в определении ключевое слово ХЕО. является конкретиза- ven Tuna BINARY переменной аланы:

- тип УТВГХО. использующий в определении ключевое слово ЫХЕО. является конкретизаиней тнпа УТЕИМО переменной длины:

- определенный тип ланных является конкрегизацией исходного типа данных. используемого лля объявления опрелеленного типа ланных.

9.3 Схема

Объявление определяет общую область лействия аля множества ванчосвя анных объявлении объектов и лругих типов ланных.

Пример 60 Геометрия (Осотеу) может быть именем схемы. солержашей объявления точек, кривых. понерхностей и лругих. связанных е ними, типов ланных.

Объявления могут появляться в объявлении схемы в произвольном порялке. Объявления. слеланные в одной схеме. могут стать видимыми в области действия другой схемы посредством определения интерфейса. описанного в разлеле 11.


FOCT P HCO 10303-11—2000

Синтаксис: 281 deel = SCHEMA schema id ‘2’ schema body END УСНЕМА ':.

280 schema body = } interface specification | [ constant dect |

{ declaration rule deel } - 228 interface specification = reference clause | use clause . 159 declaration = entity deel | function deel | procedure decl | type dect .

9.4 Константа

Объявиение константы используется лля объявления поименованных копстант. Областью действия илентификатора константы должна быть функция. проиелура. правило или схема. в которых встречается объявление константы. Поименованная константа. появляющаяся в объявленин СОМУТАМТ. лолжна иметь явную начальную загрузку (иницизлизанию). зиачение которой появляется в резульгате вычисления выражения. Поименованная константа можег появляться в объявлении лругой поименованной константы.

Синтаксис: [85 constant. deel = CONSTANT constant body { constant body | END СОМХУТАМТ оо.

[84 constant body = constant id base wpe expression © 17, base type = aggregation types | simple types named types .

Правила и ограничения

а) Зиачение константы не должно изменяться после начальной загрузки.

Ь)› Любое появление поименованной константы вне прелелов объявления константы равнозначно появлению начального значения константы.

с) Выражение лолжно возврашать значение установленного основного типа.

Пример 61 Слелующие объявления констанг являются правильными:

CONSTANT

thousand: NUMBER := ЦЮ:

million : NUMBER := thousand¢+?:

ofizin ср = poind0.0, 0.0, 0.0): END CONSTANT:

9.5 Алгоритмы

Алгоритм является последовалельностью операгоров. выполнение которых приволит к иекоторому требуемому конечному состоянию. Сушествуюг лва вила алгоритмов. которые могут быть определены как функции и процедуры.

Формальные параметры опрелеляют исходные данные для алгоритма. В момент вызова алгоритма фактические параметры обеспечивают фактические зиачения или экземпляры. Фактические параметры должны быть согласованы с формальными параметрами по типу. порядку и количеству (числу

При необходимости локальных объявлении в алгоритме. они залаютея непосредственно м заголовком алгоритма. Такими объяплениями могут быть типы. локальные переменные. другие алгоритмы и т.д.

За локальными объявлениями следует гело алгоритма.

9.5.1 Функция

Функция янлястся алгоригмом, который обрабатывает параметры и выдает единственное розультирукииее значение установлениого типа данных. При вызове функиии (см. 12.8) в выражении вычисляется результируюшее значение в точке вызова.

Функиия лолжна прерываться (завершаться) при выполнении операторя КЕТИКХ. Значение выражения. связанное с оператором КЕТСКМ. определяется результатом. полученным при вызове функции.

Синтаксис:

208 function d = function head | algorithm head [ stmt ( stmt} END FUNCTION (2.

eel 209 function head = FUNCTION function id [| °C formal parameter {2 formal parameter } (VJ 0: parameter type

206 formal parameter = parameter id { °. parameter id} (2 parameter type . 253 parameter туре = generalized types | named types | simple. types .

163 algorithm head = { declaration} | constant deel [| [| focal deel].

159 declaration = entity deel | function, deel | procedure. dec! | type deel .

4


ГОСТ Р ИСО 10303-11—-2000

Правила и ограничения

а) В теле функции должен быть опрелелен оператор для кажлой из возможных ветвей пронесса обработки. выбирземых при обрашении к ланной функции.

b>) Кажлый оператор ВЕТИКХ в прелелах функиии лоажен опрелелять выражение. по ко- TOPOMY вычисачется значение, возврашаемое в точку вызова.

с) Выражение. определяемое в кажлом из операторов RETURN, должно быть совместимо по присваиваемому значению с объянленным возврашаемым типом функпий.

4) Функции не имеют побочных Поскольку формальные параметры фуикиции не могут быть определены как УАК. изменения этих параметров внутри функции не отражаются в точке вызова функнии.

в) Функция может изменять локальные переменные или параметры. которые объявлены во внешней области лействия, то есть CCI ланная функция объявлена в заголовке какой-либо функиии (FUNCTION). процедуры вли правила (RULE).

95.2 Процедура

Процедура является алгоритмом. который принимает параметры из точки вызова и обрабатываег их некоторым образом для получения требуемого конечного состояния. Изменения параметров внутри процелуры отражаются в точке вызова только в том случае. сели перел опрелелением формального нараметра стоит ключевое слово УАК (изменяемый).

Синтаксис: 258 procedure decl = procedure head [ algorithm head [ | stmt} END PROCEDURE 259 procedure head = PROCEDURE procedure id [| | WAR J formal parameter

{°o | VAR | formal parameter} yo [or .

206 formal parameter = parameter id | >.) parameter id J °° parameter type . 253 parameter type = generalized types | named types | simple types .

163 algorithm head = | declaration | { constant | [ local deel |.

[89 declaration = entity deel | function deel | procedure decl | type Чес!.

Правила и ограничения

Процедуры могут изменять переменные нли параметры. которые объявлены во виешней области лействия. то есть если данная процелура объявлена в заголовке какой-либо функнии (ЕИМСТЮМ). прошелуры (РКОСЕРИКЕ; или правила (RULE ).

9.5.3 Параметры

Функиия или пронелура могут иметь формальные параметры. Кажлый формальный параметр устанавливает имя и тип параметра. Имя является илентификалором. который лолжен быть уникальным в области действия функиии или пронелуры. Формальный параметр процелуры также может быть объявлен как УАК (изменяемый). чем устанавливается. что сели такои параметр изменяется внутри пропелуры. то изменение распространится и на точку вызова процедуры Параметры. не объявленные как УАК. также могут быть изменены. но такое изменение не булег вилимым после передачи управления в тозку вы юва процедуры.

Синтаксис: 206 formal purameter = parameter id {°° parameter id } parameter type .

253 parameter type = zveneralized types | named pes | simple types .

Пример 62 Следукиние объявления показывают, как могут быть объявлены формаль- ные парамегры.

FUNCTION Чвир. р2: ро}: КЕАЕ: PROCEDURE midpt(pl. p2 . point: VAR result: pointh:

Для обобщения THNOB GLIA (pOpMALIDHbIX параметров и процедур. применяются обобщенные типы (AGGREGATE и GENERIC). Обобщенные сборные (агрегатные) типы данных также могут быть использованы лля обскинения исходных типов ланных, лопустимых для конкрегных сборных (агреглных) типон ланных.

4!


FOCT P HCO 10303-11—2000

9.5.3. дерегатный (соорный) тип данных

Тип ланных АСОКЕСАТЕ является обобщением всех сборных (агрегатных) типов ланных

Korda вызывается пропелура или фуикция, формальный параметр когорой определен как сборный (агрегатный) тип ланных. переланный процелуре или функции фактический параметр полжеи быть олиого иутипов. АККАУ. ВАС. 15Т или УЕТ. Тогда выполняемые действия лолжны зависеть от типа лаиных фактического параметра.

Для обеспечения того. чтобы лва или более переданных параметра имели олинаковый тии даниых или чтобы возврашаемый тип данных был таким же. как у одного из переланных параметров. независимо от переданных фактических гипов ланных (см. 9.5.3.3). могут быть использованы метки типов.

Синтаксис: [6[ aygregate type = AGGREGATE [7s type label | OF parameter type .

306 type label = type label 4 type label, ref’. 253 parameter type = generalized types | named types | simple types .

Правила и ограничения

а) Тип даиных AGGREGATE лолжен использоваться только как тип формального парзметра функции или или в соответствии с правилом (5).

b) Тип ланных АОСКЕСЛТЕ может также использоваться в качестве гипа резульгата функции или типа локальной переменной внутри функции или процедуры. Дая такого применения требуются ссылки на метки типов и необхолимо ссылаться на метки типов. объявленные формальными параметрами (см. 9.5.3.3}.

Пример 63 Данная функция написана аля приема агрегата чисел. Функиия лолжиа возврашать тот же тип. что и у переданного агрегата. солержаший масшгабированные числа.

FUNCTION АССКЕСАТЕ : ОЕ МИМВЕК: scalar: NUMBER) : AGGREGATE : intype OF NUMBER: LOCAL result: AGGREGATE : intype OF NUMBER: END LOCAL:

REPEAT t:= LOINDEX¢input) TO HIINDEX (input):

result{i} scalar © input [if.

END REPEAT:

RETURN(result):

END. FUNCTION:

9.5.3.2 Обыйщенный тип данных

Тип ланных ОЕМЕЕКС является обобщением всех других типов данных.

Когла вызывается пропелура или функция с обобшенным парамегром. переланный фактический параметр может не иметь тип ланных СЕМЕКЕ`. Выполняемые операции зависят от типа ланных фактического параметра.

Аля обеспечения того. чтобы лва или более переланных параметра имели олинаковый тии данных или чтобы возврашаемый тин данных был гаким же. как у одного из переланных парзметров. независимо от переданных фактических гипов ланных (см. 9.5.3.3). могут быть использованы метки типов.

218 peneric type = СЕМЕКЮС | `` бурю label | .

306 type label = tvpe label id type label ref’.

Правила и ограничения

а) Гип данных СЕМЕКС должен использоваться только как тии формального парамегра функции или пронелуры. или в соответствии с правилом (6).

Ь) Тип ланных СЕМЕВЕК` может также использоваться в качестие гипа результата функиии или типа локальной переменной внутри функции или проиелуры. Дая такого применения требу- ются ссылки на метки типов и исобхолимо ссылаться на мегки типов, объявленные формальны- ми параметрами (см. 9.5.3.3).

42


ГОСТ Р ИСО 10303-11—-2000

Пример 64 . В этом примере показана обобшенная функния. когорая склалываег числа или вектора ЕИМСТЮОМ ааа ВС LOCAL иг: МИМВЕК: -- целое или BH УГ: уе:

END LOCAL: IF CNUMBER’ IN TYPEOF(Q@)) AND ( NUMBER’ IN TYPEOF(b)) THEN

пг : = а+Ъ. RETURN(nr): ELSE

IF C THIS, SCHEMA.VECTOR’ IN TYPEQFia)) AND C THIS IN TYPEOF(b)) THEN vector ad + bi, ajo bj. ak + bA): RETURNG(\r): END IF. END IF: ВЕТЫКМ (*): -- если мы получаем неправильные исхолные лайные. гогда Heon- релеленное значение END FUNCTION:

9.5.3.3 Метки типов

Метки типов должны использоваться для установления отношения межлу типом ланных фактического параметра в точке вызова с типами данных других фактических параметров. л1окальных переменных или возврашаемого типа функиии. Метки типов объявляюлся нля типов ланных AGGREGATE uw СЕМЕК!С внутри объявления формального параметра функнии идя пропелуры и на них могут быть даны ссылки типами ланных АСОКЕСАТЕ или СЕМЕВС в объявлении формального параметра. локальной переменной или возврашаемого типа функции.

Синтаксис:

306 type label = type fabel id type label ref’.

Правила и ограничения

а) Первое появление мегки типа в объявлении формального параметра объявляет мегку данного типа. все последукицие появления метки данного типа являются ссылками па первую метку.

Ь) Параметры, перезанные функции или пропелуре. использующей ссылку на метку типа. лолжны быть совместимы с типом ланных переланного параметра. в котором объявлена метка типа.

с) Типы данных локальных переменных и возврашаемых типов функций, которые ссылакугся через метку типа на зип данных параметра. должны быть илентичными типу данных параметри, в котором объявлени метка типа.

Пример 65 В этом примере показано. как метки типов могут использоваться при опроделении функции и проверке совместимости результирующего типа вызываемой фуикции.

ENTITY a: END ENTITY: ENTITY b SUBTYPE OF (a. END ENTITY: ENTITY ¢ SUBTYPE OF (b): END ENTITY: 4


FOCT P HCO 10303-11—2000

FUNCTION test ( pi: GENERIC: СЕХЕМСАЕСЕМЕЮСТ:

...-- объявление ссылка ссылка END FUNCTION,

LOCAL

Vai al= ad

vb -- |] onepatop. a E211 vu le = at. Ibe fel

vach

END LOCAL:

= testy В. ха): -- неверный у_а не совместим с типом В. Хх: = 1654 а. у В). -- неверное присваивание, функция вернет тип а.

В разлеле 15 привелены другие примеры использования меток гипов.

9.5.3.4 Общие агрегатные (сборные? типы данных

Общие сборные (агрегатные) типы данных образуют часть класса типов. называемых обобшенными типами ланных. Они представлякл собой конкретный сборный (агрегатный) тип ланных (ARRAY, BAG. УТ и ЗЕТ) с оклабленными ограничениями. которые обычно налагаются при определении этот сборного ‹агрегатного» типа ланных (то есть репега] 15 буре являстся обобщением List_ type).

Синтаксис: 212 peneral aggregation types = general array type | general bag type | вепег list twpe | general set type . 213 general array type = ARRAY | bound spec J OF [ OPTIONAL | | UNIQUE | parameter type . 176 bound spec = “[' bound 2°.’ bound 2°]

bound } = numene .

bound 2 = numeric expression .

253 parameter type = generalized types | named types | simple types .

214 peneral bag type = BAG [ bound spec | OF parameter type .

215 general fist type = LIST | bound spec f OF [| LUNIQUE J} parameter type - 217 general set wpe = SET | bound spec | OF parameter type .

Когла обшие сборные ‹агрегатные) тины данных непользуются как тип ланных формального параметра. лопускаются слелующие фактические параметры функций и процедур:

- массивы. безотносительно к лиапазюину значений инлексов. Это озмачаег. что в опрелелении формального параметра для масенва не определено Бюипй9д _‹рес.

Примечание — Для того чтобы определить леиствительные границы массива. в алгоритме лолжны исполь функции НИМОЕХ и

- агрегации. у которых исходными типами могут быть СОЕХЕЮС. АСОСКЕСАТЕ или общий сборный (агрегатный) тип ланных.

Пример 66 В этом примере показано. как ЗЕТ может быть записии в объявлении фор- мального параметра: это не может быть описано в объявлении атрибута. поскольку ислолный тип для ЗЕТ не может включать СЕМЕЮКС.

FUNCTION ЕТ [2.3] ОЕ

9.5.4 Локальные переменные

Переменные. локальные по отношению к ланпому алгоритму. объяйляются после ключевого слова ГОСАЁ. Локальная переменная видима только в области лействия апоритма. в котором она объявлена. Локальным переменным могут быть присвоены значения. и оти переменные могут присутствовать в выражениях.

44


ГОСТ Р ИСО 10303-11--2000

Синтаксис: 239 focal deel = LOCAL local variable {| local variable } END LOCAL

240 local variable = variable id {°.’ variable id | °° parameter type

[ .=' expression JL. 253 parameter type = generalized types | named tpes | simple types .

Инициализация (начальная загрузка) локальных переменных

В момент вызова алгоритма псе локальные переменные имеют неопрелеленное (7) значение до тех пор. поки явно не залан инициализатор. Если инициализатор залан. то локальной переменной при вызове алгоритма присваивается начальное значение.

Пример 67 . Переменной присвоено начальное значение 0.0

LOCAL г емшШ : КЕАЁ := 0.0: i oresult:: INTEGER: END LOCAL:

EXISTS(r result) -- TRUE EXISTS гели) -- полразуменается. что приевоенных значении нет

9.6 Правило

Правила позволяют определить ограничения. наклалываемые внутри области действия схемы на один или более типов данных облекта. Локальные правила (то есть правила уникальности ограничений и области значений в объявлении объекта) объявляюг ограничения. налагаемые от- лельню на кажаый экземпляр типа ланных объекта. Объявление КОШЕ позволяет определить ограничения. налагаемые совокуйно на всю область значений типа данных объекта или на эк ляры нескольких гипов данных объекта. Одним из применений КОГЕ является согласованное ограничение значений агрибутов. присутствующих в различных объектах.

При объявлении правила ему присваивается имя и определяется. к каким объектам оно от- носится.

Синтаксис: 277 rule dect = rule Пеад | head | (stmt } where clause END RULE CO. 278 rule head = RULE rule id FOR (( entity ref { oS entity ref} oy ov

163 algorithm head = { declaration } [ constant deel | [ local deel |. 189 declaration = entity dee! | function deel | procedure deel | wpe deel.

правила состоит из локальных объявлений. исполняемых операторов и правил облас- тей значений. Окончательная формулировка правила показывает. лолжно ли быть уловаетворено или нет некоторое глобальное ограничение. Правило оценивается посредством неполнения операторов с послелуюшей оценкой каждого из правил областей значений. Если правило нарушено для набора экземпляров типов ланных объек. перелаиных в качестве параметров. то экемиляры не соответствуют ЕХРКЕ$ У -слеме.

Правила и ограничения

а) Каждое правило области значении должно опрелеляться логическим или неопределенным (7) значением.

Ь) Выражение верно. когла ему присвоено шачение ТКИЕ: выражение неверно. когла ему присвоено значение КАЁУЕ: и оно ни верно. ни неверно. когаа ему присвоено неопределенное (7 значение или мачение ОМКМОМ/М.

с) Правило области зиачений не лолжно быть нарушено лая верного набора экземпляров объектов типов ланных объекта, определенных в заголовке правила.

Пример 6% Следующее правило требует. чтобы в первом и сельмом октантах налолилось равное количество точек.

RULE point match FOR (pointy: LOCAL first, oct . seventh oct: SET OF POINT := [f: -- Touek isee $2.9)

45


FOCT P HCO 10303-11—2000

END LOCAL = QUERY (temp <¢ point | (temp... 2 0) AND (emp.y » 0) AND (temp.z > 0) ). seventh oct = QUERYitemp «+ point | (temp.x © 0) AND {temp.y < 0) AND (temp.z = 0) ): WHERE SIZEOF(fint oct) = SIZEOFtseventh oct. END RULE:

Пример 69 Правило можег быть использовано лля устаповления обшего значения, уникального для атрибутов объекта. ENTITY Ь: aloe: 22:4: adit. UNIQUE url 2 al. a2: END ENTITY:

BOD применяется к экземплярам си @. Слелующее правнло еше более ограничивает основное значение общей уникальности. RULE vu FOR

ENTITY temp:

айс: 42:4: END ENTITY:

LOCAL s: SET OF temp := ||: END LOCAL, REPEAT i := ! TO SIZEOF(b). = as + tempib[t}al. bfij.a2): END REPEAT:

WHERE wr: VALUE UNIQUE(s): END RULE:

Неявное объявление

Внутри КОЁЕ каждая совокупность неявно объявляется как локальная переменная. солер- жашая набор всех экемиляров поименованного объекта в области значении. то есть набор экемиляров объекта. подчиняющилхся данному правилу.

Синтаксис:

254 population = entity. ref.

Правила ин ограннчения Ссылки на конкрегную совокупиость ‘роршайой) могут быть даны только в глобальном правиле. которое содержит ссылку на соответствующий гип данных объекта в заголовке правила.

Пример 70 Рассмотрим саелуюшее объявление: RULE coincident FOR (point): неявное объявление выглялело бы:

LOCAL point . SET OF point: END LOCAL,

46


ГОСТ Р ИСО 10303-11—-2000

10 Область действия и видимость

ЕХРКЕУУ -объявление образует идентификатор. который может быть использован для ссылки на объявленный олемент из других частей ланной схемы Фили из аругих схем). Некоторые конструкции EXPRESS неявпо объявляют элементы языка EXPRESS, присваивая им илентификаторы. В тех областях. и; которых можно ссылаться на иленгификатор объявленного элемента. счигают объявленный элемент вилимым в этой области. Ссылки на элемент могут появляться только там. гле виаимым является его илентификатор. Правила вилимости привелены в 1.2. Подробная информация о ссылках на элементы с использованием их илентификагоров приведена в 12.7.

Некогорые элементы EXPRESS образуют фрагмент (блок) текста. называемый областью лействия элемента. Эта область деиствия ограничинает вилимость илентификаторов. объявленных внутри нее. Области лействия могуг быть вложенными. то есть элемент языка. образующий область лействия. может вхолить в область действия аругого элемента. Сушествуют ограничения. при которых элементы могут появляться в области действия конкретного элемента языка EXPRESS. Эти ограничения. как правило. опрелеляются синтаксисом ЕХРКЕУ$ (ем. приложение А).

Для кажлотго из элементов, указанных н таблиие 9, в послелуюших полразлелах установлены границы образованной области действия. при се наличии, и видимость объявленного илентификатора как в обших терминах. так и с конкретными леталями.

`аблина 9 — Области действия и и; лентификаторы определенных элементов

I ОИ ЕС ОО ПО ООО мии То оо ПСО ООО ПО и [parameter [query expression [repeat statement pete МООИ емо ета ОО ООС ПО [type tube [vara

ue янлястся неявно объявленная переменная в области действия объянления. с Переменная объявляется неявно только тоглз. когла установлен инкрементный контраль.

*' Неннное объявление переменнои проволится для всех объектов. когорые ограничены правилом

10.1 Правила областей действия

Ниже привезены общие правила. применяемые ко всем формам областей леиствия. сущест- вуюшим в ЕХРКЕЗУ: список олеменгов языка. образующих области действия. приведен в таблице 9.

Правила и ограннчения

а} Все объявления должны присутствовать в пределах области действия.

b>) В пределах слинетвенной области ленствия иленификатор может быть объявлен или явно импортирован (см. разлел £1) только олиин раз. Илентификатор объекта или типа. явно импортированный в данную схему более олного раза разными способами. с использованием олного и того же исходного объявления, учитывается только олин раз.

47


FOCT P HCO 10303-11—2000

с} Области леиствия лолжны быть вложены корректно. те есть перекрытие областей лейст- вия не лопускается. (Это определено синтаксисом языка).

В настояшем станларте максимально лопустимая глубина вложения областей действия He усгановлена. но разрабогчики синтаксических анализаторов яияка ЕХРКЕ%У могут установить максимальную глубину вложения областей лействия.

10.2 Правила видимости

Ниже привелены правила вилимости илентификаторов. Список элементов языка ЕХРКЕЗ5. объявляющих илентификаторы, привелен в таблице 9. Правила вилимости илентификаторов поименованных тинов данных несколько отличаются от правил лля других илентификаторов. эти отличия описаны в 10.2.2.

10.2. Общие правила видимости

Слелуюншие общие правила применимы ко веем илентификаторим. кроме илентификаторов поименованных типов данных, на которые правило (9) не распространяется.

Правнла и ограннчения

а) Идентификатор вилен в тои области действия. в которой он объявлен. Эта область лействия называется локальной областью лействия иленгификатори.

bp) Если илентификатр вилим в ланнои области действия. он также вилим во всех облис- тях лействия. определенных внутри ланной области в соответствии с правилом 44).

Идентификатор не вилим в любой области лейсзвия вне его локальной области лейсгния в соответствии с правилом (1).

4} Когда идентификатор ›. видимый в области лействия Р. переобъявлен в некоторой внутренней области действия О. вложенной в Р, в области действия О и в любых областях лейст- вия, объявленных в О. булет виден только илентификагор г объявленный в области действия 0. Идентификатор г. объявленный в области действия Р. является вилимым в области действия Ри в любых внугреиних областях лействия. которые не переобъявляют 2.

с} Считается. что встроенные константы, функции. пронедуры и типы языка ЕХРКЕУУ объявлены в виртуальной универсальной области деиствия. Вее схемы являются вложенными в эту область лействия. Идентификаторы. относяшиеся к встроенным константам. функниям. процелурам. типам языка ЕХРКЕУУ и схемам, вилимы во веех областях действия. опрелеленных в языке ЕХРКЕЗ5.

В Идентификаторы перечисляемых элементов. объявленные в области действия опрелеленного типа ланных. виаимы в слелующей внешней области действия. за исключением случая. когла слелующая внешняя область лействия солержит объявление гого же илентификатора лля некоторого другого элемента.

И римечание — Если слелующая внешняя область деиствия COLIC PART объявление того же илентификатора. перечисляемые элементы аолупными, но к ним лобавлястся илентификатор апреле -

ленного типа данных (см. 12.$.2 в} Объявления из олнойи схемы могут быть видимыми лля элементов другой схемы через опрелеление (спецификацию) ннзерфейса (см. разлел 11). Пример 71 - В следующей схеме показаны примеры илентификаторов и ссылок на них в соотнетствии с выше привелениыми правилами. SCHEMA example: CONSTANT bo INTEGER :=1: ¢: BOOLEAN TRUE: END CONSTANT, TYPE enum = ENUMERATION OF (Ce. fg: END TYPE: ENTITY еп as INTEGER;

WHERE wrbia > Of -- выполняется правило (а): а вилим в локальной области действия аз ор: -- выполняегся правило (6): В видим из внешней области лействия

END ENTITY: 4%


ГОСТ Р ИСО 10303-11—2000

ENTITY спиц 2:

с: КЕАЬ: -- выполняется правило {с}: злесь консгиита © невилима END ENTITY, ENTITY d:

attrl : INTEGER:

attr2 enum:

WHERE 4: -- выполняется правило (9): функиия ODD Be wie мг гаи? ес се; -- выполняется правило {е):е вилим вне области действия. -- определенной типом евит END ENTITY:

END SCHEMA:

10.2.2 Правила видимости идентификаторов понменованных типов aU bx

Илентификаторы поименованных типов данных подчиняются гем же правилам видимости. что и прочие идентификаторы. за олним исключением. Этим исключением является правило вилимости (4). Идентификатор облекта или определенного типа данных. объявленный в области действия Р, остается видимым во внупенией области действия О. даже если он переопрелеляется в области действия О. тем самым обеспечивается, что:

и} область лейслвия О опрелеляется объявлением объекта. а илентификатор г объявляется как атрибут в ланной области, или

Ь) область лействия О опрелелястсея объявлением функиии. процедуры или правила. а нлентификатор г объявляется как формальный параметр или переменная н данной области.

Пример 72 В объекте ей Шу! 4 относится как к типу ланных объекта, так и к атрибугу. SCHEMA example,

ENTITY ds attrl : REAL: END ENTITY:

ENTITY entity Ч: 9: -- Ф в ланнои области лействия является и объектом и атрибутом END ENTITY: END SCHEMA,

10.3 Явные правила для элементов

В этом разделе лается более полробное описание того. как общие правила областей лейсгвия и вилимости применяются к различным элементам языка ЕХРКЕЗ$.

10.3.1 Оператор персименования щетей!)

Опрелеление оператора ЛЫЛУ (переименования) см. в 13.2.

Видимость. Илентификатор. исявно объявленный в операторе переименования, является вилимым в области лейслния. опреаеленной оператором переименования.

Область действня. Оператор переименования определяет новую область действия. Эга область лействия простирается ог ключевого слова до ключевого слова ЕХО ЛЫЛ$. когорое завершаег ланный оператор переименования.

Объявления. Следующие элементы яиыка ЕХРКЕУУ могут объявляться илентификаторами в области действия оператора переименования:

- оператор переименования:

- выражение запроса:

- оператор цикла.

10.3.2 Атрибут (аш ие)

Видимость. Илентификатор атрибута является вилимым в области леистния объекта, в когорон он объявлен. и в областях лействия всех полгипов ланного объекта.

10.3.3 Константа (сопмай}

Видимость. Илентификатор константы является видимым в области лействия функции. пронелуры. правила или схемы. в которой он объявлен.

49


FOCT P HCO 10303-11—2000

19.3.4 Элеменг перечисления (епотегацой item)

Вилимость. Идентификатор элемента перечисления является вилимым в области ленствия функции. проиелуры. правила или схемы, в которой объявлен его тип. Это являегся исключением из правила видимости 19.2.И. Идентификатор не лолжен объявляться с любым другим предназначением в ланной области действия. а исключением объявления лругого перечисляемого типа данных в тои же области действия. Если олин и тог же идентификатор авумя перечисляемы- ми гинами данных как элемент перечисления. то при ссылке на элемент перечисления следует лобавляль илентификатор типа данных для устранения неолнозначности ссылки (ем. 8.4.1).

10.3.5 Объект (entity)

Видимость. Илентификатор объекта являегся вилимым в области - дуры. правила или схемы. в которои объявлен его тип. Идентификатор объекта остается вилимым при условиях. определенных 109.2.2, во внутренних областях лействия. в которых переобъявлен ланный идентификатор.

Область действия. Объявление объекта определяет новую область действия. Данная область действия простирается от ключевого слова ЕМТГГУ ло ключевого слова ЕМО ЕМТИТУ. которое завершает данное объявление объекта. Агрибугы. объявленные в супертине объекта. являются вилимыми в объекте полтипа за счет наслелования.

п римечание — Область действия объекта полтипа не считается вложенной в офласть асиствия супертипа.

Объявления. Слелуюшие элементы языка EXPRESS могуг объянлялься илентификаторами в области действия объявления объекта:

- атрибугы явные. вычисляемые и инверсные }.

- метка правила (правил уникальности и областеи значении):

- выражение мпроса (внутри вычисляемых агрибутон и правил областей значении).

Пример 73 Идентификаторы атрибута Бай в лвух объектах не конфликтуют. поскольку они объявлены в разных областях действия.

ENTITY entity], aatt. INTEGER: batt: INTEGER: END ENTITY:

ENTITY entity2:

a Е

batt. INTEGER: END ENTITY:

Пример 74 Следующая спецификания поскольку идентификатор атрибута аа п области действия объекта Шера! олповременно и наследуется. и объявляется (см. 9.2.3.3). Метки правила 16 в двух объектах не конфликлуки. поскольку они объявлены в разных областях лейсания: верный экземпляр объекта Шераигнорируя ошибку с атрибугом авИ. подчиняется обоим правилам областей значений.

ENTITY may be ok; quantity: REAL: aatt : REAL:

WHERE lab: quantity 2= 0.0:

END ENTITY:

ENTITY Шева

SUBTYPE OF (may be ok):

aa. INTEGER:

batt: INTEGER:

WHERE lab : batt < 0:

END ENTITY:

4


ГОСТ Р ИСО 10303-11—-2000

14.3.6 Функция (function)

Вилимость. Идентификатор функиии является вилимым в области денствия функини, пронелуры. правила или схемы. в когорой он объявлен.

Область лействия. Объявление функиии определяет новую область лействия. та область действия простирается от кночевого слова НКОМСТЮ\Х до кнючевого слова ЕМО FUNCTION, завершаюшего объянление данной фупкции.

Объявлення. Следующие элементы языка EXPRESS могут объявляться илентификаторами в области ленсгвия объявления функции:

- оператор переименования:

- константа: объект: перечисление: функция. параметр: процедура: выражение запроса: оператор возврата:

- THE, - мегка тина; - переменная.

Пример 75 Слелуюшие определения неверны. поскольку илентификатор формального параметра рагт используется олновременно и как идентификатор локальной переменной. FUNCTION ШеваКрагт : КЕЛЬ) : LOGICAL:

LOCAL

parm : STRING:

END LOCAL:

END FUNCTION:

10.3.7 Mapamerp (parameter)

параметра является вилимым в области функиии или процедуры, в которой он объявлен.

10.3.8 Процеаура (procedure)

Вилимость. Илентификатор пронелуры является видимым в области пронелуры. правила или схемы. в которой он объявлен.

Область действия. Объявление проиедуры опрелеляет новую область лействия. Эта область действия простирается ог ключецео слова PROCEDURE ло ключевого слова ND PROCEDURE, ивершаюшего объявление пронедуры.

Объявления. Следующие элементы языка EXPRESS могут объявляться илентификаторами в области действия объявления проиелуры:

- оператор переименования:

- константа: объект: перечисление: функция. параметр:

- процелури:

- выражение запроса:

- оператор вознрата:

- тир:

- метка типа:

- переменная.

19.3.9 Выражение JaNpoca (query expression)

QUERY (запрос) см. в 12.6.7.

Видимость. Идентификатор. неявно объявленный в выражении запроса. янзяется вилимым в области действия, опрелеленной выражением запроса.


FOCT P HCO 10303-11—2000

Область действия. Выражение мпроса определяет новую область лействия. Эта область лействия простирается от открывающшей круглой скобки '(’ после ключевого слова ОНЕВХ ло закрывающей круглой скобки °)’. завершающей ланное выражение запроса.

Объявления. Следующие языка ЕХРКЕУУ могут объянляться илентификаторами в области денствия выражения запроса:

- выражение запроса.

10.3.19 Оператор цикла (реа Мас тей

Опрелеление оператора КЕРЕАТ см. в 13.9.

Видимость. Илентификатор. неявно объявленный в операторе цикла. управляюшем прирашением. является видимым в области действия данного оператора цикла.

Область действия. Оператор цикла определяет новую область лействия. Эта область лейст- вня простирается от кочевого слова КЕРЕАТ ло ключевого слова ЕМО КЕРЕАТ. завершающего оператор иикла.

Объявления. Следующие олементы языка ЕХРКЕ$$ могут объяпляться илентификаторами в области леиствия оператора цикла:

- оператор переименования:

- выражение запроса:

- оператор цикла.

10.3. 1 Правило (ги)

Видимость. Илентификагор правила является вилимым в области леиствия схемы. в которой он правила объявил.

Примечание — Идентификатор правила может быть использэван только лля реализшии. В языке ЕХРКЕ$5 отсутствуют механизмы ссылки на илентификатор правила

Область действия. Объявление правила определяет новую область действия. Эта область действия простирается ог ключевого слова ВЫШЕ до ключевого слова ЕМО КИЁЕ. авершакиие - го обьявление правила.

Объявления. Слелующшие элементы языка ЕХРКЕ$$ могут быть объявлены идентификатора ми в области лействия объявления правила:

- оператор переименования:

- константа; объект: перечисление: функция: параметр: пронелура: выражение запроса: оператор возврата: метка правила:

- THN, метка типа: - переменния.

Пример 76 _ Следующее определение неверно. так как илентификатор относится к

объекту. па который распространяется правило. неявно объявлен как переменная виутри правила иво же время явно объявлен как локальная переменная.

RULE illegal FOR (poinn): LOCAL

point. STRING: END LOCAL,

END RULE.

19.3.12 Метка (nile label)

Видимость. Метка правила является видимой в области лействия объекта. правила или типа. в которой она объявлена.

Примечание -- Метка правила используется только н реализаиии. В языке ЕХРКЕУУ отеутсснуют механизмы ссылки нз метку правила. >


ГОСТ Р ИСО 10303-11—-2000

10.3.13 Crema (schema) Вилимость. Илентификагор схемы является вилимым лая всех других схем.

И римечание — В хоответствухнией реали аиии может применяться механизмы обобщения аобластеи леиствия. который позваляст трактовать труппу схем как ояласть лейсавия.

Область действия. Объявление схемы опрелеляст новую область деиствия. Эта область ленсгвия простираегся от ключевого слова ЗСНЕМА до ключевого слова ЕМО SCHEMA, запер- шаюшего объявление ланной схемы.

Объявления. Слелукицие элементы языка могут объявлягься идлентификаторами в области лействия объявления схемы.

- константа:

- объект:

- перечисление:

- функция.

- пронелури:

- правило;

-

Пример 77 - Соелующая схема неверна по двум причинам. Во-первых. идентификатор импортирован в слему с помошью оператора С УЕ. но олновременно был объявлен как имя типа. Во-вторых. имя 1867 используется как илентификатор в лвух объявлениях {одно ляя объекта. а другое лая функции).

SCHEMA incorrect: USE FROM another schema (adef):

FUNCTION ftdet(parm NUMBER) : INTEGER:

END FUNCTION;

TYPE adet = STRING: END TYPE: ENTITY tet: END ENTITY:

END SCHEMA:

10.3.14 Tata (type)

Видимость. Илентификатор типа янлястся в области действия ApoUcay- ры. правила или схемы. в которой он объявлен. Идентификатор типа остается вилимым при ус- ловиях. определенных в 0.2.2. во внуйюжнней области ленствия, которая персобъявляет данный илентификатор.

Область действия. Объявление типа определяет новую область действия. Эга область дейст- вия простирается от ключевого слова ТУРЕ ло ключевого слова ЕМО ТУРЕ. завершающего объ- явление типа.

Объявления. Слелующие элементы языка могут объявляться илензификаторами в области действия обьявления типа:

- перечисление:

- метка правила (правилю области значений):

- выражение запроса {внутри правила области значений }-

1.3.15 Метка типа (type label)

Видимость. Merka гипа является вилимой в области лействия функции или проиелуры. в которой она объявлена. Метка типа неявно объявляется при первом се появлении в области денствия. которая лолжна присутствовать в определении (спецификации) формального параметра. На объявленную таким образом метку типа можно ссылаться либо в опрелелении формального параметра. либо в локальных объявлениях функции или пропелуры. Если метка типа объявлена в функнии. на метку типа могут лелаться ссылки в спенификации возврашиемого типа фуикцин.

10.3.16 Переменная (уапаЫе)

Видимость. Идентификатор переменной является нилимым в области действия функции. пропелуры или правила, в которой она объявлена.


FOCT P HCO 10303-11—2000

11 Спецификация интерфейса

В этом разаеле описаны конструкции. позволяющие элементам. объявленным в одной схс- ме. стать внлимыми в другой схеме. Существуют ава вила спенификании интерфейса: (ЗЕ (применитьр и КЕЕЕВЕМСЕ {сослаться}, которые обеспечивают вилимость элементов. Спецификация ИЗЕ поиюляет элементам. объявленным в одной схеме. иметь независимые экземпляры в схеме. определяющей конструкцию СЕ.

Экземиляр объекта считается независимым. если он не играет роль. прелписываемую атрибу - том лругого экземпляра объекта. го есть функция КОСЕЗОЕ (см. 15.2) для независимого экемпляра объекта булет возвращать пустой набор. Гии данных объекта. который был объявлен локально в схеме или с использованием СЕ в данной слеме. может быть применен ля независимого созлания экземпляров или играт, роль. преаписываемую атрибутом объекта в ланной схеме.

Объекты. когорые явно импортированы с помошью спенификации REFERENCE wan ine портированы в схему неявно, должны создаваться только окюмпляры. играющие роль, описанную атрибутом реализании объекта в схеме.

Синтаксис:

228 specification = reference clause | use clause .

Внешним объявлением является любое объявление (например. объекта). которое появляется во внешней схеме (любой схеме. отличной от данной схемы).

Другое различие между лвумя видами нитерфейса состоит в том, что спецификация USE применяется только к поименованным типам данных (типам данных объекта и опрелеленным тинам данных). в то время как спепификания КЕРЕКЕМСЕ применяется ко всем объявлениям. за исключением правили схем.

Виешний элемент языка можег быть в данной схеме задан новым именем. На элемент языка в ланиной схеме следует ссылаться по новому имени. заланному после ключеного слова А$.

11.1 Спецификация интерфейса USE

Тип объекта или определенный тип ланных, объявленный во внешней схеме, станонится вилимым посредством использования спенификании (ЗЕ Спецификация ИЗЕ залает имя внешней схемы н факультативно объявленные в неи имена типов ланных объекта или опрелеленных гинов ланных. Если в спецификации Ц5Е не определен все поименованные типы данных. объявленные или используемые внешней схемой. грактуются как объявленные локально в данной схеме.

Синтаксис: 313 use clause = USE FROM schema ref | (Co named type or rename

named type or rename |) fos. 246 named pe of rename = named types | AS (entity id [type id) |.

11.2 Спецификация интерфейса REFERENCE

Спецификация КЕРЕКЕМСЕ лает возможность слелать виаимыми в данной схеме слелую- шие элементы яияка ЕХРКЕЗ%, объявленные во внешней схеме:

- константа:

- объект:

- функния:

- пронелури.

- THN.

REFERENCE задает имя внешиеи схемы и. факультативно. имена элементов языка ЕХРКЕЗУ. объявленные в ней. Если имена не установлены. то весе элементы языка EXPRESS, объявленные или используемые внешней схемой. являются вилимыми в текушей схеме.

Синтаксис:

267 clause = REFERENCE FROM schema ref] °C resource or rename (° 0 resource or rename | OV POS

274 resource of rename = resource ref | AS rename id | .

7

7S resource ref = constant ref entity ref | function ref} procedure ref | type ref. 270 rename id = constant id’ entity id | function id procedure type 19.


ГОСТ Р ИСО 10303-11—2000

Виешние объявления в спецификании КЕРЕКЕМСЕ ие рассматриваются как локальные обьявления. а поэтому лля них не могут быть созланы независимые экземпляры, по могут быть созланы экземпляры, играющие роль. описанную атрибутом объекта н данной (текушей) схеме.

11.3 Взаимодействие USE « REFERENCE

Если тип данных объекта или определенный тиа данных олновременно импортированы в ланную схему с использованием и КЕЕЕКЕМСЕ. спенификация ЧУЕ имеет приоритет.

ord

7 Операторы USE FROM sl (al): REFERENCE FROM sl (al); а! трактуется как локальное объявление. Когда поименованный тий данных импоргирован И$Е. отот поименованный тиц ланных

может быть импортирован из данной схемы пругон схемой с НУЕ или КЕЕЕВЕМСЕ (го ссть возможен последовательный импорт из схемы в схему с помошью спецификации USE).

Пример 79. Даны слелующие два объявления схем:

SCHEMA sl.

ENTITY el:

END ENTITY: END SCHEMA: SCHEMA 32:

USE FROM sl (el AS e2h END SCHEMA:

саелующие спенпификации эквивалентны.

УСНЕМЛА 33: SCHEMA s3: USE FROM sl (el AS e2h USE FROME 32 (e2). END SCHEMA. END SCHEMA;

Поскольку EXPRESS, импортированные посрелством REFERENCE. ne рассматриваются как элементы, имеющие локальное объявление, их лальнейший импорт Нево з- MOACH.

11.4 Неявные интерфейсы

Внешние объявления могут ссылаться на илентяфикаторы. которые ис являются вилимыми в данной схеме. "Эти олементы языка ЕХРКЕУЗ., на которые ссылаются неявно. необходимы для понимания ланной (текущей) схемы. но они не вилимы для элементов языка ЕХРКЕ$У. объянленных в данной схеме Кажлый импортированныи неявно элемент также можег ссылаться Ha другие элементы языка ЕХРКЕЗ%. которые не являются вилимыми в ланной схеме; эти элементы языка ЕХРКЕУ$ также необлолимы аля полного понимания данной (текущей) схемы.

Пример 30 | Hex Bio импортированные элементы и послелующие неявные интерфейсы. SCHEMA sl.

TYPE tl = REAL:

END TYPE:

ENTITY el:

acu:

END ENTITY:

ENTITY e2:

END ENTITY: END SCHEMA: SCHEMA 52:

REFERENCE FROM sl (e2):


FOCT P HCO 10303-11—2000

ENTITY e3: 23:62: END ENTITY; END SCHEMA:

e2 Kak THN OHHbEN aTpHOyTa a3. Tockoabay B @2 - ef. ef HeaxBHO HMNOpTpveTeH cxeMoll $2. Ornako @€1 He Gb явио импортирюван в схему 52. е] ие может упоминаться в CxeMe 82. Taka&e. B eb th. следовательно, 1 также неявно импортирован в схему $2.

В последующих пунктах слово «импортирован» булет использоваться в смысле неявного импортирования или импортирования посредством USE или REFERENCE.

1.3. И нтерфенсы констант

При импорге констант неявно импортируются. любые определенные типы ланных. используемые в объявлении импортируемой константы:

- любые типы данных объекга. используемые в объявлении импортируемой константы:

- любые константы. используемые в объявлении импортируемой константы,

- любые функции. используемые в объявлении импортируемой константы.

11.4.2 Интерфейсы определенных типов данных

При импорге определенного тина ланных неявно импортируются.

- любые определенные типы данных. используемые в объявлении импортируемого тина, м иск.ночением случая, когла импортируемым типом является тип ЗЕТЕСТ: в результате импорта этого типа ни олин из выбираемых элементов не будет импортирован неявно:

- любые константы или функини, используемые в объявлении импортируемого опрелеленного гина ланных:

- люФые константы или функция, используемые в правилах областеи значений импортируе - мого определенного типа лаиных:

- любые определенные типы данных. представленные типом ланных ЗЕБЕСТ. чей список выбора солержит импортируемый опрелеленный гип данных.

Пример Sl Неявный импорт определенного тина ланных через тии данных ЗЕСЕСТ.

SCHEMA sl: TYPE sell = SELECT (el.u): END TYPE: TYPE th = INTEGER: END TYPE: ENTITY el: END ENTITY: END SCHEMA: SCHEMA 32. REFERENCE FROM sl (tl): END SCHEMA: Слема $2 солержит явную ссылку на И. а tin sell npeactranien tHnow SELECT. 1; зеЙ является неявной ссылкой. 11.4.3 И нтерфенсы гипов данных объектов При импорге типа ланных объекта неявно импортируются: - ве типы данных объекта, которые являются супертипами импортируемого гипа ланных объекта: Примечание — Полтины импортирусмого типз ланных объекта неявно импортированы не булуг. даже если они вхолят в выражение ЗОРЕКТУРЕ ОЕ:

- все правила, ссылающиеся на импортируемый тип данных объекта и не на олин ван иесколько аругих типов данных объекта. все из которых явио или неявно импортиртированы в ланную схему.

56


ГОСТ Р ИСО 10303-11--2000

- любые конститы. определенные тилы ланных. гипы данных объекта или функини, ис- пользуемые в объявлении атрибутов импортируесмого типа ланиых объекта:

- любые константы. определенные типы ланных, гипы данных объекта или функции. ис- пользуемые в правилах области значений импортируемого типа ланных объекта;

- любые опрелеленные типы данных. прелставленные типом данных нмекиние в списке выбора импортируемыйи тип данных объекта.

Графы поллип/супертип могут быть усечены в результате слелования только связям ЗИВТУРЕ ОЕ при комплектовании неявных интерфенсов импортируемого типа ланных объекта. Алгоритм. используемый лая вычисления допустимых реализаций усеченного графа подтип/супертип. привелен в приложении С.

1.4.4 Интерфенсы функций

При импорте функций неявно импортируются:

- любые определенные гипы ланных или типы ланных объекта. используемые в объявлении параметров аля импортируемой функции:

- любые определенные типы ланных или типы ланных объекта, используемые в определении возврашаемого зазчения для импортируемой функиии:

- любые опрелеленные гипы ланных или типы данных объекта. используемые в объявлении локальных переменных внутри импортируемой функнии:

- любые константы. функции или пронелуры. используемые внутри импортируемой функции.

11.4.5 Интерфейсы процедур

При импорте проиелуры неявно импортируются.

- любые опрелеленные тины ланных или тилы данных объекта, используемые в объявлении параметров лая импортируемой проиелуры:

- любые опрелеленные гипы ланных или тины данных объекта. используемые в объявлении локальных переменных внутри импортируемой пронелуры:

- все константы, функции или процедуры. используемые внутри импортируемой проиедуры.

1.4.6 Интерфенсы прави

При импорте правила неявно импортируются:

- любые определенные типы ланных или гипы данных объекта. используемые в объявлении локальных переменных внутри импортируемого правила:

- все константы, фуикини или пропелуры. используемые внутри импортируемого правила.

12 Выражение

Выражение является комбинацией операторов. операнлов и вызовов функиий. которые вы-

числяются лля получения значения. Синтаксис: 204 expression = simple expression | rel op extended simple capression | . 269 rel op extended = rel op IN LIKE. %S rel op= os |e ее est tee | 287 simple expression = term { ddd hke opterm}. 303 term = factor { multiplication like ор со: |. 206 factor = simple factor [ («+ simple fuctor |.

288 simple factor = aggregate. initializer | entity, constructor | enumeration reference | interval query, expression - ( {unary op | (°C expression | primary ) >.

308 unary op = >>" | NOT.

256 primary = literal | ( qualifiable factor { qualifier |).

244 иирНеаной НКе ор = ^*`|`/ Г МОБТАМЬ Г.

158 add like op = 74°] |OR|XOR.

Hekotophie onepatopet TpeSyiot OAHOFO другие операторы пюбуют авух операилов. Операторы. требующие только одного операнда. лолжны располагаться перел Onepa- торы. требуюшие двух операнлов. должны располагаться межлу этими операнлами. В настояшем разлеле опрелелены операторы и устанонлены тины данных операнлов, которые могут исполью- ваться кажлым из операторов.

4


FOCT P HCO 10303-11—2000

Существует семь классов операторов:

а) Арифмегические операторы принимают числовые операнлы и выдают числовые резуль- гаты. `Тии ланных результирующего значения арифметического оператора зависит от оператора и типов ланных операнлов (см. 12.1).

Операторы отношений получают различные типы данных и вылают резульгаты тина ГОССАЕ (имеющие значения ТКИЕ, РАЁУЕ или ОМКМО\ММ).

с) Двоичные (BINARY) операторы получают двоичные (ВИМАКУ) операнды и выдают pe - зультаты типа ВИМАКУ.

4) Логические (БКОСИСЛАЕ) операторы получают логические (ГОСИСАЁ.) операнлы и вылают результаты гипа

е} Строковые («ЭТКИМО) операторы получают строковые (УТКИХО) операиды и вылают результаты гипа

К Сборные сирегатные) операторы комбинируют различными способами агрегатные зиачения с аругими агрегатными значениями или оглельными элементами и вылают результаты сборного (агрегатного) типа.

#2} Операгоры ссылок на компоненты и операторы инлексирования извлекают компоненты из экземпляров объектов и из ирегатных значении.

Вычисление выражении осуществляется в соответствии с приоритетом операторов. входя щих в выражение.

Выражение. заключенное в круглые скобки. вычисляется первым и рассматривается как единый операид.

Вычисление осушествляестся слева направо. при этом операторы с более высоким приоритетом вычисляются первыми. В таблиие 19 установлены приоритеты аля всех операторов языка EXPRESS. Операторы в одной строке имеюг равный приоритет, а строки упорядочены по уменьшению приоритета.

Таблииаз 1! — Приоритет операторов

моет р о еее р

РР Умнажениегаеление ПХ МОБАМО | | Г ре Е TIN TIRE

Нримечание - || является оператором построения сложного объекта

Если операн расположен Межлу операторами. имеюшими раиияин приоритет. то операнд относигся к тому оператору. который имеет более высокий приорите г. Если оперцид расположен между операторами. имеющими одинаковый приоритет. то операна относигся к тому оператору. который раеположен слева от операнаа.

Пример 32 Выражение -10*+*2 вычисляется как {(-10}**2. и результат булет ранен 100. Выражение 1()/20*30 вычисляется как ( и результат будет равен 15.0.

12.1 Арифметические операторы

Арифметические операягоры. гребуюшие олного операнда. являются тожлествами (-ри огрипаниями {-). Операнл должен иметь числовой тни (МОМВЕВ. (\УТЕОЕВ или КЕЛ[.). Для опс- patopa (+) результат равеи операнау. аля оператора (--) результат противоположен операнлу. Когла операнл имеет неопрелеленное (?) значение, результат также булет иметь неопрелеленное значение. независимо ог тото. какой оператор использован.

Арифметическими операторами. требуюшими авух операнлов. являются сложение (+). вы- читание (-), умножение (*). деление (/), возвеление в степень {**}. пелочисленное лелепие (0\} и остаток от нелочиеленного леления (МОР). Операнлы должны иметь чиеловой тип (МОМВЕК. INTEGER itnt REAL).

Операторы сложения. вычитания. умножения. леления и возвеления в степень выполняют математические операции с теми же именами. За искпючением деления. они вылают пелочис-

SN


ГОСТ Р ИСО 10303-11—-2000

ленный результат, если оба операнла имеют тип ланных ИУТЕСЕК и результат типа КЕАЁ в ос- тальных случаях {если при этом ни один из операнлов не имеет неопределенного (2) значения). Деление (#) лействительного гила дает результат леиствительного типа {если при этом ни один из операндов не имеет неопрелеленого (7?) значения).

Остаток от целочисленного деления (МОБ) и нелочиеленное деление (ОУ) лают целочис- ленный резульгат {если при этом ни олин из операидов ие имеет неопределенного {2} значения): сели какой-либо операнд имеет гип ланных КЕАЁ. то перел выполнением оператора его значение преобразуется в значение типа [УТЕСЕК. то есть лробиая часть геряется. Для любых иелочис- ленных змачений @ и Ъ веегла выполняется равенство (а [У Б)*Ь + (а Ь) = а. Абсолютное значение a MOD b Beeraa должно быть меныше. чем абсолютное значение В. а знак a MOD b должен быть гаким же. как знак Б.

Если хотя бы олии из операндов арифметического операгора имеет неопределенное (?) значение. го результат оператора лолжен имель неопрелеленное {*) значение.

Округленне действительных чисел

Кола гребуется округление. оно осушествляется с точностью р. используя следующий алгоритм (точность р залается явио лля типа КЕАЁ или принимается точность. устаповленная для реализации в соответствии с приложением Е):

а) преобразовать число в экспоненциальную форму без прелшествующих нулей:

Ь) текущий указатель нифры А устанавливается на р позиций правее лесятичной точки:

C) если действительное значение положительно. выполняются следукиние действия:

- сели цифра в позиции А лежиг в диапазоне &..9, добавить | к иифре в позиции & А цифра в позиции Ки все послелующие нифры игнорируются. Перейти к анагу с:

-если нифра в позиции & лежит в диапазоне 0..4. пифра в позиции Аи все послелующие пифры игнорируюлся. Переити к шагу В:

4) если лействительное значение огрипательно, выполняются слелующшие действия:

- сели нифра в позиции А лежит в лиапазюне 6..9. лобавить к нифре в позиции & А цифра в позиции А и все послелующие цифры игпорнруются. Перейти к шагу е;

- сели цифра в позиции А лежит в лиапазоне 0..5. цифра в позиции А и все послелующие пифры игнорируются. Перейти к шагу В:

е) установить значение указателя АВА Л

В ссаи цифра в позиции А лежит в лиавазоне (..9. перейти к шагу 4:

в} если цифра в позиции А имеет значение 10. лобавить к цифре в позмиани А Ри вить цифру в позиини А в 0. Перейти к шагу е:

В) число теперь округлено.

Примечание — В результате действия такого механизма округления 1.5 округляется ло Та 20.5 — a0 th

Пример $3 . Данный пример показывает ваняние установки н лробной части деиствигельного числа. го есть его точность.

LOCAL distance > REAL(): ato REAL: 42.42.22) > REAL: МО LOCAL:

х2:= 10.92 = bb 22 = 92.

distance = SQRT(x2-alpee2 + (y2-ylee? +

Вычисленное значение равно 1.9104973... е+1, но. поскольку для этои переменной залана точность только шесть значащих цифр. значение distance Ovier panno 1.91050e+ 1.

12.2 Операторы отношений К операторам отношений относятся слелукиние операторы: сравнения значений, сравнения эк юмиляров. принадлежности ({1\) и сравнения строк (КЕ). Результатом выполнения операто-

<


FOCT P HCO 10303-11—2000

ра огношения является змачение mina LOGICAL (TRUE, FALSE war UNKNOWN). Ecan vote Gut Wy операндов имеет неопределенное (7) то выражению присваивается значение UNKNOWN.

12.2. Операторы сравнения значении

К операторам сравнения значений относятся.

- равно (=):

- ие равно (1 >};

- больше чем (5):

- меныне чем

- больше или равно 17 =}.

- меньше или равно (<=).

Эти операторы могут применяться к числовым. логическим. строковым. лвоичным операнлам и к оперзнлам. являющимся элементами перечисления. Помимо этого операторы = и <2 применяться к сборным (агретатным} тинам ланных и к типам данных обтекта. Два сравпинаемых операнла оператора сравнения значений лолжны иметь совместимые типы ланных ем. 12.1).

Для двух заланных величин а и В, не мвисимо от их гипа. выражение а <> В эквивалентно МОТ (а = В) для всех типов данных. Также аля величин а и 6. ие являющихся ни сборными (агрегатными) типами данных. ни типами ланных объекта, дополнительно:

а} олно иузслелующих утверждений имеет значение ТКОЕ. а < В. а=Биша > В:

b) а <= В квиваленгно (а < Б) ОВ (а = Б);

с) а >= В эквивалентно (а > Ь) ОВ (а = Db).

12.2.1.| Сравнение числовых величин

Операторы сравнения значений. при их применении к числовым операнлам. должны соогвететвовать магемагическому упорялочению деиствигельных чисел.

п римечание — При сравнении двух действительных чисел их точность не Пример 834

a. REAL(3): b: REALIS):

выражение а = В имест иначение ТКИЕ (истина).

12.2.1.2 Сровиение двоичных величин

Дая сравнения двух лвоичных величин. сравнивают биты в соответствующих позициях кажлой величины. начиная с первой пары соответствующих битов {в самой левой поишии). затем. в слелующей позиции и т.д. до тех пор. пока не булег всгречена пара битов. значения которых в сравниваемых величинах различаются. Когла встречена пара несовпалающих битов. меньшей считается та величина. у которой в соозвететвукиней позиции нахолится бит с нулевым значением. После окно никакого сравнения не требуется. Если несовнадающей пары битов не встречено. меньшей считается более короткая величина (лаина опрелеляется с помошью функнии ВЕЕМОТН). Если у сравниваемых величин равны л.нииы и не встречено ни олной пары несовпадающих бигов, сравниваемые величины равны.

12.2.1.3 Сравнение логических величин

При сравнении двух значении mina (или ВООБЕАМ, необходимо соблюдать слелуюший порялок:

FALSE «= UNKNOWN - ТКИЕ.

12.2.1.4 Сравнение строковых значений

Для сравнения лвух строкопых значений сравнивают символы в соответствующих позициях кажлого значения. начиная с первой пары соответствующих символов (в самой левой позиции). затем н слелующей позиции и т.д. ло тех пор. пока не будет встречена пара символов. значения которых в сравниваемых величинах различаются или пока не будут проверены все пары символов. Когаа встречена пара несовпадающих символов, меньшей считается та символьная строка, у которой в соответствующей позиции находится символ с меньшим зиачением кола {как опрелелено мачениями октетов аля символов по HCO/MOK (0646-1) После лого никакого лополнилельного сравнения не гребустся. Если несовпалаюшей пары символов не встречено. менышей считиется более короткая символьная строка 4лаина определяется с помошью фуикцин

ой


ГОСТ Р ИСО 10303-11—2000

ГЕМОТНУ. Если у сравниваемых символьных строк лаины равны и не встречено ни олной пары несовпадаюших символов. то дна сравниваемых строковых значения считаются равными.

12.2.1.5 Сравнение мемениим перечисления

Сравнение значений элементов перечисления основывано на гом. в какой послеловательности лементы перечислены в объявлении перечисляемого типа ланных. См. правило (а) в 8.3.1.

12.2.1.6 Сравнение значений

Операторами сравиения значений. установленными для агрегатных значении. являются. равно (=) и ие равно (<>). Два агрегатных значения могут быть сравнимы только в том случае. если их гипы ланиых совместимы (см. 21.

Все агрегатные сравнения лолжны проверять число элементов в каждом операнле: если SIZEOF (a) <> SIZEOF (5), то агрегаты не равны. При агрегатных сравнениях сравнивают элеменгы агрегатного зпачения. используя сравнения значений. Если любое сравнение элементов принимает иначение ЕАЁСУЕ. то агрегатное сравнение принимает змачение КАГУЕ. Если одно или несколько сравнений элементов аля конкретного агрегагного сравнения принимает значение UNKNOWN, a Bee остальные сравнения принимают значения ТВИЕ. то агрегатное сравнение принимает значение СМКМОМ/Х. Во нсех других случаях агрегатное сравиение принимает значение ТВОЕ.

Опрелеление равенства сравниваемых агрегатов зависит от их агрегатных типов ланных:

- ава массива а и Б равны тогла и только тогла. когла каждый элемент массива а равен по значению элементу массива расположенному в тои же поишии. то есть afi} = 6] (см. 12.618

- лва списка а и равны тогла и только тогла. когда кажлый элемент списка а равен по значению элеменгу списка В. расположенному в той же позиции:

- ва мульгимножества (ВАО) или набора (ЗЕТ) равны тогла и только тогла, когда кажлый элемент УАБОЕ ИМ а появляегся в УАБЦЕ 1М№ В равное число раз. а кажлый элемент VALUE IN b nositaerca B VALUE_IN a@ равиое число раз.

п римечание — Мульгимножество может выть равно по зизчению набору. лаже если мультимно-

жество солержит повторякициеся злеченты. Эго возможно потому. что проверка основывается на определении каличества равных по значению элементов.

12.2.1.7 Сравнение шачений объектов

Два экземпаяра объектов равны при сравнении значении. сели равны значения их соответ- сту юших атрибугов. Поскольку экземиляры объектов могут иметь агрибугы. прелетавленные гнпами данных объекта. возможно наличие экземиляров со ссылками на самих себя, в этом случае экюмпляры объектов равны при сравнении значений. если все атрибуты. представленные простыми типами данных. имеют олинаковые значения и те же атрибуты в обоих экземплярах обь- ектов являются ссылающимися па сам экземпляр.

Более точно. прелположим, что сравииваются два экземпляра Ги г. Если 1:5: г, то = г. Ес- ли ло не так. то введем следующие описания:

- опрелелим упорядочение на совокупности рассматриваемых эк юмпляров. На практике эта совокупность конечна. поэтому такое упорядочивание выполнимо,

- лля целей ланного рассужления опрелелим операгор инлексирования агрегатов. который учитывает ланное упорядочение таким образом. что лля любого агрегата ав и аля любых инлексов Ёи ] условие & < роквивалентно условию ар] < аРр[]]:

- опрелелим послеловательность ссылок как олиу или более ссылок атрибутов или инаексов. Применим послеловательность ссылок $ к экюмиляру & записав $(1). Тогла 5) может быть вы- числена, сели ни олиа из ссылок. за исключением последней, не принимает пеопрелеленного (7) значения.

Гогла значение выражения | = гопрелеляется исходя из следующих условий:

а) Если ТУРЕОГа) <> ТУРЕОЕ(г). то |= г имеет значение

Ь Если существует гакая послеловательность ссылок $. что вычислим строго олин $ и sr), TO} = г имеет значение FALSE.

с) Если сушествует такая послеловагельность ссылок $, что и $( и $(г) вылают значения простых типов. и если $41) <> $(г). то | = г имесг значение

4) Если сушествует такая последовательность ссылок $. что МОТ ЕХ1$Т$($()) или МОТ EXISTS(s(r)), To b= r umeer snagenne UNKNOWN.

е) Иначе 1 = г имеет змачение ТВИЕ.

ol


FOCT P HCO 10303-11—2000

Пример #5 Следующий алгоригм является олной из реализаций вышеописанного теста сравнения значений. Этот алгоритм приводится только в качестве иллюстрации и не является обязательной частью какой-либо реали ашии.

Допустим. чо Ри г являются переменными типа ОЕМЕКС в данном злгоритме.

а} Инициализируем | как левый экземпляр объекта. аг как правый экюмиляр объекта.

Ь ЕслиТиг один и гот же экземпляр, то есть =: г. выражение имеет значение ТКСЕ.

с) Инициализируем пустой список р. который будет солержагь упорялоченные пары илентификаторов экземпляров объектон.

Примечание 2 — Иреаставление идентификаторов экземпляра зависиг от особенностей пезлизаии.

9) Сравним Ти г. используя глубокий алгоритм равенства. описанный ниже.

е) Выражение булет иметь значение. возврашаемос глубоким алгоритмом равенства.

Глубокий алгоритм равенства

а) Если № г или обе переменные имеют пеопрелеленное (2) значение. то алгоритм во шает значение С МКМО\МУ.

b) Если ТУРЕОЕ@) <> ЛУРЕОЕС), то алгоригм возврашает значение FALSE.

с} Если Ги г не являются экземплярами объектов. то алгоритм возврашает значение | = г, используя соответствующий тест из равенейю.

4) Если Ги г являются олним и тем же экземпляром объекта, то есть Г: возврашаег значение ТКИЕ.

©) Если пара экземпляров (1, г) присутствует в рИзё. алгоритм возврашает зиачение ТКИЕ.

К Если пара экюмпляров (, г) не присутствует в рИ$. выполияют слелующие действия:

1) Добавляют к рИ$Е пару (1, г).

2) Для кажлого из атрибутов а. опрелеленных лля [и г, сравнивают 1.а и г.а. используя глу- бокии алгоригм равенства. предположив. чзо [= 1.а иг = га.

г. го

Примечание 2 -- Эго рекурсинный вызов.

3) Если па шаге (2) глубокий алгоритм равенства для какого-либо из агрибутов возврашает значение ЕАЁУЕ. обший резульгат булет иметь значение Иначе. если алгоритм возвраашает для какого-либо из атрибутов значение СМКМО\М\Х. обший результат будет имегь значение (МКМО\УМУ. Иначе. общий результат булет иметь значение ТКОЕ.

Примечание 3 — Если хогя бы один из реульсиов сравнения имест значение РАТЬ. общий результат имест ачение Если вес результаты имеюг значение TRUE, PCsVIbTAT ние ТКЕЕ. Когла какое-либо сравнение имеет результа UUNKNOWN, a ace лругие результаты имеют значение ТКИЕ. общий результаг имест значение

Пример &6 - Локальные переменные И и В имеют тип 1юор_оГ Имерег и при присвоении им значении в этом примере переменные не равны.

ENTITY loop of integer: into INTEGER: HeAL Sloop of integer: END ENTITY:

LOCAL if. 2: loop of integer: END LOCAL: if := loop of integer(Sloop. of integer 3.SELF)): loop of integer(Aloop of integenS.SELF)): 1Е И = ОТНЕМ -- присваивается значение «ложь»

Сравнение значений объектов может быть применено зля экземпляров объектов и для сгрупнированных экземпляров объектов (см. 12.7.4). При сравнении экземпляров объектов сравниваюгся все атрибулы супертипов и полтипов сравниваемых экюемиляров. При сравиении сгруппированных экземпляров объектов сравниваются только те атрибуты, которые объявлены атрибутами в объявлении объекта для типа ланных объекта, поименованного в квалификаторе

62


ГОСТ Р ИСО 10303-11--2000

группы (при этом не включаются наследуемые атрибуты. которые переопрелелены в конкретном типе ланных объекта).

12.2.2 Операторы сравнения экземиляров

Операторами сравнения экземпляров являются:

- равенство экземпляров

- перавенетво экземпляров {:<>:).

Эти операторы применимы к операнлам числового. логического, двоичного. строкового, Ne- речислнемого. агрегатного типов ланных и к операнлам типа данных объекта. Оби операнла в операторе сравнения экземпляра лолжны быть совместимы по типу ланных 4ем. 12.11).

Для авух операнлов а и Б выражение (а :<>: В) эквиваленгно выражению МОТ (а :=: 5) для всех типов данных.

Операторы сравнения экжмиляров. применяемые к числовым. логическим, сгроковым, лвоичным и перечисляемым типам ланных, эквивалениия соответствующим операторам сравнения значений. Это означает. что выражение (а :=: 5) эквивалентно (а = Ь). а выражение (а :<>: В) эквивалентно (а <> Ь) для этих типов данных.

12.2.2.| Сравнение жземпаярон агрегатов

Операторами сравнения экземпляров, определенными лля атрекиных значений. являются операгоры равенства (:=:) и неравенства {:<>:). Два агрегатных значения могут сравниваться только в том случае. если совместимы их типы данных (см. [2.1

Все агрегагные сравнения должны проверять число элементов в кажлом из операнаов: если SIZEOF(a) <> УЛЕОЕС). агрегаты ие равны. При агрегатиом сравнений проводится сравнение элементов агрегатного значения с использованием сравнений экземпляров. Если при сравнении аюФого элемента получено значение FALSE, to результат агрегатного сравнения также булет имегь значение ЕАЁУЕ. Если олно или несколько сравнений элементов при конкрегном агрегат- ном сравнении лают результат СМКМОМ/Х. а веё прочие сравнения лаюг результат TRUE, ro результат сравнения булет иметь значение ИМКМОММУ. Во всех лругих случаях агрх- гагное сравнение принимзет значение ТКИЕ.

Опрелеление равенства экземпляров агрегатов зависит от типа сравниваемых агрегатных гипов ланных:

- два массива а и Б равны тогла и только тогда. когла кажлый элемент массива а является тем же экземпляром. что и элемент массива В. нахоляшийся в той же позинии. то есть ай] :=: МН]

- лва списка аи В равны тогла и только тогла, когла кажлыи элемент списка а является тем же экюмиляром. что и соответствующий элемент списки В:

- экюмиляры двух мульгимножеств (ВАСра и В равны тогда и только тогла, когла кажаый заемент а появляется в 1№ В ровно столько же раз. а кажлый элемент 1№ В появляется в Ма ровно столько же раз:

- два набора (ЗЕТ) а и В равны тогда и только гогла. когда кажлый элемент а присутствует в Би кажлый элемент Б присутствует в а:

- экземиляр набора ($ЕТ) равен экюмиляру мульгимножества {ВАСО) тогла н только тогла. когла кажлый элемент пабора присутезвует в мультимножестве один раз. а в мультимножестве нет ни олного элемента, который не входил бы в набор.

Пример #7 — Сравнение экземпляров лвух массивов

LOCAL al, a2: ARRAY [1:10] OF b: END LOCAL:

IF (al =: a2) THEN ...

12.2.2.2 Сравнение жаемпаярив объектов

Операторы равенства (:=:) и неравенства {:<>:) экемиляра объекта получают лва сонмес- тимых экземпляра объектов и вычисляют значение типа LOGICAL.

Выражение а :=: В имеет значение ТВСЕ. если а яваястся тем же окземиляром объектги, что и В. то сеть имеют один и TOT же илентификатор. зависяшии от реализаиии. Выражение имеет значение если экземпляр а отличается от экюмиляра 5. Выражение имеет значение UNKNOWN, con sora Gb) OSE HS операнлов имест неопрелеленное {*) значение.

63


FOCT P HCO 10303-11—2000

Помимо прочего. сравиенне экземпляров объекгов лолжно проволитьея при сравнении лвух зэкемипляров объектов. тцких как сравиения агрегатов, и при проверке правил уникальности UNIQUE.

Пример SS Все лети имеют матерей. но некоторые дети имеюл также братьев или сес- тер. 'Это моделируется следующим образом.

ENTITY child SUBTYPE OF (person): mother: female: -- mil He father сша: END ENTITY: ENTITY sibling SUBTYPE OF (child): siblings : SET [12°] sibling: WHERE -- удостоверимся, что ланный экземпляр объекга .- пе является одним из братьен или сестер пог ‹ ОЦЕВУ (1 <* [1:1 )) = 0. -- Удосговеримся, что кажлый из братьев или сестер -- имест общего отна или мать с ланным экюмпляром объекга same parent: SEZEOF ( QUERY ¢ i <* siblings | (imother i=: SELF.mother ) OR (тег 0: SELF.father )) = SIZEOF ( siblings )

END ENTITY:

223 Oneparop

Оператор (IN) осуществляет проверку. приналлежиг ли данный элемент к некоторому агрегату и вычисляет значение типа СОСИСАЕ. Правыи операна лолжен быть значе. нием агрегатного типа ланных, а левый онеранл должен быгь совместим с основным типом ланного агрегатного значения. Выражение е 1№ ар? вычисляется слелуюшим образом:

а) если хотя бы один из операнлов имеет неопределенное (7) значение. выражение имеет значение (ХКМОМ/М:

Ь) если сушествует элемент арё|] такой. что е :=: выражение имеет значение TRUE;

к) если хотя бы OAHH aggfi], имеющий неопределенное {?) выражение имеет значение © МКМОМ/М:

4) иначе выражение будет иметь значение FALSE.

Пр имечание — Для того чтобы проверить. сушестнует ли элемент агрегата. имеющие заланнос значение, может быть использована функция УАБОЕ № (ем. 15.2%}.

Принадлежность к определенной молелируюшщей системе может быть проверена с помошью пары функций. называемых. например. му_едиа| (см. 8.2.5} и му м. как это показано в нижеприведенном исевлоколе:

ЕИМСТОМ ту вис ОЕ Степ, УСЕМЕК Свет): ВКОССАЕ:

{* Если у или с имест неопределенное (’ змачение. возвращается значение ЧМКМОМ/М. Иначе. если какой-либо из элементов атрегага © имеег значение у. возврашается значение ТКОЫЕ. Иначе. если хотя бы олно из сравнений значения у со значениями элементов al pe- гата лает результат UNKNOWN, возврашается значение 1, МКМОМ/Х. Иначе возврашается значение FALSE *)

LOCAL result > LOGICAL: unknownp : BOOLEAN := FALSE:

END LOCAL

IF (NOT EXISTS) OR (NOT EXISTS(c)) THEN RETURN(UNKNOWN):

63


ГОСТ Р ИСО 10303-11--2000

END IF: REPEAT i = LOINDEX(c) TO HIINDEX(e), result := my equal(v. cfiph: IF (result = TRUE) THEN RETURN (result): END IF: IF ¢result = UNKNOWN) THEN unknownp := TRUE, END IF: END REPEAT: IF (unknownp) THEN RETURN(UNKNOWN): ELSE RETURN(FALSE): END IF: END FUNCTION:

Например. это может быть использювано слелукиним образом:

LOCAL Vlad ce: SET OF a:

END LOCAL,

IF my inte. v) THEN ...

12.2.4 Выражения интервалов

Выражение интервала провернет. лежит ли змачение внутри заланного интервала. Выражение соаержиг три операнла. которые лолжны быть совместимыми (ем. 12.1) Типы операнлов золжны быть упорялоченными. то есть простые типы (см. 5.1) и опрелеленные тины данных, ис- холными типами которых являются или простые. или перечисляемые типы.

Синтаксис:

229 ииелш = `` имега 10% interval op interval Пет interval ор interval МР

32 interval low = simple expression .

AA intenal op = <0 [ 2s".

31 interval item = simple expression .

30 interval high = simple expression .

2 2 - 2

Примечание — Выражение интервала: имела Том пиегуаГ ор пиегуар исптольнуя ор Ма; семантически эквивалентно следующему выражению: (interval low interval _op interval item) AND (internal item intenal op interval МЕБ) Считаем. что но втором выражении вел Нет вычисляется только олин раз.

Выражение интервала вычисляется Lid tik LOGICAL i принимает значение TRUE. ecm обе операции сравнения лаюг ре ТКОЕ. Выражение 3Hauenie FALSE, ecm xo- тя бы олна из операций сравнения дает результат РАЁЗЕ. и значение ЧМКМО\М М. ссли хотя бы олин изоперандов имеет неопределенное (7) значение.

Пример $9 — Злесь проверяется. имеет ли Б значение, большее 5.0 и меньшее или равное 100.0

LOCAL b. REAL := 20.0; END LOCAL,

IF 25.06 b<= 100.0} THEN -- TRUE


FOCT P HCO 10303-11—2000

12.2.5 Оператор полобия

Оператор полобия (КЕ) сравнивает лва строковых значения. используя описанный ниже алгоритм сравнения с образцом. формирующий значение типа LOGICAL. Левый операнл являет - ся сравниваемой строкой. Правый операнл является эталониои строкой.

Алгоритм сравнения с образцом определяется слелующим образом. Кажлый символ эталонной строки сравнивается с соответствующим символом(и) сравниваемой строки. Если любая пара сравниваемых символов не совпаласт. то сравнение является ошибочным и выражению присваивается значение FALSE.

Некоторые спениальные символы в эталонной строке могут сонпалать с несколькими символами в сравниваемой строке. Эти символы приведены в таблиие НЙ. Вес сравниваемые символы лолжны быть идентичными или совпалать с принеленными в таблице |. чтобы выражению было присвоено значение ТВКЦЕ. Есаи любой из операнаов имеет неопрелеленное #2) змачение. то вы- ражению присваивается значение (ИМКХОМ М.

Когла символ сравниваемой строки лолжен совпалать с каким-либо специальным символом эталонной строки. то образеи лолжеи солержать эталонную управляющую послеловагельность. Эталонния управляющая послеловательность лолжна солержать управляющий символ (“.), за которым слелует сопостанляемый специальный символ.

Пр имер 90 Для сопоставления с символом и’ использустся управляющая послеловательность ‘47. Слелующие примеры пока иявают. как сравниваются строки. Примеры 9. Если а := ЗАААА; слелующие сравнения лают ре ультаты: а (КЕ --> TRUE я КЕ ^АААЛ` --> FALSE a LIKE --> TRUE

a LIKE ААА‘ --> ТВИЕ a LIKE ‘ --> TRUE a LIKE --» FALSE

92 Если а := “The quick red ох `; слелующее сравнение лает результат: а ЫКЕ "5555 TRUE

93 a := ‘Page 407°; лующее сравнение дает результат: а КЕ '5*' --> ТКИЕ

Таблица | -- Элонные сравнивлемые симнолы

| с | Сравнение лкюой буквы

Сривнение любой заглавной буквы верхнего регистры)

Сравнение лкюого символа Сравнение остатка строки

ее 1 | Сравнение лнжой по: ICTPOKH. завершаемой симнолом пробе: за или конца строки `` | С равнение числа символюн

о | Начало эталонной управляющей послеловательности

Отрицание символа (используется © другими символами}

12.3 Двончные операторы

Кроме операторов огошения. определенных в 12.2.1.2. аля типа данных ВИМАВУ установлены: оператор индексирования (| р и оператор конкатенации {+}.

12.3. Двоичное индексирование

66


ГОСТ Р ИСО 10303-11—2000

Оператор двоичного инзексирования требует лвух операнлов: инаексируемого лвоичного значения и спецификации инлекса, а выдает авоичное значение длины — ш4ех_1 + |. Полученное двоичное значение равно послеловательности битов от познции шдех_1 ло ш@ех_2 включительно. Если требуется лвоичное значение елиничной длины, необхолимо указать только и4ех_1. Значение индекса. равное единице. соответствует самому левому биту.

Синтаксис: 226 index qualifier = ‘| задех Г|` шах Ор. 224 | = index.

223 indes = nunieric expression . 225 index. 2 = inden .

Правила н ограничения

а} Значение ш@ех 1 лолжно быть положительным пелым числом.

by) Должно выполияться условие 1 < index_] < BLENGTH значение). иначе бу- лег возврашено неопрезеленное (7) значение.

с) Значение при его указании. лолжно быть положительным иелым числом.

4) Должно выполнягься условие $ шдех_2 < ВЫЬЕМСТН (двоичное значение}. иначе булет возврашено неопрелеленное (?} значение.

Пример 94 - Должен быть проверен четвертый биг авоичного числа image. image = @ 01040]

IF image[4f=“l THEN ... -- имеет значение TRUE ТЕ ипмаре[4 |=‘ ТНЕМ ... -- эквивалентное выражение

Пример 95 Должны быть проверены биты с четвертого по десятый двоичного числа Маре. ТЕ |4 10 |= ОНИ ТНЕМ ...

12.3.2 Оператор авоичной конкатенации

Операгор лвоичной конкатенаиии {+} является лвоичным оператором. который объединяет вместе лва лвоичных значения. Оба операнда лолжны иметь двоичные значения, а выражению лолжно быть присвоено лвоичное значение, солержащее конкатенацию лвух операнлов. при этом солержимое перного операнда находится слева.

Пример % - Двоичные значения могут быть объеленены слелуюшим образом: итаре :—= @ ЮНИТ + Е {* переменная Итаре теперь солержит лноичное значение СЕОУ

12.4 Логнческне операторы

Логическими операторами являются: МОТ (отрицание). АМО (н). ОК (или) и ХОК (исклю- чающее или). Каждый из операгоров вылает результат типа Операторам АМО. ОК и ХОК требуются лва логических операнда. а оператору МОТ — олин логический операил.

12.4. Оператор МОТ

Оператор МОТ требуст одного логического операила располагается справа от оператора МОТри формирует результат в виде логического зпачения. как показано в таблице 12.

Таблина 12 — Операюр NOT

Зизчение аперанаа Значение ре

PRUE FALSE

UNKNOWN UNKNOWN FALSE TROL

124.2 Оператор АМО Оператор АМЬО требует двух логических оперзилов и формирует результат в виле логического значения. как показано в таблиие 13. Оператор АМО является


FOCT P HCO 10303-11—2000

Taéanua — Oneparop AND

Значение Gnepamda t }начение операнта 2 ТВОЕ TREE TRUE TRUE UNKNOWN UNKNOWN TRUE FALSE FALSE UNKNOWN PRUE UNKNOWN

UNKNOWN UNKNOWN UNKNOWN UNKNOWN FALSE FALSE TRUE FALSE FALSE UNKNOWN FALSE 12.4.3 Onepatop OR Оператор ОК требует лвух логических операнлов и формирует резульгат в виле логического значения. как показано в гтаблиине 14. Оператор ОК является коммутативным.

Таблица 14 — Оператор ОК

Значение зперанаа оперная 2

12.4.4 Операгор ХОК Оператор ХОК требуег двух логических операнлов и формирует результат в виле логического значения. как показано в таблице 15. Оператор ХОК является коммутативным.

Таблица 15 — Операюр ХОК

Значение 1 Зиачение операида 2 Зыачених результаты

TRUE PROE FALSE

ТКОЕ UNKNOWN UNKNOWN TRUE rR

FALSE UNKNOWN UNKNOW

12.5 Строковые операторы Кроме операторов отиошения, определенных в 12.2.1.4 и 12.2%. аля строкового тина ТЕМ О установлены: оператор индексирования (|) ин оператор конкатензиии (+).

Os

TRUE KN

Ik a Sk UNKNOWN UNKNOWN UNKNOWN ALS ig


ГОСТ Р ИСО 10303-11—2000

12.51 Индексирование строк Операгор инаексирования строк требует лвух операндов: инлексируемого строкового значения и спенификация индекса. а вылает строковое значение ллины (index_2 — шаех_1 + 1). Полу- ченное сгроковое значение равно послеловательности символов от позиции index_I ao index_2 включительно. Если гребустся строковое значение единичной длины. необхолимо указать только Значение индекса, равное слинине, соответствует самому левому символу. Снитаксис: 226 index qualifier = index [| os index 2] f°. 224 index | = index.

223 index = numeric expression . 22S index 2 = inden .

Правила и ограничения

а) Значение шдех_1 лолжно быть положительным целым числом.

Ь) Должно выполняться условие 1 < шдех_1 < ВЕМСТН (строковое значение). иначе булет возврашено неопределенное (?) значение.

Значение шдех_2. при сго наличии. лолжно быть положительным иелым числом.

4) Должно выполняться условие дех{ < ш4ех_2 < БЕМСТН (строковое значение). иначе булег во ицмишено неопрелеленное (2) ачение.

Пример 97 — Проверка символа. нахолящегося в сельмой позиции строки ваше

1Е 7] = ТНЕМ... -- прелетавление в соответствии се ИСО/МЭК 19646-1

1Е пате[ 7:7 ТНЕМ ... -- оквивалентное выражение

Пример 9. Проверка символов. нахоляшихся в позициях с седьмой по лесятую строки name IF THEM ...

12.5.2 Оператор CTpOK

Оператор конкатнации строк (+) является строковым операгором. соелиняющим ле строки вместе. Оба операнла лолжны иметь строковые значения. а выражению должно быть присвох - но строковое значение. солержашее конкатенацию двух операнлов. при этом солержимое первого операнла находится слева.

Пример 99 - Две строки могут быть объединены слелуюшим образом: name ABC’ + °° + DEF’:

(* пате теперь содержит сгроку ‘АВС РЕГ *)

12.6 Агрегатные операторы

Агрегатными операгорами являются: оператор индексирования ([ Й). оператор пересечения (*). оператор объединения (+). оператор разиюсти {-}. оператор подмножества (==). оператор налмножества (7=) и оператор запроса {О Эти операторы определены в слелукицих пункгах. Ко всем агрегатным значениям применимы также опрелеленные в 12.2 оператор равенства (=). оператор перавенства операгор равенства экземпляров (:=:}, операгор неравенства экземпляров и оператор принадлежности ИМ.

И римечание — Некоторые операиии. прензволимые наз агрегатными значениями. требуют ного сравнения элементов агрегагных значении. во всех таких случаях используется сравнение экземиляров.

12.6. И нлексирование агрегатов

Оператор агрегатов требует авух операнлов. инлексируемого агрегатного значения и спецификации инлекса. а вылает слинственный элемент из игрегатного значения. В качестве типа данных этого элемента выбирается основной тип ланных инлексируемого агрегат- ного значения.

Синтаксис: 226 index. qualifier = ‘|’ за4ех чех 2]. 224 index | = index .

223 index = numeric expression . 228 index 2 = inden.

69


FOCT P HCO 10303-11—2000

Правила и ограничения

а) Значение не лолжено присутствовать. поскольку из агрегатного значения может быть инаексирован голько олии элемент.

Ь) Зиачение 1 лолжно быть целым числом

с) Должно выполняться условие: БОПМОЕХ значение } $ Ю4ех_1 $ НИМОЕХ чагрегатное значение |, иначе булет возврашено неопределенное (2) значение.

9) Если типом агрегатного значения является АККАУ или выражение вылает эемент агрегатного значения, находящийся в позиции, указанной

е) Если типом агрегатного значения является ВАС или ЗЕТ. го аля каждого Шдех_| в лиапазоне от СОТХОЕХ (агрегатное значение ) ло НИМОЕХ (нрегатное значение) выражение лолжно вылавать разные элементы агрегатного значения.

К При повторном инлексировании того же значения с тем же самым значением должен возврашаться тот же элемент только в том случае. если межлу обрашениями агрегатное значение He было изменено. Если агрегатное значение было изменено для агрегатных типов данных ВАС или ЕТ. то результат повторного агрегатного индексирования изменененного агрегатного значения непрелеказуем.

Пример 100 Индексирование лля {Рару) и наборов может быть HCTOALOBINO Lid повторного извлечения всех значений из ланного агрегатного значения.

а м: ЗЕТ [1:20] ОЕТУТЕСЕКЮ.

result: INTEGER:

result := |:

REPEAT FOR index = LOINDEX(a set) TO HIINDEX(a set): result result ¢ a setfindex|:

END REPEAT:

После вылола из оператора КЕРЕЛТ переменная гезыЙ булет содержать произвеление всех иелочисленных элементов агрегата а_5$е1.

12.6.2 Оператор пересечения

Оператор пересечения {*) принимает лва операнда агрегатного значения и выааел агрегатное значение. Допустимые типы операндлов и соответствукиние им тины результата привелены в таблице 16. Результирукинее агрегатное значение неявно объявляется как агрегат чипа. опрелеленного в таблице 16 с границами [0..2]. Основные типы ланных операнлов должны быть совместимы - ми (ем. Если пересечение лвух операнлов не содержит элеменгов. размер результирующего агрегатного значения лолжен быть нулевым.

айблииа 16 — Оператор пересечения — типы операнлов и ре дльтгата

океана Реки | Вар | (му. Г Вар (мультимножсство | МУЛЬТАМНОЖССТНО] Г Вар | {мульгимноажество)

Зеё (набор) Зе (набор! Set (HaGop) Set (Hadop) Вар (мульлимножество]

Если олним из операндов является набор (561). го резульгатом лолжен быть набор. солержащий кажлый элемент. появляющийся олнопременно в обоих операндах.

Если оба операнла являются мультимножествами (Бар\). и конкретный элемент е появляется в олном мультимножестве м раз а в другом мультимножестве п раз (гле м меныше или равно п). то результат должен солержать элемент е м раз.

12.6.3 Оператор объезлинения

Оператор объединения (+) принимает ава операнла. олин из которых должен иметь агрегат- ное зиачение, и вылает агрегатное значение. Допустимые типы операнлов и соответствующий им тип результата приведены в таблиие 17.


FOCT P HCO 10303-11—2000

17 — Oneparop объелинения — тины операнлов и результата

ера

Примечания

+ Первыи ›лемент второго списка следует за послеаним элементом первого списка.

3} Новый леменг становился первым в резульгирующем списке.

$ Ноный мемент становится последним в ре зультируянием списке.

Операция объединения опрелелястся типом операнлов и их порядком слелующим образом:

Если тип олного из онеранлов (Е) совместим с основным типом аругого операнла (А). операнл Е лобавляется к А следующим образом:

- сели А является зиачением набора (50. результирующим набором является А, к которому лобавлеи Е. если только Е уже не присутствовал в А.

- сели А является значением спиека 119). результирующим списком является А с вставлен - ным в позицию ЕЕ, если Е был левым операплом. и в позицию Г. ссали Е был правым операнлом.

Примечание | — список может содержать повтерякюиниеся элементы. лаже сели операнд списка был объявлен как LISP OF UNIQUE:

-если А имеет значение мультимпожества (Фару. то результирующим мультимножеством является А с лобавленным к нему Е.

Если оба операнла являются совместимыми списками (№5). го результирующим списком является левый операил с добавленным в его конец правым операндом.

Примечание 2 — Резльтирующий список может содержать повторякиниеся элементы. лаже сели оба операнда были объявлены как LIST OF UNIQUE.

Если левый операнд имеет значение набора (51). то результирующий набор созлаегся из левого операнла © аобавленными к нему теми элементами правого операнла. которые в левом операнле отсутствуки.

Если левый операнл имеет значение мультимножества (Баз). то результатом является левый операнл с лобавлением к нему всех элементов правого операнла.

12.6.4 Оператор разности

Операгор разности (-} принимает лва операила. левый из которых лолжен быть агрегатным значением. и выдает агрегатное значение. Допустимые типы операнлов и соотнегствующий им тип результата приведены в габлиие 18. Результирующее агрегатное значение содержит элементы первого операнда за исключением соответствующих им элементон второго операнла. то есть кажлый элемент второго операнла. который вхолит в первый операнл. исключается из первого опс- ранла. Резульзируюшее агрегатное значение неявно объявляется как агрегат. тип которого определяется в соответствии с таблицей 18 с границами |0..?|. Основные типы операнлов должны быть совместимы ({см. 12.11). Тип данных возврашаемого агрегатного значения лолжен быть та-

т


FOCT P HCO 10303-11—2000

ким же. как тип первого операнла. Если оба операнли яваяюгся мультиминожестнами (bags). конкретный элемент е присутствует м раз в первом операнле и в раз во BTOPOM Ole Publde, TO pe - зульгат должен содержать е М—в раз. если м болыше а, и не солержаить е. если м меньше илн равно п. Если второй операнл солержит элементы. не присутствующие в первом операнде. такие лементы р нгнорированы и не войлут в результирующее агрегатное значение.

алина 1% — Оператор разности — типы операнлов и ре ультата

Втором

Г Вар Г Вар | (MYALDTHMHOACETAO) Вар (мульгимножество) Вар | мультимножество) Зе (набор! Вар (иульгимножество)

Пример 101 Если А является мультимножеством ислых чисел [1, 2, 1, 3]. то А — 1 имеет значение [1,2,3], которое эквиваленгно [2,1,3]-

12.6.5 Оператор подмножества

Оператор подмножества (уЩхет) {=} принимает лва операниа, определенных в таблице 19. и вылает результаг типа Выражение принимает значение ТКЕЕ тогла и только тогла. когда любой элеменг е, присутствующий в раз в первом операнле. присутствует не менсе @ раз во втором операнле. Выражение принимает ачение (ИМКМО\ММУ, когла хотя бы олин из операнлов имест неопределенное (2) значение, а иначе принимаег значение FALSE.

Тины олерандов лолжны быть совместимы (ем. 12.10).

аалинца 19 — Операторы подмножества и налмножсства — типы операнлон

Propane ane pend Bag | (мульгимножество| | Вар = | (мультимножсство|

Вар (мульгимножестно! Зе (нор) ег (набор! Вар Set (набор! Set (nadop)

12.6.6 Оператор

Оператор налмножества (>=) принимает два операнла. опрелеленных в таблице 19. и вылает результат типа КОСИСАЬ. Выражение принимает значение ТКСЕ тогла и только тогда. когла любой элемент е. присутствующий @ раз во втором операнде. присутствует не менее @ разв первом операнде. Выражение принимает значение (ХКМО\ММ. когла хотя бы олин из операнлов имеет неопределенное {?) значение. а иначе принимает значение ЕАЁЗЕ.

Типы операнлов лолжины быть совместимы (ем. E2001).

Выражение D >= а должно быть гочно эквивалентным а <= В.

12.6. Выражение запрос:

Выражение запроси OUERY применяег юрса! отдельно к кажлому JIeMeHTY arpe- гатного значения и вылает агрегалиое змачение. содержашее элементы. для которых Юрка! ехргез$юп получило значение ТКОЕ. Результатом этого является подмножество исходного агрегатного значения. в котором все элементы ланного полмножества удовлетворяют условию. представленному логическим выражением.

Синтаксис: 264 quen = ОЦЕКУ `(`уапа Ме 4 арюгвше source “|

logical expression 160 aggregate source = simple expression . 241 logical expression = expression .


ГОСТ Р ИСО 10303-11—2000

Правила и ограничения а) Выражение уааШе № неявным образом объявляется как переменная внутри области действия выражения запроса.

п римечание — Эта переменная нигде не объявляется и не сушестнуст вне выражения запроса.

Ь) Выражение должно быть агрегатным зничением CARRAY, BAG. LIST или SET).

с) Третий операнл лолжен быть выражением. вылающшим результат типа LOGICAL.

Элементы изаекаются поочередно из исхолного агрегата и полетавляются в логическое вы- ражение Юрка вместо переменной уабаШе №. Затем вычисляется Если юрса|! ехргезют принимает значение ТКИЕ, ланный олемент лобавляется к результату; в других случаях он не добавляется. Эти действия повторяются аля кажлого элементы из исходного агрегата. Результирующее агрегатное змачение пополняется в соответствии е конкретным видом агрегатного типа данных.

Массив (АВВАТ). Результирующший массив имеет гот же осповной тии и границы. что и нс- холный массив, но элементы массива объявляются как ОРПОМА!.. Изначально каждый элемент является неопределенным 1*). Люфой элемент исхолного массива, лля которого ехргез5юЮп выдает упачение TRUE, загем помешается на соответствующую инлексную поушию в резулыьирукинем массиве.

Мультимножество (ВАС). Результирующее мультимножество имеет тот же основной тий и верхиюю границу. что и ислолное мультимножество. Нижняя граница является нулевой. Изиачально результируюшее мультимножество яваяется пустым. Любой элемент из исходного муль- тимножестви. для KOTOporo logical_expression выласт значение ТКЫЕ. затем добанаяется к резуль- тируюшему мульлимножеству.

Список (УТ). Результирующий список имеет тот же основной тип и верхнюю грании\. что и исхозный список. Нижняя гранива является нулевой. Изначально результирующий список является пустым. Любой элемент из исходного списка, лля которого Юрка! вылает значение ТКЫЕ. затем лабавляется в конец результирующего списка. Порялок следования элеменгов исходного списка сохраняется.

Набор (ЗЕТ). Ре зультирующий набор имеет тот же основной тип и верхнюю границу. что и исходный набор. Нижняя граница является нулевой. Изначально результирующий набор является пулым. Любой элемент из исхолного набора. лля которого Юрка! ехргез$юой выдает значение TRUE, кием добавляется к результирукинему набору.

Пример 102. Предположим. что союшг является определенным типом. имеющим в качестве исходного тина THO ENUMERATION, который охватывает элементы pink it са йе. В примс- ре показано, как изилечь из массива Colour те ивета, которые имеют значение рик или $са ег.

LOCAL cotoun >: ARRAY OF colour: reds > ARRAY OF OPTIONAL colour.

END LOCAL; reds QUERY ( element <« coloun | ( element = pink ) OR (element = scarlet ) ):

103 - Fo использует выражение запроса для пропшерки всех экемиляров обьекта тина ройи (точка). Результирующий набор содержит все экземпляры точек, расположенные в начале коорлинат.

RULE two points at orgin FOR (poinw): WHERE

SIZEOF(QUERYttemp <* point | temp = pointtd.0. 0.0. 0.0))) = 2: END RULE,

В лом примере показано использование трех неявных объявлении. nepe- менная рони. которая неявно объянлена в заголовке правила как набор всех экземиляров point. Вторым явлнется переменная 1етр. в которую при вычислении выражения запроса полегавляются

74


FOCT P HCO 10303-11—2000

элементы игрегатного point. reset KOHCTPYKTOP OOLEKTa point, ляется в результате объявления объекта.

12.7 Ссылки Когла локально используется элемент. вилимый в локальной области действия. ссылка на элемент осушестиляегся по илентификатору. объявленному для этого элемента. 12.7. Простые ссылки Простая ссылка янляется просто именем {илентификатором), заланным элементу в ланной области действия. Таким способом можно делать ссылки на следующие элементы: атрибуты внутри объявления объекта”; - константы *; - элементы из перечисляемого гила*: - объекгы**; - функиии*. локальные переменные внутри тела алгоритма”; параметры внутри тела алгоритма”: процелуры: правила: - схемы внугри спенификации интерфеиса: типы. На элементы. помеченные (*). таким же способом можно ссылаться внугри выражения. На обьекты. помеченные (°*) можно ссылаться как на конструктор {ем. 9.2.5} или как на локальную переменную в глобальном правиле (см. 9.6.).

Пример 104 — Правильные простые сеылки.

line (* объекти *}

Circle (* тий объекта *)

RED (* элемент перечисления *) 2 depth (* arpu6yt *)

12.7.2 Ссылки ес префиксами

В случае. когла одинаковое имя элемента перечисления объявлено в нескольких определен - ных типах данных, вилимых в олной и той же области лейелвия. (см. разлел 0}. имя элемента перечисления должно залаваться с префиксом. являкинимея идентификатором опрелелениого типа данных для лого элемента. лля того чтобы однозначно идентифинироваль этот элемент. Ссылка с префиксом состоит из имени опрелеленного тина ланных, за которым слелует точка (.). а за ней следует имя элемента перечисления.

Пример 105 - В олом примере показано. как элемент перчисления геё может быль уникально наснтифинирован ду использования п переменной &10р_$фла1.

TYPE cratfic light = ENUMERATION OF (red. amber. green): EMD TYPE:

TYPE rainbow = ENUMERATION OF (red. orange. yellow, green, blue. indivo. violet): END TYPE: мор sienal: Hight .= тлийе ink colour. rainbow := blue;

12.7.3 Ссылки на атрибуты

Ссылка на атрибут {.) обеспечивает ссылку на елинственныи атрибут внутри экземпляра объекта. Выражение. нахоляшееся слева от ссылки на атрибуг. лолжно быть экземпляром объекта нли значением компонента сложного объекта. Илентификатору атрибута. на когорый лается ссылка, лолжина прелшествовать точка (.).

Синтаксис:

169 чиаНйег = анибше ref.

Ссылка на атрибут. используемая в выражении. возврашает значение конкретного атрибута в эк юмпляре офъекта или в ммачении компонента сложного объекта. Если конкретный arpuoye

73


ГОСТ Р ИСО 10303-11—-2000

не представлен в экемиляре объекта или в значении компонента сложного обтлекта. то но зврашаетея неопрелелениое (2) значение.

Если ссылка на атрибут встречаегся в левон части оператора присваивания или в качестве молифипируемого (УАЖ) параметра процелуры. это приволит к ссылке в экземпляр объекта, в котором нахолитея соответствующее зиачение. Если конкретный атрибут не преаставлен в пляре объекта при выполнении оператора присваивания. то результат непрелеказуем.

Пример 1% Этот пример лемонсгрирует исполь ювание ссылки на агрибут.

ENTITY point: х. у. 7. : КЕЛЁ:

END ENTITY:

ENTITY coloured point

SUBTYPE OF (point): colour : colour:

END ENTITY:

PROCEDURE foo:

LOCAL first: point := 2.0. 3.0) | coloured) point (red): second : coloured point := 2.0. 3.0) ] coloured point(red): x coord» REAL:

END LOCAL:

coord := -- gnademie 1.0

ТЕ блесоюыг = тед ТНЕМ -- является неверной ссылкой, так как оп не -- является атрибутом объявленного типа

IF second.colour = гг4 ТНЕХ -- ТКСЕ. гак как соиг является верной ссылкой.

12.7.4 Групповые ссылки

Групповая ссылка (\) обеспечивает ссылку на значение компонента сложного объекта ннугри экемиляра сложного объекта. Выражение. нахоляшееся слева от групповой ссылки. лолжио быть окземпаяром сложного объекта. Тий ланных объекта заачения компонента сложного объекга. па который дается ссылка. должен слеловать м обратной косой чертой (\}.

Синтаксис:

219 group qualhiher = enaty ref.

Групповая ссылка, используемая в выражении, возвращает уачение компонента сложного обьекта. соответетнуешее поименованному типу данных объекта внутри экземиляра сложного объекта. на который дается есылка. Если конкретный тий данных объекта не представлен в экземиляре сложного облекта. на который лиется ссылка, ло возврашаетея неопределенное (р чение. Групповая ссылка может быть уточнена за счет последующей ссылки на атрибут. В ом случае групповая ссылка устанавливает область леиствия ссылки на атрибут.

п — Яо используется тогда. когда THE экемиляра сложно обьекта имест множество атрибутов х олинаковым именем или котла выбираемый тии данных содержит множество объектов с атрибу - тами. олинаковое имя.

Правила и ограничения

Групповая ссылка, которая не уточняется ссылкой на атрибут. лолжиз появляться в качестве операнла или в операторе сравнения значения объекта (=) или в конструкторе окземиляра сложного объекта (|).

Примеры

147 — В лом примере показано, как групповая ссылка можег использоваться лля сравнения значений. ENTITY E] ABSTRACT SUPERTYPE,

attrib] >: REAL:

7S


FOCT P HCO 10303-11—2000

attrib? | REAL:

attrib} REAL: END ENTITY: ENTITY E2 SUBTYPE OF (El),

attribA : INTEGER:

attnbB INTEGER:

attnibC INTEGER:

END ENTITY: LOCAL

a: Eh

b. E2, END.LOCAL.

-- построим сложные экземпляры обзектов а и В,

-- используя оператор конструирования эк емиляра сложного объекта a= E1(0.0. 1.0. 2.0) ff E2Q1. 2. 3): b= ENMO0. 1.0.2.0) f E203. 2. 1):

-- проверим значения ваиь

-- через их атрибуты. объявленные в Е1 а\ Е = МЕ]... ТВОЕ +“

это эквивалентно (a.attribl = b.attmbl) AND (a.attrib2? = b.attrib2) AND (a.attrib3 = b.attnb3)

*)

105 “Угот пример показывает. как групповая ссылка может использоваться лая указания типа ланных конкретного объекта. рассматриваемого для имени атрибута. ENTITY too!:

attr. REAL,

END ENTITY:

ENTITY foo2 SUBTYPE OF (fool). attr? : BOOLEAN: END. ENTITY: TYPE t = BINARY (80) FIXED: END TYPE: ТУРЕ скалу = SELECT(foo2. th: END TYPE:

LOCAL у. скалу: END LOCAL,

1Е `ТН$.[002` 1М ТУРЕОЕС) ТНЕХ -- этим обеспечивается отсутствие

-- непрелсказуемых результатов (ечасовой» } vitoob.attr = 1.5: -- присваивает 1.5 айг агрибуга \, -- так как айг определен в юо1, для использования 001 имеется групповая ссылка END IF: 12.8 Обращение к фуикцин Обрашение к функции вызывает функиию. Обрашение к функции состоит из илентификатора и возможного списка фактических параметров. следующих за илентификатором. Число фак-

76


ГОСТ Р ИСО 10303-11—2000

тических параметров. их тип и порялок слелования, должны соответствовать реквизитам фор- мальных параметров. установленных лая ланной функнии. Выражение обрашения к функции получает возврашаемое значение при подетановке фактических параметров вместо формальных параметров в объявлении функции.

Вызов функции расширяет пространство экземпляров. Любые экземпляры. созланные в процессе выполнения функции. должны быть уникально обозначены в общей совокупности известных экземпляров. Как правило, созданный экземпляр недоступен вие создаюшей функнии и. в частности, не является частью совокупности экжмпляров. доступных аля рассмотрения. Ис- ключением является случай. когла экемиляр есть результат исполнения функции или доступен при обращении к ней. В мхом случае экземпляр остается доступным в точке обрашения. Есаи экземиляр. появившийся таким образом (то есть как значение вычисляемого атрибута или конелан- 1ы). возвращается на уровень схемы. он становится частью всей исследуемой совокупности. Синыксис:

207 function call = ¢ built in. function | function ref) [ actual parameter list | .

actual parameter list = parameter)". parameter Jo)".

231 parameter = expression .

Правила ин ограничения Перелаваемые фактические параметры лолжны быть совместимы по присвоению с фор- мальными параметрами.

Пример 19 Пример использэвания обрашения к функнии.

ENTITY point: X.Y. 2 2 number. END ENTITY: FUNCTION midpoint of fine CL: line ):point:

END FUNCTION:

IF midpoint of line(LS06)\ = 9.0 ТНЕМ ... -- оператор ссылки ина атрибут применяется -- непосредственно к результату функции END IF: 12.9 Инициализатор агрегатов Инициали затор агрегатов используется для установления значения массива. мультимножест- ва. списка или набора. В квалразных скобках заключены ноль или несколько выражений. присваиваюшщих значения типу данных, совместимому с основным типом данных агрегата. Когла вы- ражение имеет лва или более значения, эти значения разаеляются пятыми. При ининиализании разреженного массива лля обозначения пропушенных мементов используется неопрелелениое ( 2} значение. Выражение инициализатора агрегата присваивает агрегату значение. солержашее чения конкретных элементов. Число инициализированных элементов лолжно соответствовать люфым грапииам. заманным ля агрегатного типа данных. Когла используется инициали затор агрегатов. не солержашии ни олного элемента. он созлает пустое мультимпожество, список или набор (ота конструкция не может быи, использована для инициализации пустых массивов}.

Синтаксис: {59 ageregate initializer = ‘|’ [| element {°° element} | OP -

193 element = expression | °° repetition |. 273 repetition = numeric expression |

Пример L10 Залано объявление: a: SET OF INTEGER; значения могуг быть присвоены сделуюшим образом а:=| 1.3.6. 9%5. -12 |; -- 9%8 является выражением = 72.


FOCT P HCO 10303-11—2000

Kora PRA значений является может быть использовано повторение. Оно представляется двумя выражениями. ра шеленными символом лвоеточия (5). Вы- ражение слева от лвоеточия является повторяемым значением. Выражение справа от двоеточия. повторизель. указывает. сколько раз лолжно быть повторено повторяемое значение. Выражение справа от двоеточия вычиеляелся олии раз, перел инициализаниен, и должно имегь неотринатедьное нелочиесленное значение.

Пример 111 - Залано следующее объявление:

а: ВАС ОЕ ВООГЕАМ Следующие ава оператора эквивалентны:

а. = | ТВОЕ: А |: а. = [ TRUE, TRUE, TRUE, TRUE, TRUE |;

12.10 Оператор конструнровання жземпляра сложного объекга

Оператор конструирования экземпляра сложного объекта 4) созлает экземпаяр сложного объекта посредством комбинирования значений компонентов сложного объекта. Значения компонентов сложного объекта могут комбинироваться в произвольном порялке. Значением выражения оператора конструирования экюемиляра сложного объекта является значение компонента сложного объекта или окземиляр сложного объекта. Тип данных компонента сложного объекта может появляться голько олин раз на ланиом уровне выражения оператора конструирования экземпляра сложного объекта. Значение компонента сложного объекта может появляться на разных уровнях данного выражения. если они являются вложенными, то есть если значение компонента сложного объекта используется аля созлания экземпляра сложного объекта. который играет роль агрибута в значении компонента сложного объекта. используемом для создания эк юмпляра сложного объекта. Более полную информацию об экземплярах сложных объектов смотри в приложении В.

И

Пример 112 Залано: ЕМТИУ а ABSTRACT SUPERTYPE: al . INTEGER: END ENTITY: ENTITY b SUBTYPE OF fa), bl: STRING, END ENTITY: ENTITY c SUBTYPE OF (a):

el: REAL: END ENTITY:

Далее могут быть созланы слелующие окземиляры сложных объектов: LOCAL

УГ: а:

52 :с.: END LOCAL,

v2 = a(2) || c(7.998e-S): -- ло жеюмиляр тина аёс

vl .= 52 М -- ло экемиляр типа а&6&с

У := уа | М -- ло экюмпляр типа

vb c= vb lj v2: -- это HeBEPHO, Tak KAK GEE THN a&b&a&e

12.11 Совместимость типов

Операнлы в операторе лолжны быгь совместимы с типом(ами) данных. требуемым для оператора. Типы данных обоих операнлов некоторого оператора гакже лолжны быть совместимы межлу собой: такие случаи были описаны в данном разделе выше. Типы ланных могуг быть совместимыми. не булучи идентичными. Тины ланных совместимы. когла выполняется олно из следующих условии:

- типы данных являются одинаковыми:

7S


ГОСТ Р ИСО 10303-11—-2000

- олии тий данных является поаллином или коикретимиией лругого (вк.почая опрелеленные типы данных. использующие определенный тип ланных как исходный тип ланных);

- оба типа данных являются типами данных массивов с совместимыми основными типами ланных и одинаковыми границами:

- оба типа данных являются типами данных списков с совместимыми основными типами

данных; - оба типа ланных являются типами данных мультимножеств или наборов с совместимыми

основными типами ланных. Пример 113 Заланы следующие опрелеления: TYPE natural = REAL, WHERE SELF == (1.0: END TYPE:

TYPE positive = natural: WHERE SELF > 0.0;

ЕМО TYPE:

TYPE bag of natural = BAG OF natural:

END TYPE:

TYPE set of up to five positive = SET [0:5] OF positive: END TYPE:

Совместимы слелукицие типы ланных.

REAL INTEGER, REAL. NUMBER, natural, positive

natural REAL. NUMBER, natural, positive

Positive REAL. NUMBER. natural, positive

bag of_natural BAG OF RLAL. BAG OF NUMBER. BAG OF natural.

BAG OF posiuve, SET OF REAL. SE] OF NUMBER. SET OF natural. SET OF positive. hag of natural, sct_of_up_to five positive

set_of_up_to_five. postive | BAG OF REAL. BAG OF NUMBER, BAG OF natural. BAG OF posttise. SET OF REAL. SET OF NUMBER, SLT OF natural. SET OF positive. hag of natural, sct_of_up_to_five_posttive

13 Исполняемые операторы

Исполняемые операторы опрелеляют лействия функиии. проиелур и правил. Эти операгоры могут произволить леиствия только нал локальными переменными аля FUNCTION, PROCEDURE # RULE. Эти операторы используются для того. чтобы опрелелить логические от- ношения и действия. необхолимые лля поддержки опрелеления ограничений. то есть размелов \МЕВЕ и Данные операторы не оказывают влияния на ок объектов в области значений. как это опрелелено в разделе 5. Исполняемыми операторами являются: нустои (пШЬ. присваивания СЛЗЕ (альтернативы). составной (compound). ЕУСАРЕ 1Е (условный. выюв пронелуры (ргоседиге са). ВЕРЕАТ (цикла). КЕТОКМ { возврата) и ЗКР (пропуска).

Снитаксис: 29 stmt = alias stmt | assignment stmt‘ case stmt; compound stmt. escape stmt:

if stmt | nulf stme | procedure call stmt | repeat stmt | return stmt | ship stmt.

Oe Pparophl MOLY NORINTRCH ToabKo FLINCTION, PROCEDURE илн RULE.

79


FOCT P HCO 10303-11—2000

13.1 Пустой оператор Исполняемый оператор, который состоит только из точки с запятой (;). называется пустым оператором. Никаких действий пустой оператор не выполняет.

Синтаксис.

247 null stmt =

Пример 114 использование пустого оператора.

IFa= 12 THEN

. -- это пустой оператор. ELSE

bis ik: END IF:

13.2 Оператор псевдоимени

Оператор АША$ (пеевлоимени) обеспечивает возможность локального переименования опжлеленных переменных и параметров. Синтаксис: l64 alias stmt = ALIAS variable id FOR general ref | ччайвег } ‘мам | пи |

END ALIAS . 216 general ref = parameter ref {| variable ref’.

В области onepatopa ALIAS выражение Ее 4 неявно объявляется COOTHCTCI- нуюшей типизированной переменной. имеющие змачения определенного илентификатора. сиелуюшего за ключевым словом FOR.

Примечание — Правила видимости для уве _ № описаны в 19.3.1.

Пример 115 Предположим. что существует тип объекта ройи (точка) с атрибутами onepatop ALIAS может быть использован в функции сающае еп (вычислить ллину) лая сокрашения длины возврашаемого выражения.

ENTITY hne:

start. point,

end pot: pomt: END ENTITY:

FUNCTION calculate length (the line : line). real: ALIAS s FOR the line.start: point: ALIAS ¢ FOR the_hine.end point: RETURN ~ @.njee2? + + (8.2 — . END ALIAS: END ALIAS: END FUNCTION: 13.3 Onepatop Оператор присваивания Фазмегитей!) используется для назначения экземпляра локальной пе-

ременной или параметра. Тип ланных значения. присваиваемого переменной. лолжен быть ‹овместим по присваинанию с переменной или

И римечание — Оператор присваивания может быть использован лля определения TORO, NTO) THO локальные переменные являкяся озним и тем де эк юмиляром

Снитаксис: 166 assignment stmt = general ref ( qualifier | °:=" expression ©.

216 general ref = parameter ref | variable ref.

I ример 116 Слелу юшие выражения являются правнльными присваиваниями.

LOCAL a,b > REAL: р :

SU


ГОСТ Р ИСО 10303-11--2000

END LOCAL:

7 eT

Совместимость по присваиванню

Считается. что тип ланных, присваиваемый переменной или параметру. совместим по присваиванию с типом данных результирующего выражения. если выполняется олно из слелуюших условий:

- типы данных являются одинаковыми:

- выражению присваивается тип. являкипийся полтипом или конкретизациен типа, когорый объявлен лля присваиваемой переменной:

- объявленный тии присваиваемой переменной является опрелелениым типом, чьим фунламентальным типом является выбираемый тип. а выражению присваивается значение типа. совместимого с одним или более типами. усгановленными в списке выбора выбираемого типа.

Фундаментальным гипом опрелеленного типа является фупламентальный тий исхолного типа. а фундаментальным типом типа, отличного ог опрелелениюго типа. является сам этот гип:

- переменная представлена опрелеленным типом. фундаментальным типом которого являет- ся простой тип. а выражению присвоено значение этого простого типа;

- переменная прелставлена агрегатным типом ланных. а выражением является инициализатор агрегага. элементы которого сонместимы по присваиванию с основным типом агрегатного типа данных.

Экземиляры компонента сложного объекта. которые ие являются лопустимыми эк юмплярами сложного объекта (ем. приложение В+. не могут быть присвоены параметрам или переменным и не могут быть переланы функциям и пропелурам в качестве фактических параметров. Это не ограничивает присвоения лопустимых эк юмиляров сложных офъектов.

13.4 Оператор САЗЕ

Оператор САЗЕ (альтернативы) является механизмом. обеспечивающим выборочное исполнение выполняемых операторов. в зависимости от значения выражения. Оператор выполняется в зависимости от значения выражения selector, Оператор альтернативы состоит из выражения. являюшегося перекиючателем (селектором) альтернативы. и списка альтернативных действий. кажлому из которых предшествует олио или несколько выражении, являющихся метками альтернативы. Результирующий тип метки альтернативы должен быть совместим с типом переключателя альтернативы. При исполнении оператора альтернативы булет исполнен первый оператор. у которого значение метки альтернативы совпалает со значением перектючагеля альтернативы. Ис- полняется не более одного из альтернативных операторов. В случае. если ни у олной из меток альгернативы значение не совпадает со значением переключателя альтернативы, то:

- если имеется предложение ОТНЕК\УУЕ. исполняется операгор. связанный с ОТНЕКМУЕ:

- если прелложение ОТНЕК\МЬЕ отсутствует. ин одного оператора исполнено не булст. Синтаксис:

182 case stmt = CASE selector OF [ case action |} | ОТНЕКМТУЕ `` яли | END CASE

283 selector = expression . [SO case action = case Па] | ^^ abel | oo stmt. ISD case label = expression .

Правила и ограничения

Тип значения. присвоенного альгернатавным меткам. должен быть совместим с типом значения. присвоенного селектору альтернативы.

Пример 117 Простейший пример оператора альтернагивы. использующего пелочисленные альтернативные метки.

LOCAL a: INTEGER. \: REAL:

END LOCAL :


FOCT P HCO 10303-11—2000

a= 3: х := 3497: САЗЕ а ОЕ | DN I= ЗЕМ): 2 EXP(A): 3 DA c= SORT (A): -- ло операгор исполнено’ 4,5 LOGGED:

OTHERWISE : x := 0.0, END CASE :

13.5 Составной оператор Составным оператором является последовательность операторов. заключенная между клю-

чевыми словами ВЕСГМ и ЕМО. Составной оператор действует как елиничный операгор.

al римечание — Составной оператор не обра зусг нанои области действия.

Синтаксис:

1853 Compound stmt = ВЕСТУ мии | чаи

Пример ИЯ - Простенший составной оператор:

BEGIN a=atl;: IFu > 100 THEN а:=0: END IF; END.

13.6 Оператор выхода

Оператор ЕЗСАРЕ вызывает немелленный переход к опералору. следующему непосрелст- венно за тем оператором ВЕРЕЛТ. в котором появился ланный оператор ЕЗСАРЕ.

Примечание — Применение оператора ЕЗСАРЕ янляется слинственным способом выхола из бес- конечного пикла при исполнения операзора КЕРЬАГ.

Синтаксис:

202 е5саре мии = ЕУСАРЕ `;’.

Правила ин ограничения Оператор ЕЗСАРЕ лолжен появляться только внутри области ленствия оператора КЕРЕАТ.

Пример 9 - Оператор ЕЗСАРЕ передает управление оператору. следукинему за END REPEAT, ec.in a < 0,

REPEAT UNTIL (a=): IF (a < 0) THEN ESCAPE: END IF: END REPEAT; -- управление перелается заесь 13.7 Оператор Ш... Else Условный оператор 1Е ... ТНЕМ ... ЕЁЪУЕ лопускает условное выполнение операторов на о - нове выражения типа ГОСИСАЕ. Когла юра! ехргеззюв принимает змачение ТКИЕ. исполняет- ся оператор. слелукниии за ключевым словом ТНЕМ. Когда оса! ехргез$юй принимаст значение КАБУЕ или ЧХКМОМ/М. исполняется оператор. следующий за ключевым словом ELSE. ees это ключевое слово имеетея в выражении. Если юра! принимает ипачение или UNKNOWN, а ключевое слово ЕЁБУЕ отсутствует, управление переластся слелуюшему оператору. Синтаксис: 2230 if stmt = 1F logical expression THEN sunt | мпи | | ЕЁЗЕ маи {мии} | END IF CL.

241 logical expression = expression .


ГОСТ Р ИСО 10303-11--2000

Пример 124 Простой оператор IF: 1Е аз 10 THEN

ELSE сне hk END IF:

13.8 Оператор вызова процедуры

Оператор вызова процелуры вы иявает пронелуру. Фактические параметры при вызове пронелуры должны быть согласованы с формальными параметрами. установленными для этой процедуры, по числу. порялку и гипу. Синтаксис: 257 procedure call stmt = ( built’ in: procedure | procedure rf)

[ actual parameter list foo. Factual parameter list = “(°C parameter {°.° parameter | .

5 251 рагатеег = .

Правила и ограничения Перелаваемые фактические параметры лолжны быть совместимы по присваиванию с фюр- мальными параметрами.

Пример 12}. Вьызюв встроенной процедуры ПУЗЕВТ. INSERT (point: list. this point, here):

13.9 Оператор иикла

Оператор цикла {КЕРЕАТ» используется для повторения в зависимости от условий выполнения послеловательности операторов. Начало или прололжение повторения определяется путем оценки управляющего услония(ии). Управляющими условиями являются:

- конечная нтерация:

- пока условие имеет значение ТКИЕ:

- ло тех пор. пока условие не получит ТКЫЕ.

Синтаксис:

272 rmpeat мии = REPEAT repeat control“: мли | чаи } ЕМО КЕРЕЛТ 271 repeat control = [| increment. control | | while control | [ unl control {

222 increment control = variable id bound [ TO hound 2 [| BY increment | .

174 bound, | = numene expression . 175 bound 2 = numeric expression . 22) mermment = nunmeric expression .

Для залания условий прерывания повторения может использоваться комбинания управляю - ших элементов. Для управления итерациями ланные условия вычисляются слелуюиим образом:

а} Если залано управление прирашением. то ло начала выполнения оператора КЕРЕАТ вычисляегся оператор управления прирашением. как описзно в 13.9.1.

Ь) Вычисляется управляющее выражение МНЕ. при его наличии. Если результат принимает значение ТКИЕ (или условие \НЫЕ отсутствует). тело оператора КЕРЕЛТ исполняется. Если результат принимает значение wan UNKNOWN, исполнение оператора КЕРЕАТ прерывается.

с) Когла исполнение тела оператора КЕРЕАТ завершено. вычисляется какое-либо управляюкицие выражение СМТИ.. Если результирукиним значением является ТКЫЕ. аальненшее ис- полнение итераций прекрашается и выполнение оператора КЕРЕАТ завершается. Если результат имеет значение или ОМКХО\ММ. управление оператором КЕРЕАТ возврашается к управленню приращением. Если управлякинее условие (МТИ. отсугствует. управление оператором REPEAT возврашается к управлению прирашением.

9) Если имеется управление прирашением. значение переменной цикла изменяется на аичину прирашения на каждой итерации. Если значение переменной пикла нахолится в прелелах or a0 bound_2, включая сами границы. управление проволится по вышеописанному пункту Ь). в противном случие выполнение операгора КЕРЕАТ прерывается.

sa


FOCT P HCO 10303-11—2000

Пример 122 В ланном примере показано. как в операторе КЕРЕАТ могуг исполь- зованы несколько управляющих условии. Исполнения операторов будут повторяться до тех пор. пока не булет лостигиула требуемая точность или He булет выполнено сто циклов. независимо от первого: то есть повторение прекрашается. лаже если решение не сошлось.

REPEAT i := 1 TO (00 UNTIL 2 epsilon c=... END REPEAT;

13.9. Управление

Управление прирашением приволиг к выполнению тела оператора цикла азя ряла значений из соогетствуюшщей последовательности. При входе в оператор иикла неявно объявляется переменная числового типа variable_id, принимающая значение Боцад_1. После кажлой итерации переменной присваивается значение зайа Ме №4 + шсгетеот. Если прирашение не опрелелено. аля нет по умолчанию принимиется значение равное елинине (1). Если значение уапае_№ лежит межлу i: Бош_2 (включая случай. когда 4 = bound_2). выполнение оператора пикла продолжается. Синтаксис: 222 increment control = variable id bound [ TO bound 2 [ ВУ |.

174 bound } = numence erpression .

I7S bound 2 = numeric expression . 221 increment = numeric expression -

Правила и ограничения

а} Выражениям питеге _ехргезюй. прелставляющим Боцп@_1. и лолжны быть присвоены числовые значения.

Ь) Выражения numeric_expression. представляющие границы и прирашение. вычисляются алии раз при вхоле в оператор REPEAT.

с) Если какое-либо из выражений питенйе прелставлякицих гранины ини прирашение. имест неопрелеленное (2) значение. оператор REPEAT ие выполняется.

Ч) Перед первым вычислением оператора управления приращением проверяючся слелую- щие условия:

- сели кгемеш (приращение) положительно. а bound_!| > оператор REPEAT te выполняется:

- если егетей отрицательно, а < оператор КЕРЕАТ не выполняется:

- сели нулевое (0). оператор КЕРЕАТ не выполизется:

- иначе, оператор КЕРЕАТ выполняется ло 1ех пор. пока значение переменной ве выйлет за установленные гранины или пока олин из аругих операторов управления пиклом не прернег сго выполнение.

се) Переменной пикла зада Ме _@ присваивается значение Боцад_1 в начале первого итерацнонного иикла. а в начале кажлого послелующего пикла она унеличиваестся на величину 1асгетет! (прирашения ).

А Тел оператора ВЕРЕАТ ие должно изменять значение переменной цикла.

г} Оператор REPEAT образует локальную область действия. в когорой переменная цикла зама Бе 14 объявляется неявно как числовая переменная. Веледетвие этого. любое объявление Ме _@ во внешней обласги лействия не вилимо в операторе КЕРЕЛТ. а значение переменной цикла недоступно за прелелами оператора REPEAT.

13.9.2 Управление МНШЕ

Управление \НЕ обеспечивает ининиализацию и прололжение выполнения тела one pa- гора КЕРЕЛТ. пока управляющее выражение имеет значение Управляюшее выражение вычисляется перел кажлой итерацией.

Если присутствует управление а управляющее выражение имест значение FALSE или UNKNOWN, тело оператора КЕРЕАТ не выполняется.

Синтаксис: 316 while control = WHILE logical expression .

241 logical expression = expression .


ГОСТ Р ИСО 10303-11—2000

Правила и ограничения:

а) Логическому выражению = logical_expression присваиваться значение типа LOGICAL.

Ь) Логическое выражение ехргез$ой вычисляется заново в начале кажлой итераиии.

13.9.3 Управление ИХГИ.

Управление СМТИ. обеспечивает продолжение выполнения тела оператора КЕРЕАТ до тех пор. пока управлякицее выражение не примет значение ТКЫЕ. Выражение лолжно вычислятся после каждой игерацин.

Если управление ОМТИ. является елииственным видом управления. всегла должна быть выполнена но крайней мере олна итерания.

Синтаксис:

312 until control = UNTIL logical expression - 241 logical expression = expression .

Правила и ограннчения

а) Логическому выражению юра ехргезюв лолжно присваиваться значение тина LOGICAL.

by clornueckoe logical_expression вычисляется заново в конце кажлой итерации.

13.10 Оператор возврата

Оператор возврата RETURN прерывает исполнение функини РОМСТПОМ или пронелуры PROCEDLRE. B фуиквни оперлор КЕТИКМ лолжен опрелелять выражение. Значение. полученное при вычислении данного выражения. является результатом фуикиии и возвращается в точку сс вызова. Выражение должно быть совместимо по присваиванию с обьявлениым возвращаемым типом функции. В процедуре оператор КЕТИКМУ не лолжен содержать никаких выражении.

Синтаксис:

276 return stmt = RETURN [ °C) expression “Vo

Правила и ограничения Oneparop RETURN может появляться только в функции ЕИМСТЮМ или пропелуре

PROCEDURE. Пример 123 Виды оператора RETURN.

RETURN (50) : {+ изфункиции *) RETURNiwork point) : (* из функции ®) RETURN : (* 43 *}

13.11 Оператор пропуска

Оператор пропуска КР вызывает немедленный переход в конеи гела оператора КЕРЕАТ. в котором оп появился. Затем вычисляются и оцениваются управляющие условия. как ло описано в разделе 13.9.

Синтаксис:

290 р или =

Правила и ограничения

Оператор ЗКР должен появляться только в области лействия оператора КЕРЕАТ.

Пример 124 Оператор ЗКР перелает управление оператору END REPEAT. который вызывает онпенку управления UNTIL,

REPEAT

ТЕ (ат 0) THEN SKIP: END IF: ... -- лот оператор булет пропушен. еслиа < 0 END REPEAT:


FOCT P HCO 10303-11—2000

14 Встроенные константы

В языке ЕХРКЕЗЗ сушествует несколько всгроенных констант, которые описаны нидх.

п римечание — читается, что всгроснные константы именя точное значение. лаже если это значение непрелетавимо в компьютерс.

14.1 Константа г

CONST Е является константои тина КЕАЁ, прелставляющей математическое значение е основание функции натурального логарифма (п). Ее значение задается следующей математиче-

ской формулой. e= Уи

14.2 Неопределенная

Символ неопределенности {?) символизирует неолнозначиое значение. Он совместим со всеми типами данных.

Примечание — Наиболее часто неопределенность 17) используется для сиспификации верхнеи границы мульлимножсетва. списка или наборч. Этим прелетавляется понятие о нсаграниченности размера агрегагног значения, впрелеленного типом данных.

14.3 Ложь

Константа ЕАЁУЕ (ложь) является константой тина ГОСЛСАЕ. представляющей логическую запись понятия “ложь”. Она совместима с тииами ланных ВООБЕАМ и LOGICAL.

14.4 Ин

Константа РГ (пи} янляетея констаитой типа КЕАЁ. прелсгавляюшей математическое значение л. отношение димы окружности к се лиаметру.

14.5 Self

IleeusoKoHetanra SELF на ланный экюемиляр облекта или значение тина. SELF может появляться внутри объявления объекта. объявления типа или конструктора объекта.

п р имечание — ЗЕЕ не является константой. но ведет себя как константа в каждом контексте. Она ПОЯВиИТЬСЯ.

14.6 Истина

Коистанта TRUE чистина) является константой тина СОСИСАЕГ. представляющей логическую запись понятия зистина». Она совместима с типами ланных ВООГЕАМ и LOGICAL,

14.7 Неизвестная

Константа UNKNOWN (неизвестное? является константой типа представляюшщен TOT факт. что для оценки логического условия пелостэточно ланных. Она совместима с типом данных ГОССЛАЕ, но несовместима с типом ланных BOOLEAN.

15 Встроенные функции

Предполагается. что все функиии ги математические оперании вообще) вычисляются с точ- ным результатом.

Для кажлой встроенной функиии залаи ее прототин. покамяваюшщий типы се формальных пзраметров и результат (возврашаемое значение}.

15.1 Abs — арифметическая функция FUNCTION ABS ( V:NUMBER ) : NUMBER;

Функния АВ$ во зврашает абсолютное значение числа

Параметры. \ является числом.

Результат. Абсолютное значение \. Возвращаемый тип ланных идентичен типу параметри \.

Пример 125 ABS (-10)--> 10

15.2 ACos — арифметическая функция

FUNCTION ACOS ( V:NUMBER ) : REAL; ACOS возврашает величину угла по заланному значению Параметры. № - число. являкицееся косинусом угла.

Результат. Угол в ралианах (0 = результат = л). косинуе которого равен \. Условия. —1.05 У 1.0 Пример 126 - АСО$ (0.3 ) --> 1.266103...

SO


ГОСТ Р ИСО 10303-11--2000

15.3 Ат — арифметическая функция

FUNCTION ASIN ( ¥:NUMBER ) : REAL; Функпия ASIN возврашает величину угла по заланному Параметры. число. являющееся синусом угла. Результат. Угол в ралианах (-л/2 х результат 5 л;2). синуе которого равен \. Условия. 103 У 1.0 Пример 127. АЗИМ 4 0.3 } --> 3.14692...е |

15.4 АТар — арнфметнческая функция FUNCTION ATAN ( VENUMBER; V2: NUMBER ) : REAL;

Функиия АТАМ вошрашает значение угла по заданному значению тангенса \. тле У задано выражением \ = \[/\2.

Параметры

а)\ | чиело.

2 чисел.

Результат. Угол в ралианах < результат = л/?). тангене которого ранен VW. Если V2 pas- но нулю. результатом яизяется х/2 или -л/2 в зависимости ог знака У 1.

Условия. УГ и \2 не должны одновременно иметь нулевое значение.

Пример 12$ -. АТАМ ( -5.5, 3.0 ) --> -1.071449...

15.5 Вейр? -- двомчная функция FUNCTION BLENGTH ( ¥:BINARY ) : INTEGER; Функиия ВЕЕМСТН возвращает число битов в лвоичном значении. Параметры. \ является лвоичным зиачением. Результат. Возврашаемым значением является число битов в переланиом лвоичиом значении.

Пример 129

LOCAL

n: NUMBER:

x: BINARY = СООТ: END LOCAL:

п :- ВЕЕМОСТН сх ); -- п присваивается значение 8

15.6 Со$ — арифметическая функция FUNCTION COS ( V:NUMBER ) : REAL; Функиия COS косинуса угла. Параметры. \ число. являющееся значением угла в ралианах. Результат. Косинус \ (-1.0 $ результат $ 1.0}. Пример 130 - С0$ (0.5 ) --> 8.77582..Е-1

15.7 — общая функция FUNCTION EXISTS (¢ V:GENERIC ) : BOOLEAN;

EXISTS возврашаег значение ТКЫЕ. если существуег значение лля вхолного параметра. или если влолной параметр ие имеет значения. Функция ЕХ15 ТУ полезна для проверки. имеют ли значения ОРТЮМАЕ атрибуты или инициализированы ли переменные.

Параметры. \У является выражением. результаты которого могут быть любого типа.

Результат. ТВОЕ или ЕЛЁЬЗЕ. в зависимости ол того. имеет ли \ факгическое или неопреде - ленное (2) значение.

Пример 131 IF EXISTS (a) THEN ...

15.8 Ехр — арнфметнческая функция FUNCTION EXP ( V:NUMBER ) : REAL;

EXP ¢ (OCHOBALIME ное в степень \.

Параметры. \ число

Результат. Значение


Похожие документы