Что указывается при описании переменной на языке процедурного типа?

Переменным процедурного типа можно присваивать значения конкретных процедур и функций. Естественно, что процедурная переменная и та процедура, которая присваивается ей в качестве значения, должны иметь одинаковое число формальных параметров, совпадающих по типам. Если переменная имеет тип функции, то для функций кроме формальных параметров должны совпадать типы функций. Те процедуры и функции, которые будут использоваться либо в качестве значений для процедурных переменных, либо в качестве фактических параметров при вызове процедур и функций, должны удовлетворять следующим правилам:

-должны компилироваться с ключом компилятора {$F+}

-не должны быть стандартными процедурами или функциями

-не должны объявляться внутри других процедур или функций.

Например, пусть есть описание функции с таким заголовком:

Function Calc(X,Y: Integer): Integer;

Можно присвоить имя функции некоторой переменной F, если она объявлена так:

var

F: Function(X,Y: Integer): Integer;

...

F:= Calc;

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

type

TIntegerFunction = function: Integer;

TProcedure = procedure;

TStrProc = procedure(const S: string);

TMathFunc = function(X: Double): Double;

Какие бывают виды цикла?

Цикл – такая алгоритмическая структура, в которой серия команд выполняется многократно(тело цикла).

1.Цикл с предусловием – пока условие истинно, предписывается выполнять тело цикла. (пока<условие>тело цикла)

2.Цикл с постусловием – предписывает выполнять тело цикла до тех пор, пока не выполнится условие выхода из цикла. (тело цикла, до <условие>)

3.Цикл со счётчиком – предписывает выполнять тело цикла для всех значений некоторой переменной(параметра цикла) в заданном диапазоне. (для i от i1 до i2, тело цикла)


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



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