Решение любой задачи является творческим процессом, который состоит из нескольких последовательных этапов. К ним относятся:
А. Анализ постановки задачи и ее предметной области
1. понимание постановки и требований исходной задачи, определение предметной области, для которой поставлена задача,
2. анализ предметной области, выявление данных, которые фиксируют входную и выходную информацию (определение их структуры и свойств), определение отношений между данными, условий и ограничений, накладываемых на эти отношения,
Б. Формальное моделирование решения задачи
3. выбор и применение формальной системы для описания модели предметной области и решения задачи,
4. формирование основной идеи, выбор методов решения задачи,
5. определение технологий, средств и исполнителя решения задачи, построение алгоритмов, реализующих выбранные методы,
В. Практическое решение
6. применение выбранных методов и средств для решения,
7. анализ полученных результатов.
Эти этапы ориентированы для получения решения не отдельно взятой, конкретной задачи, а некоторого класса задач данного типа. Этап построения алгоритмов, реализующих выбранные методы решения задачи, детализирует и визуализирует процесс ее решения. Алгоритмизация позволяет уже на этом этапе оценить эффективность решения, уточнить методы решения для различных потоков входных данных и выявить некоторые ошибки.
В этой последовательности наиболее трудоемким и рутинным является этап применения выбранных методов и средств для решения задачи. В настоящее время наиболее распространенным средством для решения задач является ЭВМ. Применение выбранных методов и алгоритмов для решения на ЭВМ включает дальнейшую детализацию ее решения за счет описания последовательности применяемых операций в виде программы для ЭВМ. Это придает процессу решения не только визуальные качества, но и качества интерактивности.
Не все задачи, решаемые с помощью ЭВМ, требуют составления сложных программ. Например, задачи вычислений в электронных таблицах или задачи поиска и выборки данных в базах данных. Решение некоторых задач благодаря внедрению новых информационных технологий вообще не требуют программирования, что расширяет сферу применения ЭВМ. Однако, и при решении этих задач необходимо выполнение вышеприведенных этапов.
На первом этапе уточняется постановка задачи, после чего выявляются отдельные явления, объекты, процессы, их связи и зависимости предметной области.
Здесь определяются такие понятия как исходные и результирующие данные, абстрактно представляющие информацию о процессах предметной области реального мира, а также поясняются каким образом из исходных данных могут быть получены результирующие.
Исходные данные должны быть полными, т.е. содержать данные, необходимые и достаточные для решения задачи. Если данные неполные, необходимо приложить дополнительные усилия для сбора дополнительных сведений; эта ситуация может также возникнуть на последующих этапах при выборе метода решения.
Различают исходные данные трех видов: постоянные, условно-постоянные и переменные.
Постоянные исходные данные - это данные, которые сохраняют свои значения в процессе решения задачи (математические константы, координаты неподвижных объектов) и не зависят от внешних факторов.
Условно-постоянные данные - это данные, которые могут иногда изменять свои значения; причем эти изменения не зависят от процесса решения задачи, а определяются внешними факторами (величина подоходного налога, курс валют, количество дней в году).
Переменные данные - это данные, которые изменяют свои значения в процессе решения задачи.
На этом этапе важно не только классифицировать данные по отношению к процессу решения, но определить их наименование, тип, структуру и ограничения, накладываемые на значения. Желательно также определить допустимые и недопустимые операции по отношению к различным типам исходных данных.
Классификация данных по структурному признаку
Простые Структурированные
Нечисловые Числовые Однородные Неоднородные
Рисунок 1. - Классификация данных.
На рис.1 представлена классификация данных.
Данное относят к простому типу, если в любой момент времени оно определяет одно и только одно значение. Диапазон изменения возможных значений определяется типом данных. Например, требуется вычислить площадь поверхности некоторого тела. Очевидно, что для представления информации о вычисляемой площади поверхности некоторого тела достаточно использовать данное простого числового типа. Простые данные определяют такое отношение: одно имя - одно значение.
Структурированные данные отличаются от простых тем, что к ним применимо другое отношение: одно имя - много значений. Если все элементы, входящие в такую структуру, однотипны, то такая структура называется однородной, в противном случае - неоднородной. Классическим примером однородной структуры является массив, являющийся последовательностью однотипных значений, таких как, например, (2,51,3,7,88). Неоднородная структура в отличие от однородной содержит значения различных типов, относящихся к одному понятию или объекту, и, значит, такое структурированное данное несет в себе больше информации. Для представления неоднородных структур используют запись. Запись - это структура, предназначенная для представления данных различного типа. Запись состоит из поименованных полей, каждое из которых должно содержать значение определенного типа.
Рассмотрим простой пример. Задача заключается в определении в некоторой стране города с максимальным количеством жителей. Данные, которые необходимо проанализировать, это нечисловые данные, содержащие информацию о названии города, и числовые данные, содержащие информацию о численности населения в этом городе. В качестве структуры, содержащей данные о названии города и количестве в нем жителей, следует выбрать неоднородную структуру - запись, пример которой изображен в таблице 1.
Таблица 1.Пример записи
Имя поля: Город
Имя поля: Количество жителей
Тип поля: Строка символов
Тип поля: Число
Значение: Москва
Значение: 8 578 676
В качестве структуры, содержащей информацию о множестве городов рассматриваемой страны, можно выбрать однородную структуру типа массив, состоящий из записей таблицы 1.
Определение отношений между данными, условий и ограничений, накладываемых на значения данных и эти отношения, зависит от конкретной постановки задачи и требований пользователя.
В результате анализа постановка и требования задачи могут быть представлены в обобщенном виде.