– Другие операторы, которые с ходу не вспомнить и которые не будут описаны в книге, но которые вы наверняка найдете сами, если будете копаться в руководстве и справке.
2. Команды запуска процессов. Эти команды начинаются с имени соответствующего процесса, перед которым (ожидаемо) должен присутствовать восклицательный знак. Например, процесс EXTRA запускается командой `!EXTRA`.
Команды будут упомянуты и более подробно описаны по мере возникновения в них необходимости согласно логике изложения материала. Более «сухое» и официальное описание команд можно найти в справочных материалах.
Ограничения
Сразу пару слов об ограничениях (а вы думали, что все так просто?). До некоторой версии (мы сами не заметили до какой) длина одной строки в макросе не должна была превышать 80 символов. Причина такого ограничения, вероятно, уходила корнями в седую древность[9 - https://softwareengineering.stackexchange.com/questions/148677/why-is-80-characters-the-standard-limit-for-code-width] (если кто не знал, то код Datamine минимум до версий Datamine Studio 3.* был написан на практически «мертвом» Visual Fortran). Все, что выходило за пределы 80 символов, Datamine нагло игнорировал. С некоторых пор это ограничение снято, но мы бы рекомендовали его придерживаться с целью обратной совместимости – вдруг ваш макрос попадет в руки пользователю, который не в курсе, что вышли новые версии Datamine. Ну и плюс: если строка вашего макроса слишком длинная, читать его не очень удобно. Это не единственное ограничение, остальные будут описаны в подходящий момент.
Алгоритмы: что это и какие бывают
Алгоритм можно определить как набор правил для решения некоторой задачи. Или по-другому: алгоритм – это идея, тогда как конкретный макрос – его реализация.
Алгоритмы принято делить на:
– Линейные алгоритмы. Самый простой тип. Просто последовательность команд, выполняемых одна за другой. После первой команды всегда выполняется вторая, после второй всегда выполняется третья и т. д. Линейный алгоритм используется, когда все ясно и никаких вариантов развития событий не предполагается.
– Алгоритмы с ветвлением. Используется при возникновении вариантов развития событий.
если пойдет дождь – я поеду на автобусе,
если будет солнечно – прогуляюсь пешком,
если друзья предложат выпить пива – вообще никуда не пойду.
– Циклические алгоритмы. Описывают процессы, повторяющиеся много раз.
– «Каждый год 31 декабря мы с друзьями ходим в баню» – то есть один раз указывается действие, а затем сообщается, что это действие исполняется некоторое количество раз.
– Алгоритмы с подпрограммами. Перефразируя известного киноперсонажа, можно сказать: «Точно такие же, как и циклические, но другие». Об этом чуть позже.
При написании макросов вы будете писать обычные линейные алгоритмы, алгоритмы с ветвлением и, возможно, будете использовать циклы и подпрограммы. Обычно достаточно большой макрос содержит все разновидности алгоритмов. Далее будут описаны упомянутые варианты алгоритмов по принципу «от простого к сложному».
$ Задание 3.1
Какой тип алгоритма описан в этом увлекательном рассказе?
Одна старуха от чрезмерного любопытства вывалилась из окна, упала и разбилась.
Из окна высунулась другая старуха и стала смотреть вниз на разбившуюся, но от чрезмерного любопытства тоже вывалилась из окна, упала и разбилась.
Потом из окна вывалилась третья старуха, потом четвертая, потом пятая.
Когда вывалилась шестая старуха, мне надоело смотреть на них, и я пошел на Мальцевский рынок, где, говорят, одному слепому подарили вязаную шаль.
A) Мы такого не проходили
B) Циклический алгоритм
C) Алгоритм с ветвлением
D) Линейный алгоритм
$ Задание 3.2
Какой тип алгоритма описан в данном отрывке?
Размышляя таким образом, она пробралась в маленькую комнатку, сверкающую чистотой. У окна стоял стол, а на нем, как она и надеялась, лежал веер и несколько пар крошечных перчаток. Алиса взяла веер и пару перчаток и совсем уже собралась выйти из комнатки, как вдруг увидала у зеркала маленький пузырек. На нем не было написано: «ВЫПЕЙ МЕНЯ!», но Алиса открыла его и поднесла к губам.
A) Линейный
B) Циклический
C) Алгоритм с ветвлением
D) Мы такого не проходили
$ Задание 3.3
Какой тип алгоритма описан в этой пыхтелке?
Если б мишки были пчелами,
То они бы нипочем
Никогда и не подумали
Так высоко строить дом;
И тогда (конечно, если бы
Пчелы – это были мишки!)
Нам бы, мишкам, было незачем
Лазить на такие вышки!
A) Мы такого не проходили
B) Алгоритм с ветвлением
C) Линейный алгоритм
D) Циклический алгоритм
$ Задание 3.4
Какой тип алгоритма описан здесь?
Вот пистолеты уж блеснули,