Cтраница 1
Структурированность программы может иметь в своей основе самые различные причины: например, она может быть разработана в соответствии со специальными стандартами, определенными руководящими принципами и требованиями к интерфейсам, или она может быть написана с использованием языка структурного программирования, или может отражать в своей структуре процесс постепенного эволюционного развития на основе целенаправленных и систематизированных изменений. [1]
Существует мера структурированности программы, вычисляемая как средняя длина программных модулей. Предположим, однако, что мы имеем программное обеспечение в составе п управляющих программ объемом по 100 операторов каждая и библиотеку из т вычислительных программ, содержащих всего по 5 операторов. Такая система программного обеспечения должна признаваться хорошо структурированной при любых разумных значениях тип. Тем не менее, если п - 2 и т98, средняя длина модуля получается равной 6 9 оператора, а при 10 и ш10 она составляет 52 2 оператора, что должно приводить к неправильным суждениям о степени структурированности. [2]
Кроме того, улучшения структурированности программы можно достичь, применяя ( на основе результатов анализа) ряд эквивалентных преобразований. Примером такого преобразования может служить дублирование фрагментов программы с помощью метода расщепления вершин, рассмотренного в гл. [3]
Других операторов перехода в языке нет, что обеспечивает структурированность программ. [4]
Здесь с помощью ключевых слов do и od мы объединили пары операторов в единую структуру, чтобы подчеркнуть тот факт, что каждая такая пара операторов решает единую частную задачу - получает текущее значение г в результате учета очередного исходного значения. Для сохранения структурированности программы метками КОН1 и КОН2 помечены пустые операторы, завершающие каждую из упомянутых выше структур. [5]
![]() |
Дополнительные структуры. [6] |
Таким образом, использование оператора перехода не запрещается категорически: он может быть использован для реализации некоторых разрешенных структур, для которых в алгоритмическом языке нет соответствующих конструкций. То есть, наличие GO TO в программе еще не говорит о том, что структурированность программы нарушена. [7]
Обеспечение структурного программирования достигается включением в язык условных операторов если-то-иначе, выбора, цикла, выхода из цикла и операторов процедур. Как и оператор безусловного перехода, не являющийся элементом структурного программирования, так и связанное - с ним понятие метки могут быть сохранены: возможны конструкции, при которых их использование с сохранением структурированности программы делает ее более эффективной при реализации. [8]
Получилась разработанная по технологии сверху вниз хорошо структурированная программа, которая, однако, достаточно наивна, делает много лишней работы и на сложных полиэдрах ( несколько тысяч ребер и граней) будет работать очень долго. Хорошая структурированность программы позволяет ее легко менять и оптимизировать. [9]
Бели стоит задача построения большой прикладной системы, в которой должны быть несколько взаимодействующих модулей и при этом необходима еще экономия памяти и достижение максимально возможного быстродействия программ, преимущества Бейсика как быстрого и удобного для работы языка программирования отступают на второй план. Тогда возникает проблема выбора между использованием языка Паскаль или Си. Как отмечалось выше, Паскаль обеспечивает хорошую структурированность программ и обработку различных типов данных. Зато язык Си позволяет программисту быть ближе к аппаратным средствам - и более эффективно программировать процедуры обмена с периферийными устройствами. [10]
Профессиональные программисты при составлении сложных программ операционной системы на внутренних языках ЭВМ или сложных прикладных программ на входных языках обычно руководствуются принципами структурированного программирования. В соответствии с этими принципами программу составляют из типовых структурных элементов ( модулей), в основном представляющих собой типовые неразветвленные фрагменты программ, циклы и разветвления. Такие модули должны быть максимально независимыми с минимальным количеством данных, получаемых от других модулей и передаваемых им, а связи между модулями должны быть как можно более простыми. В качестве одного из основных критериев степени структурированности программы многие теоретики рассматривают отсутствие или во всяком случае минимальное число безусловных переходов между модулями. [11]