В том случае, когда нужно ограничить множество значений, которое может принимать переменная (левой части S('+-')z может принимать значения только знаков '+' или '-'. При этом '+-' определяется как Sz. В правой части
Каждый
S - множество всех символов;B - множество структурных W - множество всех F - множество символов-меток;N - множество символов-чисел;R - множество символов-ссылок;O - множество символов-L - множество прописных букв (латинских и русских);D - множество десятичных цифр.В простом случае используется проверяет, является ли выражение аргумента идентификатором (последовательностью больших букв и цифр, начинающейся с буквы), и возвращает символ 'T' при положительном ответе, а символ 'F' при отрицательном ответе.
Ident S(L)1 E(LD)2 = 'T'
Ex = 'F'
Функция при интерпретации первого
В общем случае
P1(Q1)... Pn(Qn)P0,
где $$P_{i} (i\in \overline {0,n}),\setminus Q_{i} (i\in \overline {1,n})$$ - произвольные P0 - пустая цепочка, то считается P0=W (множеству всех
$$(\dots ((P_{0} \setminus Q_{n}) \cup P_{n}) \setminus \dots Q_{1}) \cup P_{1}$$.
Так, например, переменная W((' может принимать значения любых 'A', 'B', 'C', а переменная S(('A')L('0')D)2 может принимать значения любых символов, кроме буквы 'A' и цифры '0'.
Для
<имя спецификатора> S <спецификатор>
Пусть, например, вводятся
ADDOP S '+-' MULTOP S '*/'
Теперь ":", можно употреблять в спецификациях. Например, переменная S:ADDOP:1 может принимать значения только символов операций типа сложения, а переменная S((:ADDOP::MULTOP:)S)2 может принимать значения всех символов, кроме символов
Рассмотрим еще 1 пример: функция отделяет от выражения аргумента самый большой идентификатор слева и заключает его в '*'. Решение, основанное на функции не годится, так как нужно знать, где заканчивается идентификатор. Однако если использовать
Separate R S(L)1 E(LD)2 Ex = (S1 E2) Ex
Ex = '*' Ex
"*". Перед этим символом могут стоять пробелы в любом количестве, а после - любой текст, который игнорируется при выполнении программы.
Каждая
[<идентификатор>] [<ключевое слово>] [<информация>]
Присутствие всех трех S
и в качестве
| Ключевое слово | Примечание | |
|---|---|---|
START |
Начало модуля(программы) | имя |
END |
Конец модуля (программы) | без имени |
|
Объявление входов модуля | функции модуля, используемые в других модулях |
|
Объявление |
функции других модулей, используемые в данном |
R |
||
L |
||
S |
Объявление имени |
Необязательное имя модуля (программы) дается директивой START, а конец модуля (программы) отмечается директивой END без имени (
Имена всех функций ENTER (без имени). Имена функций других . Благодаря директиве программа связывается с внешним миром, так как функции ввода исходных данных и вывода результатов описываются на других , если он предназначен для использования в других должна быть обязательно).
Смысл SWAP мы дадим при описании специальных видов памяти, с которой может работать программа.
Приведем пример двухмодульной программы.
M1 START
ENTRY COMMUN
EXTRN DREAM
COMMUN E1 '+' E2 = k/DREAM/ E1. k/DREAM/ E2.
END
M2 START
ENTRY DREAM
EXTRN общение(COMMUN)
DREAM Sx E1 = Sx k/общение/ E1.
END
Здесь функция модуля M1 с внутренним именем COMMUN имеет вызов в модуле M2 с внутренним именем "общение".
Каждое имя, которое употребляется внутри .
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.