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

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

Оценка 4.7
docx
информатика
03.05.2020
Оператор цикла repeat
0.1. Оператор цикла repeat
34.docx

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

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

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

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

Составим с использованием оператора repeat программу решения задачи о печати чисел 3  5  7  9 из предыдущего параграфа. Для того, чтобы точно определить работу оператора 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  оператор ; оператор ;. . . ; оператор   until  условие

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

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

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

 

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

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

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

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

Задание 38-39: Выполнить с применением оператора 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 и так далее до тех пор, пока камень не упадет на землю.


 

Скачано с www.znanio.ru

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

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

WriteLn(' Введите слово ');

WriteLn(' Введите слово ');
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
03.05.2020
Посмотрите также: