Давайте вспомним как работает цикл while-do:
while (условие) do begin оператор(группа операторов); end; пока (выполняется это условие) делай от начала оператор(группа операторов); до конца;
То есть цикл сначала проверяет истина ли условие или нет, и если истина, то выполняет операторы заключённые в цикле, если условие ложно, то он не выполняет операторы в цикле.
Бывают случаи в программировании, когда нужно выполнить операторы в цикле последний раз, даже если условие будет ложно.
Для этого используется цикл 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.