Процедуры и функции в языке 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;
begin
write(‘Введите x,y ‘);
readln(x,y);
MaxNumber(x,y,m);
MaxNumber(2,x+y,n);
writeln(‘m=’,m,’n=’,n);
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;
begin
write(‘Введите x,y ‘);
readln(x,y);
m := MaxNumber(x,y);
n := MaxNumber(2,x+y);
writeln(‘m=’,m,’n=’,n);