Until паскаль что означает
Перейти к содержимому

Until паскаль что означает

  • автор:

Цикл Repeat..Until.

Как уже было сказано, циклы с условием делятся на циклы с предусловием и на циклы с постусловием. В этой статье рассказывается об использовании цикла с постусловием Repeat. Until для написания программ на языке Pascal.

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

Цикл с постусловием Repeat..Until.

program ciklih4; uses crt; var sum, A:real; begin clrscr; SUM:=0; A:=0; repeat sum:=sum+A; write (‘Ведите число:’); readln (A); until A

В строке №3 запишем 2 переменные: «SUM» – для хранения суммы и «A» для хранения значения введенного нами числа.

В строке №6 обнуляем сумму. Каждый раз, когда в той или иной программе следует подсчитать сумму чего-нибудь, нужно сначала обнулить эту сумму.

В строке №7 указываем первоначальное значение для переменной «A».

В строке №8 записываем оператор цикла Repeat (от англ. «повторять»). Все действия, которые записаны после оператора Repeat (строка №9 - №11) будут выполняться до тех пор, пока не выполнится условие в строке №12 (Until в пер с англ. «до»), т.е. пока переменная «A» не станет отрицательным числом.
Таким образом, получается, что в цикле выполняется 3 действия (строка №9 - №11). Сначала подсчитывается сумма (строка №9). Она, первоначальна, равна 0, т.к. sum=0 и A=0. Затем выводится сообщение на экран (строка №10), затем мы вводим с клавиатуры какое-нибудь число, и оно записывается в переменную «A». Если мы вводим положительное число, то опять подсчитывается сумма (строка №9), только теперь значение переменной «A» равно не 0, а тому числу, которое мы введем с клавиатуры. Соответственно, и сумма (sum) увеличится на это число.

repeat until

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

repeat until.

Дополнение к материалу.

Конструкция Repeat. Until подобна операторным скобкам Begin. End. Поэтому перед Until не обязательно ставить точку с запятой. Т. е. в конце строки №11 можно пропустить точку с зяпятой без каких-либо последствий для программы.

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

#12.1 Цикл Repeat/Until "с постусловием" в Паскаль

vedro-compota's picture

Цикл Repeat/until характеризуется следующими моментами:

  • Работает пока условие ложно.
  • Сначала выполняется виток цикла и лишь потом проверяется требуется ли завершать цикл или же нужен следующий повтор.
  • Такой цикл всегда выполнится хотя бы один раз (это связано с тем, что условие проверяется после выполнения тела цикла).
  • Операторные скобки вокруг тела цикла repeat-until не нужны -- так как их заменяют сами два слова repeat и until ("повторяй" и "пока не")

Пример: выведем на экран все целые числа от $1$ до $n$ (числа введённого пользователем):

var i, n: integer; begin writeln('vvedite celoe chislo >1 :'); readln(n); i := 1; repeat // начало тела цикла write(i, ' '); i := i + 1; // увеличиваем счетчик на 1 until (i>n); // выход из цикла только если счетчик станет больше n readln(); end.

-- по сути это пример замены for на repeat-util, для ситуации перебора ряда чисел.

Еще примеры (необходимо доофромить):

var a, b: integer; f: boolean; begin //writeln('Введите число:'); //readln(a); //while (a < 15) do //begin // writeln(5); // writeln('Введите число:'); // readln(a); //end; repeat writeln('Введите число:'); readln(a); f := a < 15; if (f) then writeln(5); until (not f); readln(); end. //var a, b: integer; //begin // a := 1; // repeat // write(a, ' '); // a := a + 1; // until (a >10); // // writeln(); // // a := 1; // while (a 

Repeat/until и другие циклы в Паскаль -- связь между ними

