Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Необходимость структуризации в программировании




ПРОЦЕДУРЫ И ФУНКЦИИ

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

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

Для разрешения возникших при этом проблем в практике программирование выработан ряд приемов и методов, которые принято называть методами структур­ного программирования.

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

Структурное программирование — "программирование без go to", т. е. не ис­пользуются операторы перехода без особой необходимости. В связи с этим отдель­ные фрагменты программы представляют собой некоторые логические (управляю­щие) структуры, которые определяют порядок выполнения содержащихся в них правил обработки данных. Любая программа получается построенной из стандарт­ных логических структур, число типов которых невелико.

Основные логические структуры описаны нами ранее:

следование — последовательность операторов, групп операторов, выполняе­мых друг за другом в порядке их следования в тексте программы;

ветвление — управляющая структура, которая в зависимости от выполнения заданного условия определяет выбор для исполнения одного из двух или более за­данных в этой структуре групп операторов;

повторение — цикл, в котором группа операторов может выполняться по-ггорно, если соблюдается заданное условие.

Существенная особенность всех этих структур — то, что каждая из них имеет "олько один вход и только один выход, что и обеспечивает логически последова­тельную структуру программы. Все эти структуры определяются рекурсивно, т. е. каждая из входящих в структуру групп операторов может быть одним оператором, группой операторов и может быть любой из допустимых структур — допускается вложение структур.

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

Для того чтобы возложить на транслятор контроль за корректностью использо­вания в программе различных типов данных, в Паскале требуется описывать кон­станты и переменные перед их применением с указанием их типа. Чтобы эти описа­ния было легче использовать транслятору или программисту, Паскаль требует чет­кой структуризации программы, отводя для различного рода информации строго отведенное место (см. структуру программы).

Метод нисходящего проектирования программ. С массовым внедрением вычислительной техники процесс программирования постепенно превращается в промышленное изготовление программ. Для этой цели создаются разнообразные технологии программирования. Примерами таких технологий могут служить тех­нология нисходящего программирования и технология восходящего программиро­вания.

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

ной задачи на ряд подзадач. Сначала формулируется самая грубая модель реше­ния, отдельные детали которой на первом этапе могут быть довольно расплывчаты­ми (как вид какого-либо участка земли с большой высоты, в котором неразличимы мелкие подробности). По мере разработки программы, разбивая наиболее неясные части алгоритма и добиваясь все более точных и детализированных формулировок, мы получаем более подробное решение, как бы опускаемся с большой высоты ни­же и начинаем при этом различать более мелкие детали. Решение отдельного фраг­мента сложной задачи может представлять собой самостоятельный программный блок, называемый подпрограммой. Такой процесс детализации продолжается до тех пор, пока не станут ясны все детали решения задачи. В этом случае программу решения сложной задачи можно представить как иерархическую совокупность от­носительно самостоятельных фрагментов — подпрограмм.

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

Понятие подпрограммы как обособленной именованной части программы со своими собственными объектами (константами, переменными и т.п.) является во многих языках программирования основным средством структурирования про­грамм. Современные подходы к разработке программ поощряют явное оформление в виде подпрограммы любого достаточно самостоятельного и законченного про­граммного фрагмента.




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 621; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.