Андрей Вяльцев "Макросы Datamine. Ресурсный геолог"

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

date_range Год издания :

foundation Издательство :Издательские решения

person Автор :

workspaces ISBN :9785006411692

child_care Возрастное ограничение : 12

update Дата обновления : 30.06.2024

A) Да

B) Конечно нет. Datamine – уважаемое ПО и не запускает макросы, написанные в «Блокноте»

C) Нет. Datamine не понимает код без подсветки синтаксиса

Макросы

Структура макросов

Из чего состоят макросы

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

1. «Внутренние» команды макросов – команды для организации выполнения макроса. Давайте назовем их по-программистски «операторами». К этой разновидности команд можно отнести:

– Оператор присвоения LET. С помощью этого же оператора могут выполняться некоторые функции – как арифметические, так и строковые: получение целой части, абсолютного значения, максимума/минимума, степенные, показательные, логарифмические и тригонометрические функции; изменения регистра строки, определение длины строки, поиск подстроки в строке и т. д.

– Условный оператор IF.

– Оператор безусловного перехода GOTO.

– Операторы «общения» с пользователем ECHO и PROMPT.

– Операторы организации подпрограмм GOSUB и RETURN.

– Оператор запуска команд ОС OPSYS.

– Оператор запуска другого макроса XRUN.

– Операторы чтения файлов FILES и FIELD.

– Другие операторы, которые с ходу не вспомнить, но которые будут описаны по ходу настоящей книги.

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

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

Какой тип алгоритма описан здесь?

Вот пистолеты уж блеснули,

Гремит о шомпол молоток.

В граненый ствол уходят пули,

И щелкнул в первый раз курок.

Вот порох струйкой сероватой

На полку сыплется. Зубчатый,

Надежно ввинченный кремень

Взведен еще. За ближний пень

Становится Гильо смущенный.

Плащи бросают два врага.

Зарецкий тридцать два шага

Отмерил с точностью отменной,

Похожие книги


Все книги на сайте предоставены для ознакомления и защищены авторским правом