Отправляет email-рассылки с помощью сервиса Sendsay

Всё о работе в Интернет

  Все выпуски  

Занятие 39.


Сегодняшнее наше занятие, уважаемые подписчики, – первое из посвящённых циклам.

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

СРЕДСТВА ПОСТРОЕНИЯ ЦИКЛОВ

1. Общая характеристика циклических структур.

Из трёх разновидностей алгоритмических структур нам уже известны две: линейная и разветвляющаяся.

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

Если количество повторений цикла указывается (прямо или косвенно) заранее, то такой цикл называется арифметическим. В противном случае, если  количество повторений цикла заранее не известно и определяется в процессе его выполнения, цикл называется итерационным.

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

Число повторений цикла всегда ограничено. В частном случае, оно может быть равно нулю. Последнее утверждение не касается цикла-ДО, который имеет, как минимум, одно повторение.

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

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

Для построения циклов в алгоритмическом языке предусмотрены три вида команд: одна команда для реализации арифметического цикла, и две команды для реализации итерационных циклов с предусловием и с постусловием. Их называют командами повторения.

Команда повторения для реализации арифметического цикла наиболее компактна в записи и проста в использовании. Однако возможности её ограничены тем, что в записи команды количество повторений должно быть указано сразу.

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

2. Команда повторения с предусловием в АЯ.

Команда повторения с предусловием предназначена для реализации итерационных циклов-ПОКА. При этом повторения выполняются с проверкой условия их продолжения. Общий вид команды следующий:

пока <условие>
выполнять <серия>;

Как видим, её синтаксис достаточно прост. Указанное в записи команды <условие> представляет собой некоторое логическое выражение, которое, как известно, может быть истинным или ложным. Выполняемая в цикле <серия> может содержать любое количество команд. Она может быть даже пустой. Если в составе <серии> менее двух команд, то отмечать её служебными словами нс и кс не обязательно.

Правило выполнения команды повторения с предусловием формулируется в виде следующего алгоритма в словесной форме:

1)    вычислить значение <условия>;

2)    если <условие> истинно, то выполнить <серию>, после чего вернуться на пункт 1;

3)    если <условие> ложно, то прекратить выполнение команды и считать её выполненной полностью.

Таким образом, правило выполнения объясняет нам название команды: прежде всего проверяется <условия>, и лишь затем выполняется <серия>.

От результатов проверки <условия> зависит количество повторений <серии>. Повторения выполнения <серии> продолжаются, пока значение <условия> остаётся истинным. Собственно поэтому наша команда повторения и начинается со служебного слова пока. Если же <условие> оказалось ложным с самого начала, то <серия> не будет выполнена ни разу.

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

3. Команда повторения с постусловием в АЯ.

Команда повторения с постусловием предназначена для реализации итерационных циклов-ДО. При этом повторения выполняются с проверкой условия их прекращения. Общий вид команды следующий:

повторять
   <серия>
до <условие>

И эта команда, так же как и предыдущая, имеет очень простой синтаксис. Указанное в составе команды <условие> представляет собой логическое выражение, которое может быть истинным или ложным. Выполняемая в цикле <серия> может быть пустой или содержать любое количество команд. Однако отмечать её служебными словами нс и кс не нужно в любом случае, поскольку эту роль выполняют служебные слова повторять и до.

Правило выполнения команды повторения с постусловием формулируется в виде следующего алгоритма в словесной форме:

1)    выполнить <серию>;

2)    вычислить значение <условия>;

3)    если <условие> ложно, то вернуться на пункт 1;

4)    если <условие> истинно, то прекратить выполнение команды и считать её выполненной полностью.

Правило выполнения объясняет нам название команды: прежде всего выполняется <серия>, и лишь после этого проверяется <условие> (префикс post в переводе с английского означает “после”).

От результатов проверки <условия> зависит количество повторений <серии>. Повторения выполнения <серии> продолжаются до момента истинности значения <условия>. Именно поэтому наша команда повторения имеет в своем составе служебное слово до. При этом правило выполнения команды показывает, что, независимо от <условия>, <серия> команды будет выполнена, по крайней мере, один раз.

Cвойства команды повторения с постусловием приводят к выводу, что количество повторений <серии> должно зависеть от внутренних факторов, непосредственно связаных с её выполнением. В составе <серии> должны быть определённые команды, так влияющие на проверяемое <условие>, чтобы оно в конце концов становилось истинным и, тем самым, количество повторений оказывалось конечным. В противном случае происходит зацикливание.

4. Перевод команд повторения с предусловием и постусловием с АЯ на Паскаль.

Для построения итерационных циклов в языке Паскаль, так же, как и в АЯ, используется два оператора.

Команде повторения с предусловием в языке Паскаль соответствует оператор цикла-ПОКА, имеющий вид While <условие> Do <серия>;.

При этом “пока” трансформируется в “While”, “выполнять” – в “Do”. 

Команде повторения с постусловием в языке Паскаль соответствует оператор цикла-ДО, имеющий вид Repeat <серия> Until <условие>;.

При этом “повторять” трансформируется в “Repeat”, “до” – в “Until”. 

С точки зрения функциональных возможностей и правил выполнения указанные операторы Паскаля полностью аналогичны соответствующим командам АЯ. Только не нужно забывать при этом вместо служебных слов нс и кс использовать операторные скобки Begin и End (если они есть).

Уважаемые подписчики! Арифметические циклы мы с вами рассмотрим на следующем занятии.

Уважаемые подписчики! При необходимости задать вопрос, проконсультироваться, уточнить или обсудить что-либо обращайтесь через Гостевую книгу моего персонального сайта http://a-morgun.narod.ru. При этом настоятельно рекомендую пользоваться браузером Internet Explorer.

С уважением, Александр.


В избранное