Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Оператор безусловного перехода Goto




Goto < метка >;

Управление передается к оператору с указанной меткой. Метка может быть идентификатором или числом от 0 до 9999. Не разрешается передавать управление извне вовнутрь цикла или другой подпрограммы. Объявление метки, сама метка и оператор Goto должны находиться в од­ной головной программе или в подпрограмме.

Оператор вызова процедуры или функции

< имя процедуры/функции >[( <аргументы> )]. Передается управление указанной процедуре или функции с соответствующими значениями аргумен­тов. Вызов функции может быть и в любом выражении. Допус­кается вложенность функций при вызове.

Пустой оператор (;)

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

Условный оператор If

If <условие> Then <оператор‑1> [ Else <оператор‑2>];

<условие> ‑ произвольное выражение логического типа. Если оно ‑ истина, то выполняется <оператор‑1>, а <оператор‑2> пропускается. Если условие лож­но, то <оператор‑1> пропускается, а выполняется <оператор‑2>. Допус­кается вложенность условных операторов. При вложенных операторах вложенному Else соответствует ближайший If.

Оператор множественного выбора Case

Case <ключ выбора> Of

<список‑1>: <оператор‑1>;

...

<список‑ n>: <оператор‑ n>

[ Else <оператор>]

End;

Ключ выбора это выражение порядкового типа (не вещественные чис­ла и не строки), значение которого определяет выбор нужного опера­то­ра для выполнения значения этого выражения, принадлежащего одному из списков.

Списокi ‑ список чисел, диапазонов или других типов констант через запятую. Если значение ключа выбора принадлежит i‑му списку, то выполняется оператор, стоящий после этого списка.

Else задает оператор, который выполняется в случае, когда значение не принадлежит ни одному из списков.

Пример анализа односимвольного ответа пользователя:

Var Otvet: Char //объявление переменной с символом ответа пользователя

... Case Otvet Of //анализ возможных вариантов ответа пользователя

‘y’,’Y’,’д’,’Д’: PrYes; //положительный ответ ‑ выполнение прогр. PrYes

‘n’,’N’,’н’,’Н’: PrNo; //отрицательный ответ ‑ выполнение прогр. PrNo

Else ShowMessage(‘Ошибочный ответ!’); //запрещенный символ

Операторы цикла

Можно досрочно выйти из любого цикла, используя оператор Break, и досрочно перейти к следующему повторению цикла, используя про­це­ду­­ру Continue.

Счетный цикл For

For <счетчик> := <начальное значение> {To|Downto} <конечное значение>

Do < оператор >;

<счетчик> ‑ числовая переменная, которая автоматически увеличивается (или уменьшается на единицу, если указано DOWNTO) после выполнения оператора с начального значения до конечного значения.

Допускается вложенность цикла.

Пример процедуры вывода простых чисел:

Procedure TForm1.Button1Click(Sender: TObject); //заголовок процедуры

Var i,j: integer; prostoe:Boolean; //объявление переменных

Begin // начало раздела операторов

For i:=3 to 100 Do // внешний цикл просмотра всех чисел от 3 до 100

Begin prostoe:=True; // начало тела внешнего цикла

For j:=2 to i‑1 Do //начало внутреннего цикла подбора делителей числа i

If i mod j=0 then Begin prostoe:=False; Break; End; //составное число i

If prostoe then Label1.Caption:=Label1.Caption+IntToStr(i)+','; // простое i

End //окончание внешнего цикла

End //окончание процедуры

1.4.8.2. Цикл Repeat‑ Until

Repeat <операторы тела цикла> Until <условие типа пока не>;

После выполнения операторов тела цикла проверяется условие, и если оно истинно, то цикл заканчивается, иначе ‑ цикл повторяется.

Пример. Подсчитать сумму ряда 1+1/2+1/3+...1/n с точностью до 0.0001 (пока не 1/n<0.0001).

Procedure TForm1.Button1Click(Sender: TObject); //заголовок процедуры

Var i:integer; s:real; Const e=0.0001; //объявление переменных и константы

Begin s:=0; i:=0; Repeat i:=i+1; s:=s+1/i Until (1/i)<e; //цикл суммирования

Label1.caption:=FloatToStr(s) End; //вывод суммы и окончание процедуры

Цикл While

While < условие > Do < оператор >;

Если условие истинно, то выполняется оператор.

Пример. Найти минимальное слагаемое к единице, изменяющее ее (машинный эпсилон - погрешность в вычислениях).

Procedure TForm1.Button1Click(Sender: TObject); //заголовок процедуры

Var e: real; //объявление переменной

Begin e:=1;While e/2+1>1 do e:=e/2; //цикл определения погрешности

Label1.caption:=FloatToStr(e) end; //вывод погрешности в метку Label1

1.4.9. Оператор присоединения имени ‑ With

Оператор используется для сокращения записи при обращении к полям записей, к свойствам и методам объектов и имеет вид:

With <список имен записей или объектов через запятую> Do <оператор>;

Допускается вложенность операторов With.

Запись вида: With A Do... With B Do... With C...

эквивалентна записи: With A, B, C Do...

В операторе после Do можно не уточнять ссылки для полей, свойств и методов записей и объектов, соответственно, указанных после With.

Пример обращения к полям Fam и Gr записи Sotrudnik. Вместо операторов Sotrudnik.Fam:=’Иванов’; Sotrudnik.Gr:=1970; можно записать:

With Sotrudnik Do Begin Fam:=’Иванов’; Gr:=1970; End;

Вставка команд ассемблера

Вставляемые команды оформляются в виде:

Asm

<строки с командами ассемблера>

End;

Можно составлять на ассемблере (символьный язык машинных команд компьютера) целые функции и процедуры.

Пример функции Add на ассемблере сложения двух чисел:

Procedure TForm1.Button1Click(Sender: TObject); //проверка функции Add

Function add(X,Y:Integer):Longint;//функция сложения двух чисел

Asm //начало вставляемых команд ассемблера

Mov EAX,X //значение X записывается в регистр EAX

Add EAX,Y //содержимое регистра EAX увеличивается на Y

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...