Министерство образования и науки Российской Федерации
Саратовский государственный технический университет
Балаковский институт техники, технологии и управления
Программирование с использованием подпрограмм пользователя
Методические указания к выполнению лабораторных работ
по курсу “Программирование и основы алгоритмизации”
для студентов специальности 210100
дневной и вечерней форм обучения
Одобрено
редакционно-издательским советом
Балаковского института техники,
технологии и управления
Балаково 2009
Цель работы: овладение навыками алгоритмизации и программирования задач с использованием подпрограмм пользователя.
Основные понятия
В практике программирования часто складываются ситуации, когда одну и ту же группу операторов, реализующих определенную цель, требуется повторить без изменений в нескольких местах программы. Для избавления от нерациональной траты времени была предложена концепция подпрограммы.
Подпрограмма – именованная, логически законченная группа операторов языка, которую можно вызвать для выполнения любое количество раз из различных мест программы. В языке Паскаль существуют два вида подпрограмм: процедуры и функции.
Главное отличие процедур от функций заключается в том, что результатом последних является одно единственное значение.
Все процедуры и функции языка Паскаль делятся на две группы: встроенные (стандартные) и пользовательские.
Процедуры пользователя
Каждая новая процедура или функция задаются в описательной части программы. Вызываются в основной части (в разделе операторов).
Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, имени процедуры и заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра. Формальные параметры отделяются точкой с запятой (список однотипных параметров может быть перечислен через запятую). Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичен программе.
Формат:
procedure <имя> (список формальных параметров);
Const ...;
Type ...;
Var...;
begin
<операторы>;
end;
Описания меток, констант, типов и т.д. действительны только в пределах данной процедуры. В теле процедуры можно использовать любые глобальные константы и переменные.
Например:
{Процедура fact вычисляет значения факториала числа m}
{и возвращает результат в переменной f.}
{Для хранения значений факториалов (f) использован тип longint.}
procedure fact(m: integer; var f: longint);
var
i: integer;
begin
f:=1;
for i:=2 to m do f:=f * i;
end;
Формальные параметры нельзя описывать в разделе описаний процедуры.
Процедура не может выполниться сама, ее необходимо вызвать по имени и указать фактические параметры. Формат:
<имя процедуры> (список фактических параметров);
Например:
fact(n, fn);
Фактические параметры в списке отделяются друг от друга запятой. Механизм применения формальных-фактических параметров обеспечивает замену формальных параметров фактическими, что позволяет выполнять процедуру с различными данными. Количество, типы и порядок следования формальных и фактических параметров должны совпадать.