- •Тема 1 Введение
- •Новейшие направления в области создания технологий программирования
- •Законы эволюции программного обеспечения
- •Трансляция программ
- •Классификация языков программирования
- •Технологическая схема решения задач
- •Эволюция современных систем программирования
- •Структурное программирование
- •Структурирование алгоритмов и программ
- •Методы разработки алгоритмов
- •Концепция модульного программирования
- •Объектно-ориентированное программирование
- •Моделирование при разработке программного обеспечения. Case-системы
- •Проблема искусственного интеллекта. Экспертные системы
- •Тема 2 Особенности программирования в оконных операционных средах
- •Общие сведения о технологии .Net
Структурное программирование
Любая самая сложная задача решается на ЭВМ с помощью ограниченного ряда типовых действий: присваивания, ввода и вывода данных, выбора и повторения действий. Каждому действию соответствует своя алгоритмическая конструкция и оператор алгоритмического языка. Набор базовых конструкций и правила построения из них любых алгоритмических конструкций были предложены в начале 70-х годов в теории структурного программирования, сыгравшей важную роль в развитии программирования и оказавшейся настолько жизнеспособной, что до сих пор является основной в большом количестве проектов.
С появлением методологии структурного программирования был внедрен блочный принцип построения алгоритмов и программ. Согласно этому принципу алгоритмы и программы должны строиться из готовых конструкций, как это делается в технике, где станки, машины, компьютеры и другие изделия собирают из готовых узлов, блоков, модулей, а не из мелких деталей.
Разработка и использование алгоритмов определяется ГОСТ 19.701-90 (Схемы алгоритмов, программ, данных и систем), который распространяется на условные обозначения и устанавливает правила выполнения схем, используемых для отображения различных видов задач обработки данных и средств их решения.
Структурирование алгоритмов и программ
Структурное программирование – методология программирования, базирующаяся на системном подходе к анализу, проектированию и реализации программного обеспечения. Основу этой методологии составляют следующие положения:
Сложную задачу целесообразно разбивать на простые подзадачи, а программу составлять из модулей (независимых частей), имеющих простую структуру и допускающих независимую отладку;
Алгоритмы и программы должны составляться с использованием небольшого набора базовых конструкций, имеющих только один вход и выход;
Алгоритмы целесообразно строить по шагам по принципу «сверху вниз», начиная с укрупненной схемы и заканчивая детализированной.
Применение этих положений позволяет систематизировать работу программиста, получать структурированные алгоритмы и программы, которые легко читать, проверять и использовать на практике.
Структурированными будем называть алгоритмы и программы, которые построены из базовых конструкций. Каждая алгоритмическая конструкция имеет фиксированную структуру, один вход, один выход и предполагает выполнение конкретного действия. В программах базовые конструкции реализуются операторами алгоритмического языка.
Элементарной структурной единицей алгоритма является функциональный блок, а программы – оператор. Этот блок предполагает один шаг преобразования, обработки или отображения информации. Команда функционального блока является указателем на выполнение действия, а оператор алгоритмического языка – описанием этого действия в программе.
Основные схемы базовых алгоритмических конструкций «Следование», «Выбор» и «Цикл» приведены на рисунке.
Для более полного использования возможностей алгоритмических языков набор базовых конструкций расширен. В его состав дополнительно включены разновидности указанных конструкций: «Выбор варианта», «Цикл с предусловием», «Цикл с параметром» и «Цикл с постусловием».
На основе блочного принципа строятся сложные алгоритмические конструкции и алгоритмы в целом. При этом базовые конструкции или последовательно соединяются одна с другой, или функциональные блоки замещаются другими конструкциями. В этом случае связи замещаемого блока должны сохраняться. Таким образом, использование в алгоритмах базовых конструкций упрощает программирование, поскольку каждая из них реализуется соответствующим оператором алгоритмического языка.
Структурирование программы выполняется по следующим правилам:
Каждая базовая конструкция алгоритма реализуется в программе соответствующим оператором алгоритмического языка;
Конструкции программы (описания данных, операторы) размещаются один под другим с одинаковым отступом вправо, относительно заголовка программы, начало и конец ее блока, в свою очередь, записываются строго один под другим;
Внутренние конструкции программы (имена и значения констант, имена и типы переменных) и внутренние операторы, входящие в состав других операторов, сдвигаются вправо на одну или несколько позиций относительно начала основной конструкции;
Каждое описание данных и каждый оператор записываются в новой строке программы;
Продолжения описаний и операторов на новых строках сдвигаются вправо.
Такое структурное оформление текста программы обеспечивает наглядность ее представления и читабельность.