Программирование на Turbo Pascal




Содержание:
  • Цикл repeat - until
  • Цикл While

  • Цикл с постусловием repeat - until


    Мы знаем как создать цикл for - to - do, в котором нужно задать число повторений цикла. Существуют ситуации, когда число повторений заранее неизвестно. В этом случае цикл должен повторяться до тех пор, пока не возникнет ситуация остановки цикла. В Turbo Pascal есть возможность создавать циклы с остановкой по условию.
    Repeat
      тело цикла;
    Until логическое условие;

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

    uses crt;
    var
      x, z: real; {х - вводимое число, z - сумма чисел}
    begin
      clrscr;
      z:= 0;
      repeat {начинаем цикл}
       write('Wwedite X: '); readln(x); {вводим данные с клавиатуры}
       z:= z + x; {суммируем полученные данные}
      until x = 0; {если х = 0 (условие выполнено), то прервать цикл}
      writeln('Summa = ', z:0:2);
      readln;
    end.
    Результат работы программы:


    Цикл с предусловием While.

    Иногда бывают случаи, когда цикл нужно прервать до того, как в теле цикла будут произведены какие либо действия. Для таких случаев в Паскале предусмотрен цикл While, который проверяет логическое условие прерывания цикла до выполнения действий в цикле. Оформляется цикл While так:
    While условие do действие; - в случае одного действия, или
    While условие do
    Begin
    Действие 1;
    Действие 2;
    ---
    Действие n;
    End;
    - в случае нескольких действий.
    На первых занятиях мы использовали для продолжения работы программы "калькулятор" оператор goto, что в структурном программировании не приветствуется. Попробуем завершать или продолжать программу не используя переходы, применив при этом оператор цикла while. При вводе символа n - программа начнётся с начала, при вводе любого другого символа программа завершиться:
    uses crt;
    var
      c, cz: char;
      x,y,z: real;
    begin
      clrscr;
    while (cz <> 'n') do
    begin
      write('Wwedi X: '); readln(x);
      write('Wwedi znak: '); readln(c);
      write('Wwedi Y: '); readln(y);
    case c of
      '+' : z:= x + y;
      '-' : z:= x - y;
      '*' : z:= x * y;
      '/' : z:= x / y;
    end; {case}
      writeln('Rezultat= ',z:0:4);
      write('konec - n / powtor -any key');
      readln(cz);
      end; {while}
    end.
    Результат работы программы:





       ©Гуков Константин Михайлович 2006 - 2011     Почта: [email protected]