Інструкція repeat

Інструкція repeat, як і інструкція while, використовується в програмі в тому випадку, якщо необхідно виконати повторні обчислення (організувати цикл), але число повторень під час розробки програми невідомо і може бути визначено тільки під час роботи програми, т. е. визначається ходом обчислень.

У загальному вигляді інструкція repeat записується в такий спосіб:

repeat

// інструкції unti1 умова

де умова – вираз логічного типу, визначальна умова завершення циклу.
Інструкція repeat виконується наступним чином:

  1. спочатку виконуються що знаходяться між repeat і until інструкції тіла циклу.
  2. потім обчислюється значення виразу умова. Якщо умова помилкова (значення виразу умова одно False), то інструкції тіла циклу виконуються ще раз.
  3. Якщо умова істинно (Значення виразу умова одно True), то виконання циклу припиняється.

Таким чином, інструкції циклу, що знаходяться між repeat і unti1, виконуються до тих пір, поки умова помилково (значення виразу умова
одно False).

Алгоритм, відповідний інструкції repeat, представлений на рис. 2.16.

Рис. 2.16. Алгоритм, відповідний інструкції repeat

Увага!
Інструкції циклу, що знаходяться між repeat і until, виконуються як мінімум один раз. Для того щоб цикл завершився, необхідно, щоб інструкції циклу, розташовані між repeat і until, змінювали значення змінних, що входять у вираз умова.

Як приклад використання інструкції repeat розглянемо програму, яка перевіряє, є введене користувачем число простим (як відомо, число називається простим, якщо воно ділиться тільки на одиницю і саме на себе). Наприклад, число 21 – звичайне (Ділиться на 3), а число 17 – просте (ділиться тільки на 1 і на 17).

Перевірити, є Чи число п простим, можна діленням числа п на два, на три і т. д. до п і перевіркою залишку після кожного ділення. Якщо після чергового поділу залишок дорівнює нулю, то це означає, що знайдено число, на яке п ділиться без залишку. порівнявши п і число, на яке п розділилося без залишку, можна визначити, є Чи п простим числом.

Форма програми Просте число зображена на рис. 2.17, програма приведена в лістингу 2.7.

Рис. 2.17. Форма програми Просте число

Лістинг 2.7. Просте число

unit simple_;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = Class (TForm)
Button1: TButton; // кнопка Перевірити
Label1: TLabel;
Edit1: TEdit; // поле введення числа
Label2: TLabe1; // поле виведення результату
procedure ButtonlClickfSender: TObject); private
{ Private declarations}

public
{Public declarations}
end;

var
Form1: TForm1;

implementation
{$ R * .DFM}
procedure TForm1.ButtonlClick (Sender: TObject);

var
n: integer; // перевіряється число d: integer; // дільник
r: integer; // залишок від ділення п на d

begin
n: = StrToInt (Editl.text);
d : = 2; // спочатку будемо ділити на два
repeat
r : = N mod d;
if r & lt; & gt; 0 // n не розділені остачі на d
then d: = d + 1;
until r = 0; // знайдено число, на яке п розділилося без залишку

label2.caption: = Edit1.text;

if d = n
then Iabel2.caption: = label2.caption + '- просте число.'

else label2.caption: = label2.caption + '- звичайне число.';

end;

end.