end
8а) procedure имя (список параметров): оператор
8б) return выражение
8в) имя процедуры (аргументы)
9а) read переменная
9б) write переменная
10) comment комментарий
11) любой другой произвольный оператор
Дадим краткую характеристику перечисленных операторов.
1. Временная сложность оператора присваивания определяется временем, которое затрачивается на вычисление значения выражение и присваивании этого значения переменной.
2. Вес if-оператора равен сумме весов, требуемых для вычисления значения и проверки его, и веса оператора, стоящего сразу за then, или оператора, стоящего за else, в зависимости от того, какой из них выполняется на самом деле.
3. Временная сложность операторов while и repeat определяется одинаково: вес этих операторов равен сумме весов всех проверок условия и всех выполненных операторов.
4. Вес for-оператора определяется аналогично while-оператору.
5. Меткам не приписывается никакого веса.
6. Основное применение goto-оператора - выход из while-операторов. Вес goto равен 1.
7. Последовательность операторов между begin и end образует оператор, который называется блоком. Вес блока равен сумме весов операторов, составляющих блок.
8. В Упрощенном Алголе процедуры можно определять и впоследствии вызывать. Определяются процедуры соответствующим оператором (оператор определения процедур)-см. 8а ,-аргументами которого являются формальные параметры.
Например, следующий оператор определяет процедуру-функцию MIN (определение меньшего числа в паре чисел):
procedure MIN(x, y)
if x>y then return y else return x;
Процедуры используются одним из двух способов. Один способ - в качестве функции. После того как процедура-функция описана, к ней можно обратиться в некотором выражении, вызывая ее имя с нужными аргументами. В этом случае последним оператором, выполняемом в данной процедуре, должен быть return-оператор(8б). Этот оператор приводит к вычислению выражения, следующего за выделенным словом return, и окончанию выполнения процедуры. Значением функции будет значение этого выражения. Например, QMIN(3+2, 7) приводит к тому, что Q получает значение 5. Выражения 2+3 и 7 называются фактическими параметрами этого обращения к данной процедуре.
Второй способ применения процедур состоит в вызове ее с помощью оператора вызова процедуры (8в). Этот оператор есть, по существу, имя процедуры, за которым идет список фактических параметров. Оператор вызова процедуры может изменить (и обычно изменяет) данные (значения переменных, массивов и т.д.) вызываемой программы. В определении вызываемой таким способом процедуры return-оператор не нужен. Завершение выполнения последнего оператора процедуры завершает и выполнение оператора ее вызова. Например, следующий оператор определяет процедуру INV(x, y) (взаимо замену):
Do'stlaringiz bilan baham: |