Типы подпрограмм в языке паскаль + видео обзор

Процедуры и функции в языке Pascal

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

Типы подпрограмм в языке паскаль

Виды подпрограмм

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

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

Подалгоритм функционирует как подпрограмма если:

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

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

Типы подпрограмм Паскаль:

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

Входные параметры — размер, транслируемый в подпрограмму из вызывающего блока.

Выходные параметры — размер, транслируемый в обратную сторону.

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

Описание. Вызов процедур и функций

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

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

function имя функции (формальные параметры): тип результата;
раздел описаний функции
begin
исполняемая часть функции
end;

Структура процедуры в Паскале показана следующим образом:

procedure имя процедуры (формальные параметры);
раздел описаний процедуры
begin
исполняемая часть процедуры
end;

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

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

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

Вызов процедуры производится оператором:

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

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

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

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

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

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

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

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

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

Практическое применение процедуры. Задачей является: обнаружить из нескольких (наибольшее количество — два) полноценных чисел:

var x,y,m,n: integer;
procedure MaxNumber(a,b: integer; var max: integer);
begin
if a>b then max:=a else max:=b;
end;

Для похожей задачи, но с применением функций, возможно найти решение так:

var x,y,m,n: integer;
function MaxNumber(a,b: integer): integer;
var max: integer;
begin
if a>b then max:=a else max:=b;
MaxNumber := max;
end;

Источник

Подпрограммы в языке Pascal

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

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

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

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

Параметры подпрограмм.

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

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

В Паскале четыре вида параметров:

Значения;

Параметр-значение описывается в заголовке подпрограммы следующим образом:

Например, передача в процедуру Р величины целого типа записывается так:

procedure P(x : integer);

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

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

При вызове подпрограммы на месте параметра, передаваемого по значению, может находиться выражение. Тип выражения должен быть совместим по присваиванию с типом параметра.

Например, если в вызывающей программе описаны переменные

то следующие вызовы подпрограммы Р, заголовок которой описан выше, будут синтаксически правильными:

P(x); P(c); P(y); P(200); P(x div 4 + 1);

Переменные;

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

Признаком параметра-переменной является ключевое слово var перед описанием параметра:

Например, передача в процедуру Р параметра-переменной целого типа записывается так:

procedure P(var x : integer);

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

ВНИМАНИЕ При вызове подпрограммы на месте параметра-переменной может находиться только ссылка на переменную точно того же типа.

Проиллюстрируем передачу параметров-значений и параметров-переменных на примере.

Пример №1.

var a, b, c, d, e : word;

procedure X(a, b, c : word; var d : word);

writeln (‘c = ‘, c, ‘ d = ‘, d, ‘ e = ‘, e);

Результаты работы этой программы приведены ниже:

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

Константы;

Параметр-константу можно узнать по ключевому слову const перед описанием параметра:

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

Например, передача в процедуру Р параметра-константы целого типа записывается так:

procedure P(const x : integer);

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

Типы подпрограмм в языке паскаль

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

Источник

Pascal | Лекция №6

Подпрограммы. Процедуры и функции

СОДЕРЖАНИЕ:

Подпрограммы (см. Рапаков стр.143-157!)

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

Использование подпрограмм позволяет:

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

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

Структура подпрограмм

Структура подпрограмм почти в точности повторяет структуру всей Pascal-программы.

При описании подпрограммы в общем случае необходимо задать три основные компоненты:

Интерфейс подпрограммы содержится в заголовке и говорит о том, что именно делает подпрограмма.

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

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

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

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

Описание процедур и функций. Формальные параметры

Описание процедур и функций в общем виде:

Типы подпрограмм в языке паскаль

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

Здесь — имя процедуры.

Раздел описаний, как и в основной программе, может включать разделы Label, Const, Type, Var и раздел процедур и функций.

Формальные параметры представляют собой список переменных с указанием их типа, которые отделяются друг от друга «;». Эти переменные не описываются в разделе описания процедур. Допускается использование процедур без параметров.

Если в качестве параметров используется массив, то предварительно нужно описать имя типа массива в разделе Type, а затем использовать это имя при описании массива в качестве формального параметра.

Параметры процедур бывают двух типов:

Описание входных параметров процедуры в списке формальных параметров имеет также вид:

Список переменных1: тип1; список переменных2: тип2;

Соответственно описание выходных параметров выглядит следующим образом:

Var Список переменных1: тип1; Var список переменных2: тип2;

Вызов процедуры в основной программе имеет следующий вид:

(список фактических параметров);

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

Имена соответствующих фактических и формальных параметров могут быть одинаковыми или разными.

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

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

Function (список формальных параметров): тип;

Функции имеют несколько отличительных особенностей:

Область действия имен

Переменные, представленные в разделе описания основной программы, могут быть использованы в теле основной программы и в любой ее подпрограмме. Эти переменные называются глобальными.

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

Наглядно схему программы, имеющей некоторые вложенные подпрограммы, можно представить следующим образом:

Типы подпрограмм в языке паскаль

