Логическое ИЛИ ? && логическое И
Perl всегда обрабатывает логические выражения слева направо. Кроме того. Perl всегда прекращает оценку, если уже выполненнойоценки достаточно, чтобы определить значение результата. Отличия между процедурами и функциями На этом шаге мы перечислим отличия процедур и функций. Структура описания процедур и функций приведена в 16 шаге. Напомним формат заголовков процедур и функций: procedure <Имя> (<Список Формальных Параметров>); function <Имя> (<Список Формальных Параметров>): <Тип результата>; Объявление и работа с процедурами и функциями отличаются в следующем: в заголовке функции помимо описания формальных параметров обязательно указывается тип возвращаемого ею результата; для возврата функцией значения в точку вызова среди ее операторов должен быть хотя бы один, в котором имени функции или переменной Result присваивается значение результата; вызов процедуры выполняется отдельным оператором; вызов функции может выполняться там, где допускается ставить выражение, в частности, в правой части оператора присваивания. Помимо указанных отличий между процедурами и функциями отметим еще особенности реализации функций в языке Object Pascal. В Object Pascal функция может возвращать значения практически любых типов (стандартных и определяемых пользователем), за исключением файловых и объектных типов "старой" объектной модели, объявляемых с помощью зарезервированного слова object. Для возврата результата функцией введена специальная переменная Result, которая представляет собой неявно объявляемую локальную переменную, имеющую такой же тип, как и возвращаемое функцией значение. Присваивание значения переменной Result эквивалентно присваиванию имени функции. Однако, в отличие от идентификатора функции, если Result встречается в правой части оператора присваивания, то происходит не рекурсивный вызов функции, а обращение к текущему значению Result. Для реализации многократно повторяющихся участков вычислений и для обеспечения модульности программ в языке Турбо Паскаль предусмотрена возможность использования процедур и функций. Процедура – это поименованное сложное действие, которое представляет собой совокупность операторов, вычисляющих некоторое число результатов в зависимости от некоторого числа аргументов. Процедура или функция (общее название – подпрограмма) определяется в разделе описаний основной программы или другой процедуры(функции). Процедура (функция) имеет ту же структуру, что и основная программа, т.е. состоит из заголовка, описательной части и выполняемой части. Синтаксис заголовка процедуры:
PROCEDURE < имя процедуры > [( <список формальных параметров > )];
Например:
Procedure PR1(A,B,C:integer;Var S:real); здесь PR1 – имя процедуры, а А,В,С,S – имена переменных, являющихся параметрами.
В отличие от основной программы заголовок в процедуре обязателен, но завершается процедура не точкой, а точкой с запятой. Описание процедуры выполняется с формальными параметрами. В заголовке запись переменных напоминает объявление переменных в разделе описания переменных. Для всех элементов списка должен быть указан тип данных. Несколько переменных, отнесенных к одному типу, пишутся через запятую, а группы переменных различного типа отделяются точкой с запятой. Оператор процедуры служит для вызова процедуры из основной программы или из другой процедуры(функции). Вызов осуществляется в следующей форме:
<имя процедуры > [( <список фактических параметров> )];
Таким образом, для приведенного заголовка процедуры можно написать такой оператор вызова:
PR1 (A,B,C,S); Форматы списка параметров в заголовке процедуры и при вызове процедуры отличаются. При вызове переменные, константы или выражения следуют через запятую, причем указываются только имена. После обращения к процедуре управление передается на выполнение следующего за вызовом процедуры оператора. Рассмотрим пример реализации алгоритма вычисления синуса (см. тема 4) в виде процедуры с параметрами. В список формальных параметров включаются все данные необходимые для вычислений – это значение аргумента X и точности вычислений, обозначенной здесь через Е. Кроме входных данных в список параметров необходимо включить результаты работы процедуры, а именно – Y.
var x,y,e:real; procedure sinx(x,e:real;var y:real); var u,z:real; k:integer; Begin k:=0; y:=0; u:=x; z:=sqr(x);
|