Принципы структурной алгоритмизации

Автор работы: Пользователь скрыл имя, 16 Ноября 2012 в 10:48, контрольная работа

Описание работы

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

Содержание работы

Введение
Глава 1 принципы структурной алгоритмизации
Глава 2 Требования и преимущества структурной алгоритмизации
Глава 3 Базовый набор структур для построения алгоритма
3.1 Линейные и разветвляющиеся структуры
3.2 Ветвящейся структурой
3.3 Организация циклических структур алгоритма
Заключение
Библиографический список

Файлы: 1 файл

контры.docx

— 80.05 Кб (Скачать файл)

X:= X+5;

является широко распространенной командой в программировании. Такая  команда называется оператором присваивания и означает, что к текущему содержимому  ячейки с именем X добавляется число 5, после этой операции сложения ячека X теряет свое старое значение и приобретает  новое, которое на 5 больше предыдущего. В результате выполнения оператора присваивания всегда обновляется значение ячейки памяти, имя которой указывается в записи оператора слева от знака «:=» после вычисления формулы, которая записана в операторе справа от знака «:=».

Линейные структуры используются на первых этапах детализации задачи. Однако только в редких случаях все  предписания такого алгоритма являются элементарными. Так, например, предписание 5 на рис. 7 не является элементарным и  требует дальнейшей детализации. Поэтому  назначение блока 5 предусматривает  сверху свободное место для записи координат блока, в котором будет  раскрываться смысл детализируемого  участка.

Часто для дальнейшей детализации  алгоритма используются ветвящиеся структуры

3.2 Ветвящейся структурой

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

     

Рис. 8. Ветвящаяся структура: а — стандартная схема; б, в  — частные случаи ветвления.

Каждая ветвь может  быть любой степени сложности, а  может вообще не содержать предписаний (рис. 8б — 8в), т.е. быть «вырожденной». Выбор той или иной ветви осуществляется в зависимости от результата проверки условия. В каждом конкретном случае алгоритм реализуется только по одной  ветви, а выполнение остальных исключается. В схемах, приведенных на рис. 8, положительный  исход проверки условия обозначен  знаком «+» (да или true/истина, что соответствует  значению в ячейке памяти, хранящей результат операции проверки условия, равном «1»), а отрицательный —  знаком «-» (нет или false/ложь, «0»).

При составлении алгоритма  в виде псевдокодов линии связи  заменяются словами «Идти» или «Перейти»  с указанием номера предписания (оператора), которое должно выполняться  на следующем шаге алгоритма. Горизонтальная линия, объединяющая ветви «+» и  «-», в псевдокодах имеет аналог — «Конец-Если». После фразы «Конец-Если»  можно указать номер псевдокода, в котором записано проверяемое  условие. Например, после пункта 7 в  алгоритме, представленном на рис. 5, указывается: «Конец-Если 5». Использование данной конструкции при записи алгоритма  в псевдокодах позволяет легко  определить место окончания разветвления (продолжения основного алгоритма).

На практике часто встречаются  задачи, когда нужно выбрать не одно из двух, а одно из трех или более  предписаний. Такую структуру называют выбором варианта, ее также можно  построить из линейных и ветвящихся структур, как показано на рис. 9. В  такой структуре сначала вычисляется  значение выражения, стоящего в операторе  присваивания. В зависимости от значения переменной i затем будет выбран либо 1-й, либо 2-й, либо 3-й, либо 4-й оператор. Число выбираемых операторов в такой  структуре не ограничено.

Рис. 9. Выбор варианта: а  — структура выбора варианта; 
б, в — условное обозначение.

В качестве примера использования  ветвлений рассмотрим составление  алгоритма для вычисления функции f в зависимости от конкретных значений x, a, b:

 

Первое приближение алгоритма  будет иметь вид, показанный на рис. 10. Анализ этого алгоритма показывает, что все его блоки, кроме блока 5, являются элементарными. Возможный  вариант дальнейшей детализации  блока 5 представлен на рис. 11. Все  блоки второго этапа детализации  являются элементарными, поэтому составление  алгоритма практически закончено.

На заключительном этапе  производится сборка алгоритма, т.е. содержимое рис. 11 помещается на рис. 10 вместо блока 5.

 

Рис. 10. Первый этап составления  алгоритма.





             

    1. Рис. 11. Второй этап составления алгоритма.

 

 

 

 

 

 

 

3.3 Организация циклических структур алгоритма

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

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

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

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

Логика работы цикла с заданным условием продолжения работы (цикл-ПОКА) описывается схемой, показанной на рис. 10а.

Рис. 12. Структура цикл-ПОКА: а — развернутая схема цикла; 
б — запись в псевдокодах; в — компактная схема цикла.

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

Структура цикл-ПОКА предусматривает  вариант, когда тело цикла не выполняется  ни разу. Такое возможно, если условие, стоящее в начале цикла, сразу  же не выполняется. Когда на практике возникает необходимость использовать структуру, у которой тело цикла выполняется хотя бы один раз, то в этом случае применяется цикл с заданным условием окончания работы (цикл-ДО).

Структура цикла-ДО приведена  на рис. 13. С помощью такой структуры  обычно составляют алгоритмы итерационных вычислительных процессов, то есть процессов, в которых для определения  последующих значений переменной используется ее предыдущее значение. Итерационный процесс положен, например, в основу метода последовательных приближений.

Выход из конструкции цикл-ДО осуществляется по достижении заданной точности или по какому-либо другому  признаку.

Рис. 13. Структура цикл-ДО: 
а — развернутая схема цикла; б — запись в псевдокодах; в — компактная схема цикла.

Если условие проверяется  до входа в «тело цикла», то оно  называется предусловием, если после  — постусловием.

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

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

Рис. 14. Развернутая схема  цикла с заданным числом повторений: 
а — с возрастающим параметром; б — с убывающим параметром.

На рис. 14 обозначено: i —  параметр цикла;   — начальное значение параметра;   — конечное значение параметра;   — приращение (шаг). Прочитать этот алгоритм можно следующим образом: «Меняя параметр от начального значения до конечного значения, повторять тело цикла».

Алгоритм, приведенный на рис. 14, принято называть развернутой  схемой цикла с заданным числом повторений. Такая схема является удобной  для анализа алгоритма и поиска ошибок.

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

Для изображения компактной графической схемы цикла с  параметром могут быть использованы символы «Подготовка» или «Граница цикла» (см. табл. 1), как показано на рис. 15.

Рис. 15. Компактная запись цикла  с параметром: 
а — с использованием символа «Подготовка»; б — с использованием символа «Граница цикла».

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

 

 

 

Заключение

До недавнего времени  «хорошими » программистами считали  тех, кто писал достаточно хитроумные программы , занимающие минимум основной памяти  и выполняющиеся за кротчайшее время. Однако результатом такого хитроумного  кодирования оказывались, программы  которые было трудно (а то и совершенно невозможно) понять даже самому их автору  через некоторое время. Значительный прогресс в  программировании был  достигнут с появлением технологии структурного программирования.

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

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

 

 

 


Информация о работе Принципы структурной алгоритмизации