Лекция 47 Листинг 2.8. Простое число (использование инструкции goto)

Repeat

Begin

Листинг 2.8. Простое число (использование инструкции goto)

Инструкция goto

End.

Repeat

Begin

Var

Implementation

Var

Type

Uses

Interface

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

TForm1 = class(TForm)

Button1: TButton; // кнопкаПроверить

Label1: TLabel;

Edit1: TEdit; // полевводачисла

Label2: TLabe1; // поле вывода результата

procedure ButtonlClickfSender: TObject); private

{ Private declarations }

public

{ Public declarations }

end;

Form1: TForm1;

{$R *.DFM}

procedure TForm1.ButtonlClick(Sender: TObject);

n: integer; // проверяемое число d: integer; // делитель

r: integer; // остаток от деления п на d

n:=StrToInt(Editl.text);

d:= 2; // сначала будем делить на два

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;

Инструкции if и case используются для перехода к последовательности инструкций программы в зависимости от некоторого условия. Поэтому их иногда называют инструкциями условного перехода. Помимо этих инструкций управления ходом выполнения программы существует еще одна — инструкция безусловного перехода goto.

В общем виде инструкция goto записывается следующим образом:

goto Метка

где метка — это идентификатор, находящийся перед инструкцией, которая должна быть выполнена после инструкции goto.

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

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

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

procedure TForm1.Button1Click(Sender: TObject);

label // раздел объявления меток

bye; var

n: integer; // проверяемое число

d: integer; // делитель

r: integer; // остаток от деления п на d

n:=StrToInt(Editl.text);

if n <= 0 then begin

MessageDlg('Число должно быть больше нуля.',

mtError, [mbOk], 0); Editl.text:= ";

goto bye;

end;

// введено положительное число

d:= 2; // сначала будем делить на два

r:= n mod d;

if r <> 0 // n не разделилось нацело на d

then d:= d + 1;

unti1 r = 0;

label2.caption:=Editl.text;

if d = n

then l abel2.caption:=label2.caption

+ ' — простоечисло.'

else label2.caption:=label2.caption

+' — обычноечисло.';

bye:

end;

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

Тема:Массивы как структурированный тип данных. Объявление мас­сива. Ввод и вывод одномерных массивов. Ввод и вывод двухмер­ных массивов.

Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: