Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНИК-Pascal.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
499.71 Кб
Скачать

1.3. Структурный подход к решению задач

Как видим, все обозримые действия можно описать набором всего трех основных операций.

Первоначально, когда начинало развиваться программирование, первым методом (методологией) создания (разработки и написания) программ был метод программирования «снизу вверх». Вначале разрабатывались отдельные модули, и затем из них строилась программа, как в детском конструкторе - из различных готовых блоков Вы бы строили дом. На первый взгляд это довольно просто, но здесь кроется ловушка: если вы не построили стен, то не сможете начать строить крышу и, если нет какого-либо, даже самого незначительного, модуля, то здание не будет полностью построено. В случае программирования это значит, что мы не сможем передать полный текст инструкций (программу) исполнителю, и задача (действие) выполнена не будет. К счастью, наше мышление устроено несколько по-другому. Когда мы хотим что-то сделать, то мы разбираем задачу на более мелкие подзадачи, те, в свою очередь, еще на более мелкие (более детализированные). Это продолжается до тех пор, пока наш процессор (исполнитель) не поймет инструкции. При этом, если мы не знаем, как решить какую-либо из подзадач в данный момент, то временно откладываем это "на потом". Данный подход - когда для решения некоторой задачи мы разбиваем ее на независимые подзадачи, и далее рассматриваем как реализуются (решаются) каждая из этих подзадач, называют структурным подходом

Рассмотрим, как с помощью этого подхода можно описать алгоритм задачи по приготовлению чая.

1-й этап. Постановка задачи.

Задача - "приготовить чай", то есть мы должны произвести действие.

Приготовить чай

2-й этап. Детализация задачи.

Для того, что бы произвести любое действие согласно определению, которое мы дали понятию действия, надо начать его, делать его и закончить его.

Приготовить чай

Начать

Работать

Закончить

3-й этап. Детализация подзадач.

Рассмотрим действие "Начать". Для того, что бы приготовить чай, нам необходимо выполнение нескольких условий. Это: наличие заварки, воды, емкости для воды и нагревателя. Если хотя бы одного компонента нет, то вряд ли мы сможем приготовить чай.

Начать

Проверить наличие компонент

Продолжить работу

Прейти на "закончить"

Определим емкость

Определим где вода

Определим вид нагревателя

Определим вид заварки

При продолжении работы мы определяем:

  1. Какая емкость для воды у нас в наличии и выбираем ее. Она может быть разных видов.

Определим емкость

Обычный Чайник

Ведро

Котелок

Электрический чайник

Стакан

  1. Определим, где будем брать воду.

Определим где вода

Озеро

Колодец

Водопроводный кран

Ведро

река

3. Определяем, чем будем нагревать.

Определим вид нагревателя

Костер

Газовая плита

Электрическая плита

Кипятильник

другие

4. Определим вид заварки.

Определим вид заварки

Заварка в пакетиках

Заварка россыпная

Заварка жидкая

Травяной сбор

другая

Рассмотрим действие "Работать". Действие "Работать" можно разделить на три основных поддействия:

Работать

Набрать в емкость воду

Вскипятить воду

Заварить чай

Действие Набор в емкость воды пока рассматривать не будем. Это зависит от того, какая емкость у нас будет, и где мы будем брать воду. Рассмотрим действие "Вскипятить воду". Что значит "вскипятить воду"? Это значит, что воду в емкости надо нагревать, пока она (вода) не закипит.

Вскипятить воду

Т

Нагревать

Используя приемы, описанные выше, можно расписать действие "Заварить чай". Более того, каждое поддействие может быть разобрано с применением этого подхода. Вы знаете, что каждое действие можно разложить на более частные поддействия, а те, в свою очередь, также разлагаются на более частные поддействия и так далее. Получается, что любую задачу можно детализировать до бесконечности, то есть нельзя написать полную инструкцию?! Совершенно верно.

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