Самый внешний блок программы обозначен буквой A (имена этого блока «видны» во всех остальных блоках), B и D – подпрограммы, описанные во внешнем блоке, C – подпрограмма, описанная в блоке B (объекты этого блока известны только внутри самого блока).

При написании программ, имеющих вложенные подпрограммы, необходимо соблюдать следующие правила:

Использование процедур и функций на примере

Пример 1: вычислить площадь выпуклого четырехугольника

В результате выполнения данной программы на экран будет выведено:

Источник

Урок «Понятие подпрограмм. Подпрограммы в языке Паскаль». 10-й класс

Класс: 10

План

I. Повторение материала.
II. Изучение нового материала.
III. Итог урока.
IV. Домашнее задание.

PROGRAM ИМЯ; (можно не писать)
1. CONST
2. TYPE
3. VAR
4. PROCEDURE, FUNCTION
BEGIN
Тело программы
END.

А сейчас будем разгадывать КЛЮЧВОД, заполняя его – повторим операторы, служебные слова языка Паскаль (Приложение 1).
(Заполненный КЛЮЧВОРД – Приложение 2)

II. Изучение нового материала

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

– если в программе необходимо переписывать одни и те же последовательности команд, то стоит эту последовательность ко­манд оформить в виде подпрограммы;
– слишком длинную программу полезно разбить на составные части – подобно тому, как книгу разбивают на главы. При этом ос­новная программа становится похожей на оглавление;
– при решении задачи могут возникать слишком сложные под­ задачи. Целесообразней отладить их отдельно в небольших про­граммах. Добавление этих программ в основную задачу будет лег­ким, если они оформлены как подпрограммы;
– все, что вы сделали хорошо в одной программе, вам захочет­ся перенести в новые программы.

В языке Pascal механизм подпрограмм реали­зуется в виде ПРОЦЕДУР (PROCEDURE) и ФУНКЦИЙ (FUNCTION), которые вводятся в про­грамму с помощью своего описания, но их структура такая же, как и структура программы. Они различаются назначением и способом их использования.

Процедуры предназначены для выполнения некоторой после­довательности действий.
Чтобы использовать подпрограмму – процедуру её надо описать и к ней надо уметь обращаться.

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

Параметры бывают следующих видов:

I. Глобальные – параметры описываются в головном модуле, доступны любой подпрограмме.
I. Локальные – используются только в процедуре, они могут быть или не быть, описываются после слова VAR, с указанием типа.

II. Формальные – описываются в заголовке процедуры, к ним относятся входные и выходные параметры.
III. Входные – это и IV. Параметры – значений описываются через запятую с указанием типа. При выходе из процедуры не сохраняются.
III. Выходные – это и IV. Параметры – переменные описываются после слова VAR через запятую, с указанием типа, при выходе из процедуры сохраняются.
Эти параметры описываются в круглых скобках после имени процедуры

II. Фактические – в головном модуле при вызове процедуры.
При вызове (обращении) формальные параметры заменяются на фактические.

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

Любая процедура начинается с заголовка, который является ее обязательной частью (в отличие от заголовка программы). Он состоит из служебного слова Procedure, за которым следует имя процедуры, а в круглых скоб­ках – список формальных параметров. После заголовка могут идти те же разделы, что и в программе. Таким образом, общий вид будет следующим:

Рrосеdиге (формальные параметры);
VAR (описание локальных параметров, они могут быть или не быть)
begin
тело процедуры
end; (конец процедуры)
BEGIN (головного модуля)
Фактические параметры
END.
Используя подпрограмму – процедуру рассмотрим несколько задач

1.Составить программу сложения 2-х чисел, значения вводятся с клавиатуры.

Типы подпрограмм в языке паскаль

2. Составить программу нахождения максимального из четырёх чисел, вводимых с клавиатуры.

Источник

Урок 13. Подпрограммы в языке Паскаль

Урок из серии: «Язык программирования Паскаль«

За наличие подпрограмм как средства структурирования программ язык программирования Паскаль называется процедурно-ориентированным.

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

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

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

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

Параметры процедур и функций

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

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

Результат выполнения процедуры — это одно или несколько значений. Результат передается в основную программу через ее выходные параметры.

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

Передача параметров

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

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

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

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

В качестве фактического параметра-значения можно указать выражение. В качестве фактического параметра-переменной можно указать только переменную.

Глобальные и локальные переменные

В программе все переменные делятся на глобальные и локальные.

Глобальные переменные — это те переменные, которые объявляются в описании основной программы.

Локальные переменные — это те, которые описаны в процедурах и функциях. Эти переменные помещаются в стек при вызове подпрограммы и удаляются из него при возвращении в точку вызова. Таким образом, локальные переменные существуют только тогда, когда работает подпрограмма, появляются при вызове и исчезают при завершении работы.

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

В следующем уроке Вы научитесь создавать и использовать пользовательские процедуры и функции.

Источник

Видео

Поделиться или сохранить к себе:
Технологии | AltArena.ru
Добавить комментарий

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