Оператор безусловного перехода 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 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|