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

Алгоритмы: что это и какие бывают

Алгоритм можно определить как набор правил для решения некоторой задачи. Или по-другому: алгоритм – это идея, тогда как конкретный макрос – его реализация.

Алгоритмы принято делить на:

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

– Алгоритмы с ветвлением. Используется при возникновении вариантов развития событий.

если пойдет дождь – я поеду на автобусе,

если будет солнечно – прогуляюсь пешком,

если друзья предложат выпить пива – вообще никуда не пойду.

– Циклические алгоритмы. Описывают процессы, повторяющиеся много раз.

– «Каждый год 31 декабря мы с друзьями ходим в баню» – то есть один раз указывается действие, а затем сообщается, что это действие исполняется некоторое количество раз.

– Алгоритмы с подпрограммами. Перефразируя известного киноперсонажа, можно сказать: «Точно такие же, как и циклические, но другие». Об этом чуть позже.

При написании макросов вы будете писать обычные линейные алгоритмы, алгоритмы с ветвлением и, возможно, будете использовать циклы и подпрограммы. Обычно достаточно большой макрос содержит все разновидности алгоритмов. Далее будут описаны упомянутые варианты алгоритмов по принципу «от простого к сложному».


$ Задание 3.1

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

Одна старуха от чрезмерного любопытства вывалилась из окна, упала и разбилась.

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

Потом из окна вывалилась третья старуха, потом четвертая, потом пятая.

Когда вывалилась шестая старуха, мне надоело смотреть на них, и я пошел на Мальцевский рынок, где, говорят, одному слепому подарили вязаную шаль.

  • A) Мы такого не проходили
  • B) Циклический алгоритм
  • C) Алгоритм с ветвлением
  • D) Линейный алгоритм

$ Задание 3.2