Читать книгу Макросы Datamine. Ресурсный геолог онлайн
Алгоритмы: что это и какие бывают
Алгоритм можно определить как набор правил для решения некоторой задачи. Или по-другому: алгоритм – это идея, тогда как конкретный макрос – его реализация.
Алгоритмы принято делить на:
– Линейные алгоритмы. Самый простой тип. Просто последовательность команд, выполняемых одна за другой. После первой команды всегда выполняется вторая, после второй всегда выполняется третья и т. д. Линейный алгоритм используется, когда все ясно и никаких вариантов развития событий не предполагается.
– Алгоритмы с ветвлением. Используется при возникновении вариантов развития событий.
если пойдет дождь – я поеду на автобусе,
если будет солнечно – прогуляюсь пешком,
если друзья предложат выпить пива – вообще никуда не пойду.
– Циклические алгоритмы. Описывают процессы, повторяющиеся много раз.
– «Каждый год 31 декабря мы с друзьями ходим в баню» – то есть один раз указывается действие, а затем сообщается, что это действие исполняется некоторое количество раз.
– Алгоритмы с подпрограммами. Перефразируя известного киноперсонажа, можно сказать: «Точно такие же, как и циклические, но другие». Об этом чуть позже.
При написании макросов вы будете писать обычные линейные алгоритмы, алгоритмы с ветвлением и, возможно, будете использовать циклы и подпрограммы. Обычно достаточно большой макрос содержит все разновидности алгоритмов. Далее будут описаны упомянутые варианты алгоритмов по принципу «от простого к сложному».
$ Задание 3.1
Какой тип алгоритма описан в этом увлекательном рассказе?
Одна старуха от чрезмерного любопытства вывалилась из окна, упала и разбилась.
Из окна высунулась другая старуха и стала смотреть вниз на разбившуюся, но от чрезмерного любопытства тоже вывалилась из окна, упала и разбилась.
Потом из окна вывалилась третья старуха, потом четвертая, потом пятая.
Когда вывалилась шестая старуха, мне надоело смотреть на них, и я пошел на Мальцевский рынок, где, говорят, одному слепому подарили вязаную шаль.
- A) Мы такого не проходили
- B) Циклический алгоритм
- C) Алгоритм с ветвлением
- D) Линейный алгоритм
$ Задание 3.2