Ранее мы уже изучили циклы:

  1. for -- "с известным числом повторений", который не проверяет логических условий.
  2. и while (т.н. цикл "с предусловием") -- цикл похожий на Repeat/until -- также проверяющий логическое выражение, но while от repeat отличается по следующим пунктам:
    1. По условию выхода из цикла:
      • while работает пока его логическое условие истинно,
      • repeat-until наоборот пока ложно.
    2. По порядку проверки условия:
      • while сначала проверяет условие (если истинно - то продолжает работу), а потом делает очередной (в том числе первый) свой виток.
      • repeat-until сначала делает виток, а потом проверяет условие (если ложно - то продолжает работу).

    Видео-пояснения

    Для этого урока есть следующию видео-пояснения:

    Теоретические вопросы

    1. Что такое виток цикла?
    2. Чем отличается цикл repeat/until от циклов for и while? Похож ли он в чем-то на них?

    Задачи для самостоятельного решения

    Примечание: в задачах данного урока, в качестве конструкции для организации цикла (если требуется) используйте repeat-until, если в задаче явно не сказано использовать какую-то другую конструкцию.

    1. Вывести на экран все числа от 1 до N с помощью цикла repeat/until.
    2. Сдавать решение не обязательно:
      Исправьте форматирование кода:

    var a,b: char; begin repeat writeln ('введи символ и нажми Enter'); readln (a); if a='#' then break else writeln ('&'); until (a='#'); writeln('Конец'); end.
    var f: integer; begin writeln('Введите целое число'); readln(f); if f < 25 then begin repeat if f mod 23 = 0 then begin f := f - 1; writeln(f); end else f := f - 2; until (f < 1); end else writeln('ошибка'); writeln('Конец!'); readln(); end.
      Если мы введем число 55, то программа должна вывести в ответ:
    46 23

    Подсказка: если не получается решить или для лучшего понимания см. этот видео-разбор данной задачи

    Key Words for FKN + antitotal forum (CS VSU):

    • Паскаль цикл repeat until примеры
    • Паскаль отличия цикла while от repeat-until

    Until паскаль что означает

    Цикл с постусловием

    Операторы между словами repeat и until повторяются до тех пор, пока булево выражение является Истинным ( True ).

    Синтаксис

    repeat
    Оператор;
    Оператор;
    .
    Оператор;
    until выражение

    Замечания

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

    Пример

    repeat
    Write('Введите значение : ');
    ReadLn(I);
    until (I >= 0) and (I

    Ада

    Аналогом repeat-until является loop-end-loop со встроенным exit-when :

    loop
    Get_Immediate (Ch);
    exit when Ch /= ' ';
    end loop;

    loop
    Put ("Введите значение : ");
    I := Integer'Value (Get_Line);
    exit when I in 0 .. 9;
    end loop;

    Бывает так, что проверку условия нужно делать не в начале цикла и не в конце, а именно где–то посередине:

    loop
    Put ("Введите значение : ");
    I := Integer'Value (Get_Line);
    exit when I = 0;
    Put_Line ("Результат :" & Integer'Image (I + 1));
    end loop;

    Выход по нулю или по пустой строке особенно частая ситуация в учебных программах. В Borland Pascal нужно писать цикл while , а операцию считывания дублировать до while и в конце:

    < Это Паскаль >
    Write('Введите значение : ');
    ReadLn(I);
    while I <> 0 do
    begin
    WriteLn('Результат : ', I + 1);
    Write('Введите значение : ');
    ReadLn(I);
    end;

    Либо имитировать оператор языка Ада с помощью if then Break внутри while True do или repeat until False.

    Pascal. Оператор цикла REPEAT-UNTILL.

    То есть цикл сначала проверяет истина ли условие или нет, и если истина, то выполняет операторы заключённые в цикле, если условие ложно, то он не выполняет операторы в цикле.

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

    Для этого используется цикл repeat-until, он сначала выполняет операторы, а потом проверяет условие. Давайте рассмотрим конструкцию этого цикла:

    REPEAT оператор(группа операторов); UNTIL (условие); ПОВТОРЯЙ оператор(группа операторов); ДО (тех пор, пока условие не будет верным);

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

    Program repeat_until; uses crt; var num, sum: Integer; begin clrscr; repeat write('Введите число - '); readln(num); sum := sum + num; until (sum >= 10); write('Сумма чисел равна - ', sum); readln; end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *