Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Подпрограммы-функции в Turbo Pascal



 

Цель работы: изучить операторы, используемые для организации

подпрограмм – функций.

Содержание работы:

1 Описание функций

2 Параметры функции

 

Общие сведения

Программы, которые не разделены на отдельные структурные элементы, называются монолитными. Большие монолитные программы сложны для разработки, отладки и сопровождения. Минимальным автономным элементом монолитной программы является оператор.

Целесообразно разбить программу на более крупные, чем операторы, компоненты. Роль таких компонент выполняют процедуры и функции. Часто их объединяют в понятие подпрограмм. Подпрограмма имеет ту же структуру, что и монолитная программа, то есть может содержать разделы описания переменных, типов, констант и т.д. Кроме того, подпрограмма может иметь собственные процедуры и функции. Имена объектов, описанных в подпрограмме, считаются известными только пределах данной подпрограммы.

Работа подпрограммы завершается после выполнения последнего оператора ее тела, для этого Turbo Pascal имеет системную процедуру Exit, которая немедленно завершает выполнение подпрограммы и возвращает управление в точку вызова.

 

1 Описание функций

Смысл функции заключается в задании алгоритма вычисления некоторого значения и организации возврата (передачи) этого значения в точку вызова.

В заголовке функции определяется идентификатор функции, формальные параметры (если они имеются) и тип результата функции.

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

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

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

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

Функция может возвращать в качестве результата значение только простого, строкового и ссылочного типа.

 

Пример 1 описания функции:

function Max(A, B: Integer): Integer;

Begin

if A> B then

Max: = A

Else

Max: = B;

end;

WriteLn(Max(X, Y));

M: = Max(X-Y, X+Y) + 2*Max(X, Y);

В фрагменте программы объявляется функция Max с элементами А и В целого типа. В основном блоке функции Max присваивается значение либо А, либо В и оно распечатывается. Далее вычисляется значение переменной М, равной сумме функции Max(X-Y, X+Y)и 2*Max(X, Y).

Пример 2:

function IsEmpty(Top: Byte): Boolean;

Begin

IsEmpty: = Top =0;

end;

В фрагменте описана функция IsEmpty логического типа, которой присвоено значение 0 (пустая функция).

 

Параметры функции

В описании процедуры или функции задается список формальных параметров. Каждый параметр, описанный в списке формальных параметров, является локальным по отношению к описываемой процедуре или функции, и в теле подпрограммы на него можно ссылаться по его идентификатору.

Существует два основных типа параметров: параметр-значение и параметр-переменная. Они характеризуются следующим:

1 Группа параметров без предшествующего ключевого слова var является списком параметров-значений.

2 Группа параметров, перед которыми стоит ключевое слово var является списком параметров-переменных.

 

Параметры-значения

Формальный параметр-значение обрабатывается, как локальная по отношению к процедуре или функции переменная, за исключением того, что он получает свое начальное значение из соответствующего фактического параметра при активизации процедуры или функции. Изменения, которые претерпевает формальный параметр-значение, не влияют на значение фактического параметра. Соответствующее фактическое значение параметра-значения должно быть выражением и его значение не должно иметь файловый тип или какой-либо структурный тип, содержащий в себе файловый тип. Фактический параметр должен иметь тип, совместимый по присваиванию с типом формального параметра-значения. Если параметр имеет строковый тип, то формальный параметр будет иметь атрибут размера, равный 255.

Примеры:

function MaxElem(A: Vector; n: Byte): Real;

function IsZero(I, K: Integer): Boolean;

Параметры-переменные

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

Примеры:

function SumMatr(A, B: Matrix; var C: Matrix): Real;

function ChrString(var S: String): String;

3 Контрольные вопросы

1 Для чего предназначены подпрограммы-функции?

2 Как описывается функция?

3 Виды параметров функции.

4 Как обрабатываются параметры-значения?

5 Как обрабатываются параметры-переменные?

 

Задание

Составить программу вычисления функции с использованием подпрограммы-функции при х = 0, 45.

 

№ вар Функция

 

 

 

Содержание отчета

1 Название, цель, содержание работы

2 Задание для своего варианта.

3 Программа расчёта – с подпрограммой -функцией.

4 Результаты расчётов в среде QB.

5 Письменные ответы на контрольные вопросы.

6 Выводы по работе

 

 

Лабораторная работа №8


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 576; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь