Алгоритм и его свойства. Способы записи алгоритма

Автор работы: Пользователь скрыл имя, 12 Ноября 2011 в 13:37, курсовая работа

Краткое описание

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

Содержимое работы - 1 файл

супер новый.doc

— 536.50 Кб (Скачать файл)
stify">      В операторе цикла с постусловием (начинающимся со слова «repeat») выражение, которое управляет повторным выполнением последовательности операторов содержится внутри оператора «repeat».

      Иногда  при решении задач возникает  необходимость выполнить тело цикла  хотя бы один раз, а потом, проверив условие, определить, повторять ли тело цикла еще раз. Эту задачу выполнит другой вид цикла – цикл «Repeat».

      Операторы, заключенные между ключевыми  словами «repeat» и «until», выполняются  последовательно до тех пор, пока результат выражения  не  примет значение «True». Последовательность операторов выполнится по крайней мере один раз, поскольку вычисление  выражения производится после каждого выполнения последовательности операторов. Его синтаксис следующий:

      repeat {повторяй} {операторы операторы} until <условие>;

      {до  тех пор, пока условие не  будет истинным}

      5.3. Оператор цикла с постусловием  на блок-схеме. 

  1. Оператор  цикла с параметром (оператор «for»).

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

      [МЕТКА] for (ВЫРАЖЕНИЕ1; ВЫРАЖЕНИЕ2; ВЫРАЖЕНИЕ3) БЛОК 

      ВЫРАЖЕНИЕ1, называемое инициализирующим выражением, используется для установки начальных значений переменных, управляющих циклом. Обычно это одна или несколько операций присваивания, разделенных запятыми.

      ВЫРАЖЕНИЕ2 определяет условие, при выполнении которого будут повторяться итерации цикла. Оно, как и выражение-условие цикла «while», вычисляется в булевом контексте и должно быть истинным, чтобы началась следующая итерация цикла. Как только это выражение становится ложным, цикл «for» прекращает свое выполнение и передает управление следующему за ним в программе оператору.

      ВЫРАЖЕНИЕЗ  вычисляется после завершения каждой итерации цикла и «отвечает» за увеличение/уменьшение значений переменных цикла на каждом его шаге. Его иногда называют изменяющим выражением.

      Приведем  схему выполнения цикла «for».

  1. Вычисляется инициализирующее выражение ВЫРАЖЕНИЕ1.
  2. Вычисляется выражение-условие ВЫРАЖЕНИЕ 2. Если оно истинно, то выполняются операторы блока БЛОК, иначе цикл завершает свое выполнение.
  3. После выполнения очередной итерации вычисляется выражение увеличения/уменьшения (ВЫРАЖЕНИЕ З) и повторяется пункт 2.

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

      для <пер> от <начало> до <конец> шаг <шаг> делать <оператор>

      где <пер> является переменной целого типа, принимающая значение переменной - индекса. Вне цикла ее значение не определено (попросту, ее нельзя использовать вне цикла).

      <начало> означает начальное значение индекса в цикле, <конец> - конечное значение индекса в цикле, а

      <шаг> - приращение цикла на каждой итерации (по умолчанию используется приращение переменной цикла, равное "+1"). <начало>, <конец> и <шаг> могут принимать значения констант и переменных, однако переопределение этих параметров в цикле запрещено.

      Параметр <оператор> имеет то же значение, что и в описании цикла «пока».

      Конструкция, задает переменной <пер> последовательность значений: <начало>, <начало>+<шаг>, <начало>+2·<шаг>, …, <конец> на каждой итерации. При этом "тело цикла" повторяется int((<конец>-<начало>)/<шаг>)+1 число раз, Это число должно быть больше нуля.

      n := int( (<конец>-<начало>)/<шаг>)+1

      На  блок-схеме цикл с параметром имеет  следующий вид (см. рис. 5.4.). 

      

 

      Рис. 5.4. Оператор цикла с параметром на блок-схеме.  

      Цикл  с параметром используются в следующих случаях:

      - при задании точного числа повторений тела цикла;

      - для последовательного изменения «индекса массива» (при операциях с ними в теле цикла).

