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

Procedure имя_процедуры;

и описывает процедуру без параметров.

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

Б. Заголовок процедуры со списком формальных параметров.

Б1. Заголовок процедуры, состоящий из зарезервированного слова procedure, имени процедуры и списка параметров, за которым следует идентификатор типа элементов списка (служебное слово var отсутствует):

procedure имя_процедуры (<сп.ф.п.>: тип п. [;<сп.ф.п.>: тип п. [;<сп.ф.п.>: тип п.]]);

где <сп.ф.п.> – список формальных параметров, тип п. – тип параметров.

Параметры процедуры в этом случае называют "параметры-значения". Если в заголовке процедуры отсутствует слово var, то изменение параметров-значений не будет передано в основную программу или охватывающую подпрограмму, так как подпрограмма получает не сам фактический параметр, а его значение, то есть копию.

Б2. Заголовок процедуры, состоящий из зарезервированного слова procedure, имени процедуры, служебного слова var и списка параметров, за которым следует идентификатор типа элементов списка:

procedure имя_процедуры (var <сп.ф.п.>: тип п. [;var <сп.ф.п.>: тип п. [;var <сп.ф.п.>: тип п.]]);

Параметры процедуры в этом случае называют "параметры-перемен­ные". Использование параметров-переменных позволяет уменьшить объём программы.

Б3. Заголовок процедуры, состоящий из зарезервированного слова procedure, имени процедуры, служебного слова var и списка параметров без указания их типа:

procedure имя_процедуры (var <сп.ф.п.>);

Параметры процедуры в этом случае называют "параметры-перемен­ные". Ответственность за совпадение типов формальных и фактических параметров в этом случае берёт на себя программист.

В список формальных параметров в подпрограмме можно включать только стандартные или ранее объявленные типы данных. Поэтому, например, нельзя объявлять объект типа массива в виде:

procedure имя_процедуры (<сп.ф.п.> : array [1 .. 15] of real);

так как здесь объявляется тип-диапазон, указывающий границы индексов массива.

Правильным в этом случае будет предварительно описать тип объекта в основной программе, а затем этот тип ввести в заголовок процедуры:

Program Primer;

. . . . . . .

type

a = array [1 .. 15] of real ;

. . . . . . .

procedure Primer (b : a) ;

. . . . . . .

end ;

. . . . . . .

begin

. . . . . . .

end.

2.2 Функции

Функции имеют аналогичную структуру с процедурами, но различаются назначением и способом применения. Функция определяет алгоритм вычисления нового значения некоторого простого или ссылочного типа переменной. Описание функции отличается от описания процедуры двумя особенностями.

Первая особенность заключается в том, что заголовок функции должен начинаться зарезервированным словом function, а заканчиваться названием того типа данных, которому принадлежит значение функции:

function имя_функции (<сп. ф. п.> : их тип [;<сп. ф. п.> : их тип]): тип функции;

Здесь function – зарезервированное слово, объявляющее в разделе описаний о том, что следующая за ним переменная является функцией. Имя функции должно удовлетворять требованиям языка Паскаль. Обозначение <сп. ф. п.> – список формальных параметров, который может отсутствовать. Требования к списку формальных параметров в подпрограмме-функции точно такие же, как для подпрограммы-процедуры.

Тип функции определяет тип результата, то есть тип возвращаемого значения.

Вторая особенность функции состоит в том, что в разделе операторов подпрограммы-функции обязательно должен быть хотя бы один оператор, содержащий слева от оператора присваивания имя функции:

имя_функции := ...... ;

Таких операторов может быть несколько, но при каждом конкретном обращении к функции значение должен получить только один из них. Он и определит значение функции.