Автор работы: Пользователь скрыл имя, 16 Ноября 2012 в 10:48, контрольная работа
Любой человек ежедневно встречается с множеством задач от самых простых и хорошо известных до очень сложных. Для многих задач существуют определенные правила (инструкции, предписания), объясняющие исполнителю, как решать данную задачу. Эти правила человек может изучать заранее или формулировать сам в процессе решения задач. Чем точнее и понятнее будут описаны правила решения задач, тем быстрее человек овладеет ими и будет эффективнее их применять.
Введение
Глава 1 принципы структурной алгоритмизации
Глава 2 Требования и преимущества структурной алгоритмизации
Глава 3 Базовый набор структур для построения алгоритма
3.1 Линейные и разветвляющиеся структуры
3.2 Ветвящейся структурой
3.3 Организация циклических структур алгоритма
Заключение
Библиографический список
X:= X+5;
является широко распространенной командой в программировании. Такая команда называется оператором присваивания и означает, что к текущему содержимому ячейки с именем X добавляется число 5, после этой операции сложения ячека X теряет свое старое значение и приобретает новое, которое на 5 больше предыдущего. В результате выполнения оператора присваивания всегда обновляется значение ячейки памяти, имя которой указывается в записи оператора слева от знака «:=» после вычисления формулы, которая записана в операторе справа от знака «:=».
Линейные структуры
Часто для дальнейшей детализации алгоритма используются ветвящиеся структуры
3.2 Ветвящейся структурой
Ветвящейся структурой (разветвляющейся) называется алгоритм (фрагмент алгоритма), в котором в зависимости от исходных данных или промежуточных результатов вычисления реализуется по одному из нескольких, заранее предусмотренных (возможных) направлений. Такие направления называются ветвями вычислений.
|
|
|
Рис. 8. Ветвящаяся структура: а — стандартная схема; б, в — частные случаи ветвления.
Каждая ветвь может быть любой степени сложности, а может вообще не содержать предписаний (рис. 8б — 8в), т.е. быть «вырожденной». Выбор той или иной ветви осуществляется в зависимости от результата проверки условия. В каждом конкретном случае алгоритм реализуется только по одной ветви, а выполнение остальных исключается. В схемах, приведенных на рис. 8, положительный исход проверки условия обозначен знаком «+» (да или true/истина, что соответствует значению в ячейке памяти, хранящей результат операции проверки условия, равном «1»), а отрицательный — знаком «-» (нет или false/ложь, «0»).
При составлении алгоритма
в виде псевдокодов линии связи
заменяются словами «Идти» или «Перейти»
с указанием номера предписания
(оператора), которое должно выполняться
на следующем шаге алгоритма. Горизонтальная
линия, объединяющая ветви «+» и
«-», в псевдокодах имеет аналог
— «Конец-Если». После фразы «Конец-Если»
можно указать номер
На практике часто встречаются
задачи, когда нужно выбрать не
одно из двух, а одно из трех или более
предписаний. Такую структуру называют
выбором варианта, ее также можно
построить из линейных и ветвящихся
структур, как показано на рис. 9. В
такой структуре сначала
Рис. 9. Выбор варианта: а
— структура выбора варианта;
б, в — условное обозначение.
В качестве примера использования ветвлений рассмотрим составление алгоритма для вычисления функции f в зависимости от конкретных значений x, a, b:
Первое приближение алгоритма
будет иметь вид, показанный на рис.
10. Анализ этого алгоритма показывает,
что все его блоки, кроме блока
5, являются элементарными. Возможный
вариант дальнейшей детализации
блока 5 представлен на рис. 11. Все
блоки второго этапа
На заключительном этапе производится сборка алгоритма, т.е. содержимое рис. 11 помещается на рис. 10 вместо блока 5.
|
Рис. 10. Первый этап составления алгоритма. |
3.3 Организация циклических структур алгоритма
Настоящие преимущества компьютера в скорости выполнения команд становятся очевидными лишь при решении тех задач, где возникает необходимость многократного повторения одних и тех же фрагментов алгоритмов.
Циклическими называются структуры алгоритмов, у которых выполнение некоторых операторов (групп операторов) осуществляется многократно с одними и теми же или модифицированными данными.
Циклические алгоритмы находят самое широкое применение в программировании, так как при этом человек составляет программу, описывая в ней циклическую структуру один раз, а компьютер выполняет ее многократно. Циклические структуры часто называют циклами.
В зависимости от способа организации числа повторений циклической структуры различают три типа циклов: цикл с заданным условием продолжения работы, цикл с заданным условием окончания работы и цикл с заданным числом повторений.
Логика работы цикла с заданным условием продолжения работы (цикл-ПОКА) описывается схемой, показанной на рис. 10а.
Рис. 12. Структура цикл-ПОКА:
а — развернутая схема цикла;
б — запись в псевдокодах; в — компактная
схема цикла.
Тело цикла может включать в себя группу операторов любой степени сложности. При выполнении условия продолжения работы выполняется тело цикла, если же условие не выполняется, то работа циклической структуры заканчивается и начинает выполняться следующая структура основного алгоритма.
Структура цикл-ПОКА предусматривает
вариант, когда тело цикла не выполняется
ни разу. Такое возможно, если условие,
стоящее в начале цикла, сразу
же не выполняется. Когда на практике
возникает необходимость
Структура цикла-ДО приведена на рис. 13. С помощью такой структуры обычно составляют алгоритмы итерационных вычислительных процессов, то есть процессов, в которых для определения последующих значений переменной используется ее предыдущее значение. Итерационный процесс положен, например, в основу метода последовательных приближений.
Выход из конструкции цикл-ДО осуществляется по достижении заданной точности или по какому-либо другому признаку.
Рис. 13. Структура цикл-ДО:
а — развернутая схема цикла; б — запись
в псевдокодах; в — компактная схема цикла.
Если условие проверяется до входа в «тело цикла», то оно называется предусловием, если после — постусловием.
Рассмотренные типы циклических структур имеют один недостаток: при ошибочном задании исходных данных может произойти зацикливание, т.е. возникает неприятная ситуация, когда происходит бесконечное повторение операторов, входящих в тело цикла. В этом случае приходится принудительно завершать работу программы, иногда это связано с потерей не сохраненных данных и самой программы.
В практических инженерных задачах обычно известны начальные значения изменяемых величин, закон изменения и конечное число повторений. Переменная, изменение которой организуется в ходе реализации цикла, называется параметром цикла, или управляющей переменной. Алгоритм работы цикла с заданным числом повторений (иногда его называют циклом с параметром) приведен на рис. 14.
Рис. 14. Развернутая схема
цикла с заданным числом повторений:
а — с возрастающим параметром; б — с убывающим
параметром.
На рис. 14 обозначено: i — параметр цикла; — начальное значение параметра; — конечное значение параметра; — приращение (шаг). Прочитать этот алгоритм можно следующим образом: «Меняя параметр от начального значения до конечного значения, повторять тело цикла».
Алгоритм, приведенный на рис. 14, принято называть развернутой схемой цикла с заданным числом повторений. Такая схема является удобной для анализа алгоритма и поиска ошибок.
Необходимо особо подчеркнуть, что развернутая и компактная записи после реализации в машине дают один и тот же результат. Компактная запись менее громоздкая за счет того, что в ней не задаются в явном виде связи между отдельными элементами структуры.
Для изображения компактной графической схемы цикла с параметром могут быть использованы символы «Подготовка» или «Граница цикла» (см. табл. 1), как показано на рис. 15.
Рис. 15. Компактная запись цикла
с параметром:
а — с использованием символа «Подготовка»;
б — с использованием символа «Граница
цикла».
При работе с технической литературой, а также при отладке алгоритмов и программ необходимо уметь правильно читать циклические операторы. Сложность состоит в том, что при компактной записи, которая чаще всего используется в технической литературе, проверка условия окончания цикла и изменение параметра цикла с заданным числом повторений не указаны явно. В компактной форме могут быть заданы и другие типы циклов, поэтому анализ и проверку исполнения циклических структур рекомендуется проводить по развернутой схеме алгоритма.
Заключение
До недавнего времени «хорошими » программистами считали тех, кто писал достаточно хитроумные программы , занимающие минимум основной памяти и выполняющиеся за кротчайшее время. Однако результатом такого хитроумного кодирования оказывались, программы которые было трудно (а то и совершенно невозможно) понять даже самому их автору через некоторое время. Значительный прогресс в программировании был достигнут с появлением технологии структурного программирования.
Структурный подход позволяет, упростить и структурировать программу и благодаря этому снизить трудоемкость всего процесса создания программного обеспечения – от технического задания до эксплуатации программы.
Таким образом, структурное программирование улучшает ясность и читабельность программ. Программы, написанные с использование традиционных методов, часто имеют довольно хаотичную структуру. Структурные программы же организованны, последовательны, поэтому такую программу можно читать сверху- вниз без перерыва. Кроме того, структурное программирование призвано улучшить эффективность программы.