Решение любой задачи является творческим процессом, который состоит из нескольких последовательных этапов. К ним относятся:
· постановка задачи;
· алгоритмизация;
· программирование;
· отладка программы.
На этапе постановки задачи формулируются цель и условия решения задачи, ее содержание, определяются такие понятия как исходные и результирующие данные, абстрактно представляющие информацию о процессах предметной области реального мира.
Исходные данные должны быть полными, т.е. содержать данные, необходимые и достаточные для решения задачи. Различают исходные данные трех видов: постоянные, условно-постоянные и переменные.
Постоянные данные - это данные, которые сохраняют свои значения в процессе решения задачи (например, математические константы) и не зависят от внешних факторов.
Условно-постоянные данные - это данные, которые могут иногда изменять свои значения; причем эти изменения не зависят от процесса решения задачи, а определяются внешними факторами (например, количество дней в году или налог на добавленную стоимость).
Переменные данные - это данные, которые изменяют свои значения в процессе решения задачи.
На этапе постановки задачи следует не только классифицировать данные по отношению к процессу решения, но и определить их наименование, тип, структуру и ограничения, накладываемые на значения.
По структурному признаку можно выделить простые и структурированные данные. Данное относят к простому типу, если в любой момент времени оно определяет одно и только одно значение. Диапазон изменения возможных значений данного определяется типом данных. Структурированные данные отличаются от простых тем, что они определяют несколько значений. Если все элементы, входящие в такую структуру, однотипны, то такая структура называется однородной, в противном случае - неоднородной. Классическим примером однородной структуры является массив, являющийся последовательностью однотипных значений. Неоднородная структура в отличие от однородной структуры тем, что содержит значения различных типов, относящихся к одному понятию или объекту. Для представления неоднородных структур используют запись. Запись - это структура, предназначенная для представления данных различного типа. Запись состоит из поименованных полей, каждое из которых должно содержать значение определенного типа.
После выявления данных, их структуры и отношений между ними можно приступить к построению формальной модели.
Модель - это упрощенное представление о реальном объекте, процессе или явлении. Моделирование - построение моделей для исследования и изучения моделируемого объекта, процесса, явления с целью получения новой информации при решении конкретных задач.
Для описания модели предметной области решаемой задачи необходимо выбрать некоторую формальную систему. Обычно, исходя из постановки задачи, можно сразу определить один или несколько видов моделей, подходящих для описания и моделирования решения вашей задачи: математические, геометрические, структурные, логические и др.
Наиболее распространенными и хорошо изученными являются математические модели, описывающие зависимости между данными числового типа. К основным достоинствам математических моделей, безусловно, относятся хорошо изученные и широко применяемые математические методы решения большого класса задач, что значительно облегчает формирование основной идеи и выбор методов решения задачи.
Алгоритмизация - это процесс определения последовательности действий, которые требуется выполнить для решения задачи (построение алгоритма задачи).
Под программированием понимается процесс кодирования составленного алгоритма на одном из языков программирования.
Отладка программы – это процесс обнаружения и исправления синтаксических и семантических (смысловых) ошибок в тексте программы. Наличие семантических ошибок приводит к получению неправильного результата. Для их обнаружения выполняется тестирование программы. Тестированием называют процесс выполнения программы с различными исходными данными, для которых заранее известны результаты. Определены две стратегии формирования тестов:
- “белого ящика“;
- “черного ящика“.
При тестировании с использованием стратегии “белого ящика“ тесты подбираются таким образом, чтобы по каждой ветке алгоритма пройти хотя бы один раз. При тестировании с использованием стратегии “черного ящика“ тесты подбираются таким образом, чтобы проверить выполнение всех функций программы, при этом алгоритм программы считается неизвестным.