Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПП.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
535 Кб
Скачать
  1. Возвращаемые значения функции.

Вызов подпрограммы почти всегда является частью некоторого выраже¬ния. Результат, полученный после выполнения подпрограммы, называется возвращаемым значением. Возвращаемое значение представляет собой резуль¬тат выполнения оператора return или последнего выражения, вычислен¬ного в подпрограмме.

Давайте, например, определим такую подпрограмму:

sub sum_of_a_and_b { return $a + $b;т }

Последнее выражение, вычисляемое в теле этой подпрограммы (фактически единственное вычисляемое выражение), - сумма переменных $а и $b, поэтому эта сумма и будет возвращаемым значением. Вот как все это работает:

$а = 3; $b = 4;

$с = sum_of_a_and_b(); # $с присваивается значение 7

Sd = 3 * sum_of_a_and_b(); # $d содержит значение 21

При вычислении в списочном контексте подпрограмма может возвра¬щать список значений. Рассмотрим такую подпрограмму и ее вызов:

sub list_of_a_and_b { return($a,$b); } $а = 5; $b = 6; @с = list_of_a_and_b (); # @с присваивается значение (5,6)

Последнее вычисленное выражение действительно означает последнее вычисленное выражение, а не последнее выражение, определенное в теле подпрограммы. Например, следующая подпрограмма возвращает $а, если $а > 0; в противном случае она возвращает $b:

sub gimme_a_or_b

{ if (Sa > 0) { print "choosing a ($a) "; returns $a; } else { print "choosing b ($b) "; returns $b; } }

Все это довольно тривиальные примеры. Однако будет гораздо лучше, если вместо того, чтобы полагаться на глобальные переменные, мы сможем передавать в подпрограмму значения, разные для каждого вызова.

  1. Понятие функции. Использование прототипов функций.

В программе можно сначала описывать вызываемые функции, а затем главную функцию main (как это делалось во всех выше описанных примерах). Чтобы изменить порядок описания функций необходимо использовать прототип функций. Прототип функции выглядит так же как ее заголовок, только с точкой запятой в конце. Прототип функции можно использовать, даже если эта функция не возвращает результат или нет необходимости передавать в нее значения (т.е. у нее нет параметров).

Использование прототипов позволяет исключить возможные ошибки при передаче параметров.

  1. Функция get() и put().

Функция get() вводит один символ со стандартного устройства ввода (оно обозначается cin и, если оно не было переназначено, то это клавиатура). Функция put() выводит одиночный символ на стандартное устройство вывода (оно обозначается cout и, если оно не было переназначено, то это экран). Функции get() и put() хранятся в библиотечном файле fstream.h Для их применения этот библиотечный файл необходимо подключить с помощью директивы include.

  1. Функция getch().

Функция getch читает без эхо-отображения отдельный символ

прямо с консоли. Напечатанные (введенные) символы не имеют

эхо-отображения. Если введен CONTROLL-C, система выполняет INT

23H.

Функция getch возвращает прочитанный символ. Возвращаемого

значения в случае ошибки нет.