Макросы Datamine. Ресурсный геолог - страница 10
A) Линейный алгоритм
B) Алгоритм с ветвлением
C) Мы такого не проходили
D) Циклический алгоритм
$ Задание 3.5
Какой тип алгоритма описан?
Раз он в море закинул невод, —
Пришел невод с одною тиной.
Он в другой раз закинул невод, —
Пришел невод с травой морскою.
В третий раз закинул он невод, —
Пришел невод с одною рыбкой,
С непростою рыбкой, – золотою.
A) Циклический алгоритм
B) Мы такого не проходили
C) Линейный алгоритм
D) Алгоритм с ветвлением
$ Задание 3.6
Какой тип алгоритма описан?
У попа была собака,
Он ее любил.
Она съела кусок мяса —
Он ее убил.
И в землю закопал.
И надпись написал:
«У попа была собака,
Он ее любил.
Она съела кусок мяса —
Он ее убил.
И в землю закопал.
И надпись написал:
«У попа была собака,
Он ее любил.
Она съела кусок мяса —
Он ее убил.
И в землю закопал.
И надпись написал:
…»
A) Циклический алгоритм
B) Алгоритм с ветвлением
C) Линейный алгоритм
D) Мы такого не проходили
Линейные алгоритмы
Линейные алгоритмы – это алгоритмы, когда «все ясно». То есть линейный алгоритм выглядит следующим образом: «Начало макроса – выполняем действие А, затем действие Б, действие В… конец макроса». Продолжая аналогию с реальной жизнью: «выключу компьютер, надену обувь, зайду в магазин…».
Однако, поскольку целью данной книги не является обучение тому, как правильно покидать рабочее место, перейдем непосредственно к написанию макроса.
Итак, давайте решим достаточно простую задачу: необходимо по файлу каркасов минерализации и полному файлу базы данных опробования создать рудную выборку. В наиболее простом случае процедура не предполагает каких-либо вариантов действий. Если выполнять ее вручную, последовательность действий можно описать так:
– Выборка проб каркасами минерализации с зональным контролем по полю номера рудного тела.
– Композитирование выбранных проб.
– Урезка ураганных содержаний.
Давайте для простоты предположим, что нам известно следующее (файлы для тестирования10):
– имя файла рудных каркасов – ore_tr/pt;
– имя файла скважин – holes;
– имя поля номера рудного тела – BODY;
– имя поля урезаемых содержаний – AU;
– средняя длина проб, к которой требуется привести рудную выборку – 1 м;
– оптимальная сеть декластеризации – данные расположены по регулярной сети;
– уровень ураганных содержаний одинаков для всех рудных тел – 100 г/т;
– имя файла обработанной рудной выборки holes_ore_cut.
На многих приводимых ниже картинках с фрагментами кода в начале строки можно видеть номер. Это просто номер строки, который не является частью макроса. Номера строк автоматически проставляются многими текстовыми редакторами. Это не часть текста, это просто номера строк, они «физически» – в виде символов текста – не существуют и нужны только для облегчения адресации пользователя, например: «в строке N выполняется такое-то действие».
Макрос, выполняющий все описанные выше действия, будет выглядеть следующим образом (macro111):
Смотрим, что тут написано.
Строка 1 – заголовок макроса и его имя (OREHOL).
Строка 3 – запуск процесса SELWF. Строки до появления следующего восклицательного знака (до строки 16 включительно) – это параметры запуска данного процесса:
– на строке 3, кроме имени запускаемого процесса Datamine, указано, что входным файлом для процесса SELWF является файл holes – &IN (holes);
– на строке 4 указано, что файлом треугольников каркасов минерализации является файл ore_tr – WERETR (ore_tr);
– на строке 5 указано, что файлом точек каркасов минерализации является файл ore_pt –