АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. I Введение
  2. I ВВЕДЕНИЕ.
  3. I. ВВЕДЕНИЕ
  4. I. ВВЕДЕНИЕ В ИНФОРМАТИКУ
  5. В Конституции (Введение), в Уставе КПК, других партийных до-
  6. Введение
  7. ВВЕДЕНИЕ
  8. ВВЕДЕНИЕ
  9. ВВЕДЕНИЕ
  10. ВВЕДЕНИЕ
  11. Введение
  12. Введение
← 25.0. Введение 27.0. Введение →

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

Цикл с постусловием (послеусловием) представлен в виде блок-схемы на рис. 26.1, а на псевдокоде – следующим листингом:


повторять
<тело цикла>
до <логическое выражение>

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

На блок-схеме цикл с постусловием реализуется с помощью элемента альтернатива, используемого и в бинарном ветвлении.

Цикл с предусловием представлен в виде блок-схемы на рис. 26.2 а на псевдокоде – следующим листингом:


пока <логическое выражение>
повторять
<тело цикла>

Тело цикла выполнятся, пока логическое выражение имеет значение истина. Естественно, что при входе в цикл оно должно иметь именно это значение, а при некотором числе повторений изменить свое значение на ложь.

Циклы с постусловием и предусловием являются взаимозаменяемыми. Их различение проявляется только в том, что при вхождении в цикл с «неправильным» значением логического выражения тела цикла с постусловием будет выполнено один раз, а тело цикла с предусловием – не выполнено ни разу. В конкретной практике разработки алгоритмов иногда удобнее использовать цикл с постусловием, а иногда – с предусловием.

Рис. 26.1. Блок-схема цикла с постусловием Рис. 26.2. Блок-схема цикла с предусловием

Цикл по переменной (цикл-модификация) с точки зрения теоретического программирования является избыточным, т.к. он может быть реализован с помощью предыдущих циклических конструкций. Но он наиболее часто используется и во всех языках программирования есть соответствующие ему операторы. Блок-схема этого цикла представлена на рис. 26.3. В данном примере управляющая переменная обозначена условным идентификатором var. B, E и S представляют собой выражения того же типа, что и var. Сначала var принимает значение b выражения B (begin): var:= b. Тело цикла исполняется, а затем к переменной var прибавляется значение s выражения S (step): var:= var+s. Затем значение var сравнивается со значением e выражения E (end): var <= e. При выполнении этого условия тело цикла повторяется, при его нарушении – происходит вывод из цикла.

Рис. 26.3. Блок-схема цикла по переменной

На псевдокоде цикл по переменной представляется следующим текстом:


для var от B до E шаг S
нц
тело цикла
кц

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

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

Если тело цикла содержит несколько действий (операторов), то на псевдокоде, как и при ветвлении, они объединяются служебными словами нач и кон. Иногда возникает необходимость прервать цикл при выполнении некоторого дополни-тельного условия. При этом возникает конструкция с выходом из середины тела цикла, пред-ставленная на примере цикла с послеусловием на блок-схеме рис. 26.4. Тело цикла при этом разбивается на две части ТЦ1 и ТЦ2. После выполнения ТЦ1 происходит вычисление логического выражения ЛВ1. Если оно принимает значение истина, то происходит выход из цикла.

Аналогично можно пропустить часть тела цикла ТЦ2 при его исполнении (рис. 26.5).

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

Рис. 26.4. Блок-схема цикла с выходом из середины Рис. 26.5. Блок-схема цикла с пропуском части тела цикла

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)