Инструкция repeat
В качестве примера использования инструкции repeat рассмотрим программу, которая проверяет, является ли введенное пользователем число простым (как известно, число называется простым, если оно делится только на единицу и само на себя). Например, число 21 – обычное (делится на 3), а число 17 – простое (делится только на 1 и на 17).
Проверить, является ли число n простым, можно делением числа п на два, на три и т. д. до п и проверкой остатка после каждого деления. Если после очередного деления остаток равен нулю, то это означает, что найдено число, на которое п делится без остатка. Сравнив п и число, на которое п разделилось без остатка, можно определить, является ли п простым числом.
Форма приложения Простое число изображена на рис. 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 <> 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.