Структурное программирование

Лекция 23.

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

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

Язык программирования Паскаль содержит полный набор структурных типов данных:

· простые переменные,

· массивы,

· последовательные файлы,

· множества,

· записи,

· записи с вариантами,

· указатели, а также развитые средства построения из них новых типов данных.

Язык программирования Паскаль был разработан для обучения программированию как систематической дисциплине, в частности структурному программированию. Структурное программирование - способ программирования с широким использованием подпрограмм.

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

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

Основная цель структурного программирования - создать программу с минимальными взаимосвязями между ее модулями. В ИДЕАЛЕ каждый модуль должен иметь один вход и один выход.

Опыт использования методов структурного программирования позволяет сделать следующие выводы:

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

2) использование модулей небольших размеров позволяет упростить и ускорить процессы их отладки;

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

4) структурное программирование является хорошей базой автоматизации разработки модульных программ.

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

Еще одно огромное достоинство языка Паскаль - это краткость языка. Созданный первоначально для обучения программированию, язык Паскаль стал очень распространенным языком.

Основные этапы решения задач на ЭВМ:

· постановка задачи;

· построение математических моделей;

· разработка методики решения задач;

· разработка алгоритма решения задачи;

· составление программы по разработанному алгоритму;

· ввод программы в ЭВМ;

· отладка программы (поиск и исправление ошибок);

· проведение расчетов по программе;

· вывод результатов;

· анализ результатов.

При составлении любого вида программы для ЭВМ понятие алгоритма является ключевым.

Само слово «алгоритм» означает правило выполнения арифметических действий с использованием арабских цифр.

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

Слово «алгоритм» происходит от латинской формы написания имени математика IX века Аль-Хорезми, автор учебника арифметики, который сформулировал правила выполнения арифметических действий.

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

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

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

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

Пять характеристик алгоритмов:

1) вход алгоритма;

2) выход алгоритма;

3) определенность шагов алгоритма;

4) выполнимость шагов;

5) конечность.