Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
16_Алгоритмы и способы их описания.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
214.53 Кб
Скачать

Комбинирование базовых структур

Разработка алгоритмов решения задач на компьютере требует определенных навыков. При построении алгоритма нужно стремиться к тому, чтобы запись алгоритма была понятной и наглядной. Кроме того, внося изменения в алгоритм, желательно не перестраивать его полностью.

Эти требования можно удовлетворить, если придерживаться структурного подхода. В основе этого подхода лежит утверждение, что алгоритм любой степени сложности можно выразить с помощью трех базовых структур: следования, ветвления и цикла. Базовые структуры можно комбинировать одну с другой, организовывая следования структур, разветвления, вложения одной структуры в другую.

Когда с помощью базовых структур создается более сложная структура, разрешено пользоваться двумя способами:

  • подсоединять одну структуру к другой, образуя последовательность структур;

  • заменять функциональные блоки S1 и S2, любой из базовых структур вложенными в них структурами.

Эти правила позволяют строить алгоритмы любой степени сложности, развивая их не только «вширь», но и «вглубь». Получаемые при этом алгоритмы имеют четкую и ясную структуру.

Еще одним преимуществом структурного подхода является его модульность. Программу, построенную на основе структурного алгоритма, можно представить в виде отдельных модулей.

Модуль - это последовательность логически связанных операций, которая оформлена в виде отдельной части программы.

Когда создается большая программа, модули способны существенно упростить труд программиста. К работе могут подключаться другие программисты, которые берут на себя написание определенных модулей. В программу можно вставлять готовые модули библиотек. Благодаря модульной структуре упрощается и процесс отладки программы: каждый модуль может быть отлажен сначала по отдельности, а затем отлаживается работа всей программы.

Метод пошаговой детализации

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

Рассмотрим метод пошаговой детализации на примере решения квадратного уравнения ах2 + bх + с = 0. На первом этапе решаются такие задачи:

  1. Ввод данных;

  2. Расчет дискриминанта;

  3. Анализ существования корней уравнения и их вычисление;

  4. Вывод результата расчета;

  5. Завершение задачи.

На втором этапе производится детализация каждого из названных пунктов. Рассмотрим для примера пункт 1:

  1. Ввести коэффициент а;

  2. Если а = 0, сообщить, что уравнение является линейным и перейти к пункту 5;

  3. Ввести коэффициент b;

  4. Ввести коэффициент с;

  5. Получить у пользователя подтверждение, что значения коэффициентов верны, если нет, то вернуться к пункту 5.

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

Writeln (‘введите коэффициент а= ', а); Readln (a);

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

В большинстве случаев при построении алгоритма методом пошаговой детализации не сразу удается получить удовлетворительный результат. Поэтому процесс идет методом «проб и ошибок», и для получения окончательного варианта алгоритма или программы может потребоваться несколько шагов анализа и исправления ошибок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]