Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Госы_3.doc
Скачиваний:
86
Добавлен:
27.10.2018
Размер:
1.55 Mб
Скачать

44. Средства описания структурных алгоритмов.

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

- следование - помечает последовательное выполнение действий;

- разветвление - отвечает выбора одного из двух вариантов действий;

- цикл-поки - определяет повторение действий, пока не будет нарушено некоторое условие, выполнение которого проверяется в начале цикла.

Кроме схем, для описания алгоритмов можно использовать псевдокод, Flow -форми и диаграммы Насс-Шнейдермана. Все перечисленные нотации с одной стороны базируются на тех же основных структурах, что и структурное программирование, а из другого - допускают разные ровные детализации.

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

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

45. Эффективность. Уменьшение времени выполнения программы.

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

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

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

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

- машинно-независимые выполняют оптимизацию на уровне входного языка, например, вынесения вычислений константных (независимых от индекса цикла) выражений из циклов и т. п.

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

]

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