![Процесс создания программы](../Pictures/01_01.%20Процесс%20создания%20программы.png) Процесс создания программы для решения прикладной задачи обычно состоит из 3 этапов: 1) Задача - описывается с помощью некоторого математического аппарата, тем самым создается (описывается, определяется) неформальный алгоритм 2) На основе математической модели определяются АТД, которые будут использоваться в алгоритме. **АТД** - это математическая модель с совокупностью операторов, определенных в рамках этой модели. После определения АТД создается программа на некотором псевдоязыке 3) АТД преобразуется в конкретные структуры данных и операторы некоторого языка программирования, на котором и создается итоговая программа **Пример:** раскраска географической карты Дана плоская географическая карта. Требуется раскрасить государства на карте так, чтобы никакие 2 соседних не были раскрашены одним цветом. По возможности использовать небольшое количество цветов 1) Математическая модель - граф 2) АТД - граф с определенными на нем операциями: - нахождение вершин, смежных с вершиной **i** - определение цвета вершины - раскраска вершины цветом **color** - и т. д. ``` цикл i=1 to количество вершин { цикл j=1 to количество вершин { если (вершина j смежная с i и вершина j выкрашена цветом color) установить флаг цвета color; найти первый свободный цвет color_s; раскрасить вершину i цветом color_s; } } ``` 3) Структуры - двумерный и одномерный массивы ![Пример географической карты](../Pictures/01_02.%20Пример%20географической%20карты.png)