Циклические операторы

Цель работы

Изучение оператора цикла с постусловием repead … until и оператора цикла с предусловием while … do. Упражнения по выполнению типовых программ.

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

Отличительной чертой операторов циклов с постусловием и предусловием является то, что заранее неизвестно количество итераций, как это известно в операторе цикла со счетчиком for … to … do.
Работа заключается в изучении нижеследующих разделов и выполнении приведенных упражнений и заданий.

Оператор цикла с постусловием repeat … until

Оператор цикла repeat … until имеет следующий формат:

repeat
<Оператор>
<Оператор>

<Оператор>
until <Логическое условие>;


где

Оператор repeat … until не требует операторных скобок в случае составного оператора. Эту функцию выполняют ключевые слова repeat и until.

Алгоритм работы оператора цикла с постусловием

Вначале выполняются операторы цикла, затем проверяется логическое условие. В случае, когда условие ложно (False), происходит вычисление логического условия и повторение операции до тех пор, пока (until) условие ложно. В случае истинности логического условия (True), происходит выход из цикла и выполнение следующего за циклом оператора. Поскольку проверка логического условия происходит в конце оператора цикла, то циклическая операция выполняется хотя бы один раз. Это означает, что оператор repeat … until не годится для ситуации, когда операторы цикла не должны выполнятся ни разу.

Словесные алгоритмы, которые применяются для объяснения работы несложных алгоритмов, при всей их подробности описания, нельзя назвать наглядными, поэтому покажем алгоритм работы оператора цикла с постусловием в виде блок-схемы, как более наглядного способа представления алгоритмов (рис.1).

Начало(1) --> Выполнение 
операторов цикла(2) --> Логическое условие(3) --> Если 
(3)=Нет (False), то Вычисление операнда логического  
условия(4) -->(2); Если (3)=Да (True), то Выполнение 
следующих за циклом операторов программы(5) --> Конец(6)

Упражнение

Задание. Рассмотрите работу оператора с постусловием на примере программы, приведенной ниже. Программа определяет десять случайных действительных чисел, попадающих в заданный диапазон (2, 3).

Для решения задачи организован цикл for … to … do со счетчиком, который называется внешним, обеспечивающий десятикратное выполнение внутреннего цикла repead … until по генерации случайных чисел. Количество итераций внутреннего цикла случайно и заканчивается, когда случайное число попадет в указанный диапазон. Это число будет напечатано на экране дисплея.

{Попадание чисел в заданный диапазон}
Program vv15;
Uses Crt;
Var

begin end.

Оператор цикла с предусловием while … do

Оператор цикла с предусловием является наиболее универсальным, чем рассмотренные ранее и, практически, позволяет обходиться без операторов цикла со счетчиком for … to … do.
Оператор цикла while … do имеет следующий формат:

while <Логическое условие> do <Оператор>;

или в случае составного оператора:

while <Логическое условие> do
begin

<Оператор>;
<Оператор>;

<Оператор>;
end;


где

Алгоритм работы оператора цикла с предусловием

Блок-схема работы оператора следующим образом (рис.2).

Начало(1) --> Логическое 
условие(2) --> Если (2)=Да (True), то Выполнение операторов 
цикла(3) --> Вычисление операнда  логического  условия(4) 
--> (2); Если (2)=Нет (False), то Выполнение следующих за 
циклом операторов программы(5) --> Конец(6)

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

Порядок выполнения задания на компьютере

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

  1. Предложение на разработку.
  2. Постановка задачи.
  3. Разработка алгоритма.
  4. Программирование на выбранном языке программирования.
  5. Отладка и тестирование программы.
  6. Контрольный просчет на реальных данных и предложение программного продукта заказчику.

Предложение на разработку

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

Постановка задачи

Это определение, совместно с заказчиком, входных и выходных данных задачи, режимы и устройства их ввода и вывода, формы документов и конкретные алгоритмы их получения.

Разработка алгоритма

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

Конкретный алгоритм (например, некоторое вычисление) может быть основан на предположении, правиле, законе (например, физическом), теореме и т.д. Форма представления алгоритма, максимально подробная, может быть словесной или в виде блок-схемы.

Программирование на выбранном языке программирования

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

Отладка и тестирование

Этап отладки программы является естественным и происходит с любой самой простой программой, которую пишет даже самый крутой программист.

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

Контрольный просчет на реальных данных и предложение программного продукта заказчику

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

Упражнение

Задание. Проследите процесс компьютерного решения на примере задачи определения максимального показателя степени n для a >= bn.

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