Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 3.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
702 Кб
Скачать
☆

3.1.1.Глобальные данные

Глобальные данные — это данные (константы, переменные, массивы и другие), объявленные в начале программы и доступные в подпрограммах и «главной программе» (основном блоке программы).

Глобальные данные следует использовать только для передачи информа­ции от одной программы (подпрограммы) к другой. Например, одна подпро­грамма формирует значения данных, а другая подпрограмма использует эти значения.

Рисунок 3.2 - Структура программы

3.1.2 Способы передачи параметров

Когда вызывающая программа обращается к подпрограмме, требуется связать фактические параметры вызывающей программы с формальными па­раметрами подпрограммы. Чаще всего применяются два подхода: либо фак­тический параметр вычисляется и полученное значение передается формаль­ному параметру (передача значением), либо формальному параметру стано­вится доступен адрес значения фактического параметра (передача по адресу).

Передача значением

Схема обмена информацией с использованием передачи параметра значе­нием приведена на рисунке 3.3.

В этом случае формальный параметр a обрабатывается в подпрограмме как локальная переменная, инициализируемая в начале выполнения подпро­граммы значением соответствующего фактического параметра х.

В операторе вызова фактическим параметром может быть:

  • Константа;

  • Переменная;

  • Выражение;

  • Функция.

Значение фактического параметра при изменении соответствующего ему формального параметра не изменяется.

Рисунок 3.3 - Передача параметра значением

В приведенном примере (рисунок 3.3) после вызова подпрограммы P зна­чение фактического параметра x остается равным 0

Передача по адресу

Схема обмена информацией с использованием передачи параметра по ад­ресу приведена на рисунке 3.4. В этом случае формальный параметр a (опи­сание параметра начинается со слова var) обрабатывается в подпрограмме как переменная, адрес которой есть адрес соответствующего фактическо­го параметра х.

Рисунок 3.4. Передача параметра по адресу

В операторе вызова фактическим параметром может быть только пере­менная.

Любое изменение формального параметра a есть изменение соответст­вующего ему фактического параметра х. После вызова подпрограммы P (рисунок 3.4) значение x равно 1.

3.1.3 Функции

Формат спецификации функции:

function <имя>(<список формальных параметров>): <тип результата>;

Для возвращения результата функция должна содержать хотя бы один оператор присваивания следующего вида:

<имя подпрограммы> := <результат>;

где результат - это вычисленное значение в подпрограмме (константа, пе­ременная, элемент массива и другие элементы данных).

Вызов функции включается в оператор языка Pascal.

Пример вызова функции P(x):

y:= P(x); {вызов P(x) в операторе присваивания}

if P(x)>0 then {вызов P(x) в операторах if и writeln } writeln(P(x));

В качестве примера рассмотрим описание и использование функции power, которая возводит переменную base в степень exponent - baseexponent.

function power( base, exponent: real): real;

begin

power:= exp( exponent * ln(base)); {exp, ln - встроенные функции Pascal: }

{ exp (x) - ex}

{ ln (x) - натуральный логарифм x }

end;

Вызов функции power может быть, например, таким: writeln (power(3, 5));