5. Оператор выхода  из цикла «break».

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

      break;

      Этот  оператор прекращает действие текущего цикла, и переводит выполнение программы  в точку за прерванным циклом (в тело программы или в тело «родительского» цикла).

      6. Оператор новой итерации «continue».

      Часто в реализации алгоритма требуется  прервать выполнение тела цикла и  перейти к следующей итерации. Эта операция реализована в разных языках по-разному. С Синтаксис его следующий:

      continue;

      В языках, не имеющих конструкции «continue», (например - в Quick Basic), данную операцию можно "моделировать" с помощью безусловного перехода «goto» на метку после последнего оператора тела цикла.

7. Оператор безусловного  перехода «goto».
      Этот  оператор является самым  первым оператором для  изменения последовательности выполняемых действий. В настоящее время  его применение считается  «дурным тоном», поэтому его использования необходимо избегать. Однако он не заменим в следующих случаях:
  1. В языке  отсутствуют другие конструкции  алгоритма, более «структурированные»;
  2. Необходимо выполнить «кессонный» выход из цикла при возникновении «исключительной ситуации».

      Примечание: "Кессонный выход" из вложенного цикла подразумевает прекращение итераций и выход не только из «текущего цикла» (в котором возникла исключительная ситуация), но также из «родительского цикла» и даже вообще из всех циклов, заставив ЭВМ продолжать выполнение программы вслед за вложенными циклами. «Кессонным» этот выход называется так потому, что он как бы соответствует «немедленному подъему водолаза на поверхность», без предварительной адаптации его к пониженным давлениям. В результате этого подъема у водолаза может наблюдаться «кессонная болезнь»", которая заключается в закупоривании сосудов пузырьками сжатого воздуха. Поскольку этот подъем небезопасен, его используют редко. То же самое относится к "кессонному выходу из цикла": при возможности его следует избегать.

      Синтаксис оператора безусловного перехода следующий:

      goto <метка>

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

      На  блок-схеме безусловный переход  указывается линией со стрелкой. 

     Операторы ветвления.
     Выделяют  следующие операторы ветвления:
     1) оператор условия;
     2) оператор ветвления;
     3) оператор множественного выбора.
  1. Оператор  условия.
      Этот  оператор служит для реализации реакции  алгоритма на некоторое условие: значения переменной, или событие в ЭВМ и ее окружении. Синтаксис оператора следующий:

      IF <условие> THEN <оператор>

      где <условие> - переменная булевского (логического) типа или операция отношения между целыми, вещественными, символьными константами, переменными и выражениями, а

      <оператор> - любой допустимый оператор языка, группа этих операторов в скобках (в блоке) либо (в старых языках программирования) - оператор безусловного перехода на метку (меткой называется номер строки, число либо идентификатор, стоящий перед оператором и указывающий, куда будет перенаправлено выполнение программы после оператора перехода.). Оператор вычисляется в случае истинности условия в этом операторе.

      Оператор «условие» на блок-схеме представляется так, как показано на рис.5.5.:

 

      Рис. 5.5. Оператор «условие» на блок-схеме.

      Оператор  условия является самым «древним» оператором изменения последовательности действий операторов алгоритма.

2. Оператор «ветвления».

      При реализации алгоритмов всегда возникают  ситуации, когда какой-либо оператор или группу операторов надо выполнить  в случае возникновения определенных условий, тогда как другую группу при этих же условиях вообще не следует выполнять. Для организации подобного ветвления в программах предусмотрены операторы «if», которые и называются операторами ветвления,

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

      if <условие> then <оператор-истина> else <оператор-ложь>

      где <условие> - переменная булевского (логического) типа или операция отношения между целыми, вещественными, символьными константами, переменными и выражениями,

      <оператор-истина> - оператор или группа операторов, выполняемых в случае истинности условия, а

      <оператор-ложь> выполняется в случае невыполнения условия оператора ветвления. После выполнения оператора ветвления продолжается выполнение последовательности операторов, нарушенной при вызове оператора ветвления.

      На  блок-схеме оператор «ветвления»  представлен так, как показано на рис. 5.6.

 

      Рис. 5.6. Оператор ветвления на блок-схеме.

      Оператор  ветвления появился сравнительно недавно, в 1970 году в языке «Паскаль». 
 

3. Оператор множественного выбора.

Информация о работе Алгоритм и его свойства. Способы записи алгоритма