Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы.doc
Скачиваний:
72
Добавлен:
13.03.2016
Размер:
393.22 Кб
Скачать

Сравнения

Операторы сравнения сравнивают величины двух операндов. Таблица перечисляет операторы сравнения:

Число

Строка

Значение

= =

eq

равно

!=

не равно

>

gt

больше чем

<

it

меньше чем

>=

ge

больше или равно

<=

le

меньше или равно

<=>

cmp

не равно (результат со знаком)

Результатом операции сравнения является единица, если сравнение истинно и нуль в противном случае. Однако последняя операция (<=> или cmp) может возвращать значения -1, 0 или 1 в зависимости от того, является ли значение первого операнда меньше, чемвторого, равным ему или большим. Рассмотрим следующий пример сравнения: $x = 5; # x равно 5 print ($x < 4); # если false, то выведет 0

Логические

Логические операторы анализируют булевы выражения и возвращают значения <истинно> или <ложно> в качестве результата. Perlобрабатывает операнды логических операций как булевы величины, т.е. как истинное или ложное значение. Логические операторы языка Perl включают следующие:

? || логическое ИЛИ ? && логическое И

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.