Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_15_Podprogrammy_Protsedury_Funktsii_Re....docx
Скачиваний:
4
Добавлен:
25.09.2019
Размер:
25.4 Кб
Скачать

3.6 Подпрограммы

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

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

     Работа с подпрограммой включает два основных этапа:

  • описание подпрограммы;

  • вызов подпрограммы.

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

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

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

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

  • с использованием файлов;

  • с помощью глобальных переменных;

  • с помощью параметров.

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

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

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

     Подпрограммы можно вызывать не только из программы, но и из других подпрограмм.

Процедуры

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

      Procedure <Имя процедуры > [(формальные параметры)];

      <разделы описаний>

         begin

             <раздел операторов>

         end ;

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

     Пример .

                   Program One;

                   var z, f, z1, f1, a, b, c, d: real; . . .

                   procedure Calculation(x, y: real; var root, dif: real);

                   var s: real;

                   begin

                       s:=x*x + y*y;

                      root:= sqrt (s);

                      dif:= x - y;

                  end;

                  Begin

                     . . .

                    Calculation(1.25, 3.48, z, f);

                    . . .

                   Calculation(0.16, 2.8, z1, f1);

                    . . .

                   Calculation(a+b, a-b, c, d);

                   . . .

                   writeln(‘z=’, z:5:3, ‘ f=’, f:5:3, ‘ z1=’, z1:5:3, ‘ a=’, a:6:4, ‘ b=’, b:6:4);

                   . . .

                   End .

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]