Разместить заказ
Вы будете перенаправлены на Автор24

Процедуры и функции в Turbo Pfscal V.7.0

8-800-775-03-30 support@author24.ru

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

Определение 1

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

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

Помощь со студенческой работой на тему
Процедуры и функции в Turbo Pfscal V.7.0

Определение 2

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

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

Описание процедуры

Замечание 1

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

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

Синтаксис процедуры выглядит:

procedure имя процедуры ( параметры);

uses имена модулей;

label имена меток;

const имена констант;

type имена типов;

var имена локальных переменных;

;

Begin

;

end;

Синтаксис функции выглядит:

function имя функции ( параметры) : тип результата;

uses имена модулей;

label имена меток;

const имена констант;

type имена типов;

var имена локальных переменных;

;

begin

;

end;

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

function имя функции (список параметров) : тип результата; forward;

Аналогичным образом поступаем с процедурой, если ее объявление оторвано от описания, то ставим после него служебное слово forward:

procedure имя процедуры (список параметров); forward;

Самым простым способом описания можно считать использование дополнительной строки, в которой будем указывать только имя процедуры (функции):

function имя функции;

или

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

Как вызвать процедуру и функцию

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

имя процедуры (список x параметров);

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

Чтобы в вызывающий блок передавалось выходное значение функции в исполняемой части функции перед возвратом в вызывающий блок поместим команду:

имя функции: = результат;

Приведем правила, которые необходимы при вызове процедур и функций:

  • количество параметров на входе должно совпадать с количеством параметров, указанных в описании процедуры (функции);
  • соответствующие параметры на входе и в описании должны совпадать по порядку следования и по типу.

Основным различием функций и процедур является количество возвращаемых ими значений.

Любая функция после того, как завершила свою работу, должна вернуть основной программе (или другой вызвавшей ее подпрограмме) 1 значение, причем его тип нужно указать при объявлении функции.

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

Например:

Пример 1

function min(a,b: integer): integer

begin

if a >b then

min:= b

else

min:= a;

end;

В отличие от функций, процедуры не возвращают никаких значений.

Параметры

Замечание 2

При использовании процедур (функций) в среде Turbo Pascal - программа всегда содержит текст процедуры (функции) и обращается к ней. Тексты процедур и функций находятся в разделе описаний. Сами же они находятся в разделе описаний программы. Чтобы выполнить процесс обмена информацией между процедурами и функциями и другими блоками программы, используем механизм входных и выходных параметров.

Определение 3

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

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

Синтаксис записи формального параметра:

var имя праметра : имя типа ;

Служебное слово var может и не использоваться. Если у параметров одинаковый тип, то их имена перечисляем через запятую, при этом указываем одно имя типа для них. Для описания параметра используются лишь стандартные имена типов, или те, которые определены командой type. Список формальных параметров может не использоваться.

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

По способу передачи фактических значений в процедуру (функцию) в Turbo Pascal 7.0 применяют:

  • переменные;
  • значения;
  • константы;
  • массивы и строки;
  • функции;
  • процедуры;
  • нетипизированные параметры.

Область видимости

Определение 4

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

Глобальные объекты представляют типы данных, константы и переменные, которые объявляются в начале программы до момента объявления процедур. Эти объекты, образно говоря, будут «видны» во всей программе, в том числе и во всех процедурах, которые в ней прописаны. Глобальные объекты существуют на протяжении всего времени, пока работает программа.

Локальные объекты, как правило, объявляются внутри какой-нибудь процедуры и «видит» их только она, да еще ее внутренние процедуры. Локальные объекты не существуют, пока не будет вызвана процедура, в которой они были объявлены, а также после завершения ее работы.

Статья предоставлена специалистами сервиса Автор24
Автор24 - это сообщество учителей и преподавателей, к которым можно обратиться за помощью с выполнением учебных работ.
как работает сервис