2.2.1. ФОРМАЛИЗАЦИЯ ЗАДАЧИ

Этап формализации задачи самый непростой, для его выполнения нужно умение выделять в предметной области наиболее важные характеристики для решения задачи и выявлять способы решения задач, принятые на практике. Кроме того, требуются специальные знания и умения моделирования предметной области, поэтому часто привлекаются математики (или системотехники-аналитики), если предметная область слишком сложна.

В результате формализации создается математическая модель предметной области, которая записывается средствами различных видов математических моделей, определяются входные и выходные данные для задачи (или комплекса задач). Либо просто формируется строгое описание задачи, поскольку не всякая предметная область может быть описана средствами какой-либо математической модели (так называемые слабо формализуемые или неформализуемые области).

Пример

Пусть в качестве предметной области рассматривается процесс зачисления абитуриентов в вуз, который хорошо знаком читателю, а потому не требует пространных комментариев. Попробуем формализовать его, определив исходные данные, требуемые для решения задачи, результаты решения, а также сам процесс решения (при этом возможны некоторые упрощения относительно реального положения дел, которые не должны смущать недавнего абитуриента).

Итак, процесс зачисления происходит следующим образом:

1) в приемную комиссию поступают сведения об абитуриенте, включающие данные о его оценках из аттестата о среднем образовании;

2) по мере сдачи вступительных экзаменов данные об оценках, если они положительны, добавляются к имеющимся сведениям об абитуриенте, либо, если экзамен не сдан, абитуриент исключается из претендентов на зачисление;

3) когда все вступительные экзамены сданы, список абитуриентов упорядочивается по мере убывания общей суммы оценок по сданным экзаменам с учетом среднего балла по аттестату;

4) первые фамилии из списка в количестве, соответствующем объему набора на первый курс, и есть фамилии студентов первого курса, которые вносятся в приказ на зачисление.

Таким образом, для решения задачи требуется следующее:

· исходные (входные) данные: фамилия, имя, отчество студента (для различения в списке), оценки из аттестата, оценки за вступительные экзамены, объем набора на первый курс;

· результат решения (выходные данные) – список студентов первого курса в виде списка фамилий, имен, отчеств;

· ход решения (последовательность требуемых действий).

Формализация выполнена. Ее результат – описание решения в виде последовательности шагов, входные и выходные данные.

Программист на основании математической модели или другого формального описания поставленной задачи разрабатывает программу. Он выполняет также отладку программы, используя для этого ЭВМ. Этот этап называется программированием задачи.