Оператор цикла repeat

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

В Паскале - три оператора цикла: repeat, while и for. Первым изучим оператор repeat.

Конструкция repeat. . . . . untila+2>3*b читается "ри'пит.....ан'тил...", а переводится "повторяй......до тех пор, пока a+2 не станет больше 3*b".

Составим с использованием оператора repeat программу решения задачи о печати чисел 3 5 7 9 из предыдущего параграфа. Для того, чтобы точно определить Оператор цикла repeat работу оператора repeat, приведем ее параллельно со вторым вариантом программы решения этой задачи из того же параграфа:

2 ВАРИАНТ ВАРИАНТ С REPEAT
LABEL m1,m2; VAR f : Integer; BEGIN Write('Начало счета '); f:=3; m1: Write(f,' '); f:=f+2; if f>9 then goto m2 else goto m1; m2: Write(' Конец счета') END. VAR f : Integer; BEGIN Write('Начало счета '); f:=3; repeat Write(f,' '); f:=f+2; until f>9; Write(' Конец счета') END.

Порядок работы обеих программ совершенно одинаков, так что можно считать слово repeat заменой метки m1, а конструкцию until f>9 считать заменой оператора if f>9 then goto m2 else goto m1.

Синтаксис Оператор цикла repeat оператора repeat:

Repeat оператор ; оператор ;. . . ; оператор until условие

Вкратце работу оператора repeat можно описать так: Повторяй выполнение операторов, стоящих между словами repeat и until, до тех пор, пока не станет истинным условие.

Более подробно работа оператора repeat описывается так:

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

Задача Оператор цикла repeat: Компьютер предлагает человеку ввести слово, после чего распечатывает это слово, снабдив его восклицательным знаком. Затем снова предлагает ввести слово и так до тех пор, пока человек не введет слово "Хватит". Распечатав его с восклицательным знаком, компьютер отвечает "Хватит так хватит" и заканчивает работу.

Придумаем строковую переменную, в которую человек будет с клавиатуры вводить слово. Назовем ее Slovo.

VAR Slovo : String;
BEGIN
repeat
WriteLn('Введите слово');
ReadLn(Slovo);
WriteLn(Slovo, '!')
until Slovo='Хватит';
WriteLn('Хватит так хватит')
END.

Задание 37: Усложним эту задачу. Пусть компьютер перед распечаткой каждого слова ставит его порядковый номер.

Задание 38-39: Выполнить с применением оператора repeat последние два задания из Оператор цикла repeat предыдущего параграфа.

Задание 40: Если камень бросить горизонтально со 100-метровой башни со скоростью v=20м/с, то его расстояние от башни по горизонтали (s) будет выражаться формулой s=vt, где t – время полета камня в секундах. Высота над землей h будет выражаться формулой h=100 – 9.81t2/2. Вычислять и печатать t, s и h для t=0, 0.2, 0.4, 0.6 и так далее до тех пор, пока камень не упадет на землю.


documentaygiyld.html
documentaygjfvl.html
documentaygjnft.html
documentaygjuqb.html
documentaygkcaj.html
Документ Оператор цикла repeat