Перейти к содержанию

Макросы Datamine. Ресурсный геолог

Автор:

Категория
космос и вселенная
Год издания
Издательство
Издательские решения
ISBN
9785006411692
Возрастное ограничение
12+
Обновлено
25.09.2026

Аннотация

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

Читать «Макросы Datamine. Ресурсный геолог» — Андрей Вяльцев онлайн

Страница 3 из 6

Ограничения

Сразу пару слов об ограничениях (а вы думали, что все так просто?). До некоторой версии (мы сами не заметили до какой) длина одной строки в макросе не должна была превышать 80 символов. Причина такого ограничения, вероятно, уходила корнями в седую древность9 (если кто не знал, то код 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Друзей развел по крайний след,

И каждый взял свой пистолет.

A) Линейный алгоритм

B) Алгоритм с ветвлением

C) Мы такого не проходили

D) Циклический алгоритм

$ Задание 3.5

Какой тип алгоритма описан?

Раз он в море закинул невод, —

Пришел невод с одною тиной.

Он в другой раз закинул невод, —

Пришел невод с травой морскою.

В третий раз закинул он невод, —

Пришел невод с одною рыбкой,

С непростою рыбкой, – золотою.

A) Циклический алгоритм

B) Мы такого не проходили

C) Линейный алгоритм

D) Алгоритм с ветвлением

$ Задание 3.6

Какой тип алгоритма описан?

У попа была собака,

Он ее любил.

Она съела кусок мяса —

Он ее убил.

И в землю закопал.

И надпись написал:

«У попа была собака,

Он ее любил.

Она съела кусок мяса —

Он ее убил.

И в землю закопал.

И надпись написал:

«У попа была собака,

Он ее любил.

Она съела кусок мяса —

Он ее убил.

И в землю закопал.

И надпись написал:

…»

A) Циклический алгоритм

B) Алгоритм с ветвлением

C) Линейный алгоритм