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

Билет №13, 14:

Существует 2 вида подпрограмм: Procedure (процедура) и Function(функция)

Что такое подпрограмма

  • это оператор, разработанный программистом

  • имеет имя

  • может иметь входные и выходные параметры

  • размещается в разделе описаний в виде полноценной программы

Как пишется п/п

  1. П/п имеет заголовок, который начинается словом                    Procedure или  Function                   (процедура) (функция)

  2. Рядом указывается имя п/п, которое программист выбирает самостоятельно

  3. Если необходимо добавляются параметры (в круглых скобках)

  4. Для имени функции задаётся тип (результата)

  5. В конце заголовка ставится знак «;»

  6. Ниже заголовка размещается текст п/п по правилам написания программы

  7. После заключительного слова End ставится знак «;» (а не «.»)

Как вызывается п/п

Упоминанием своего имени в тексте программы

Пример процедуры без параметров

Program Examp1;

{$APPTYPE CONSOLE}

uses

SysUtils;

//--------------------------------------

//Пример процедуры, выполняющей задержку

//--------------------------------------

Procedure MyPause; //Заголовок с именем MyPause

Begin //Начало раздела операторов подпрограммы

Write('Press ENTER');

ReadLn;

End; //Конец подпрограммы

Begin //Раздел операторов основной программы

MyPause; //Вызов подпрограммы

End.

Параметры п/п

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

С помощью параметров – аргументов передаются данные от основной программы к п/п. Аргументы описываются рядом с именем п/п в круглых скобках как обычные переменные, но без слова Var.

При вызове п/п вместо аргументов можно подставлять любые выражения соответствующего типа.

program Examp2;

{$APPTYPE CONSOLE}

uses

SysUtils;

//------------------------------------

//Процедура, выводящая разряжённый текст

//------------------------------------

Procedure WidthTxt(s:String); //Заголовок с именем WidthTxt и аргументом s

Var //Раздел описаний подпрограммы

I:Integer;

Begin //Раздел операторов подпрограммы

For i:=1 To Length(s) Do

Write(s[i],' ');

End; //Конец подпрограммы

Begin //Раздел операторов основной программы

WidthTxt('Dog'+'Cat'); //Вызов подпрограммы

ReadLn;

End.

Аргументы и переменные раздела описаний п/п называют локальными переменными. Они формируются в начале выполнения п/п и удаляются из памяти по окончании работы п/п.

С помощью функциональных параметров передаются данные от п/п к основной программе. Функциональные параметры описываются так же, как и аргументы, но с приставкой слова Var.

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

program Examp3;

{$APPTYPE CONSOLE}

uses

SysUtils;

//------------------------------------

//Процедура, удаляющая лишние пробелы

//ВХОД: s - строка текста

//ВЫХОД: t - строка без лишних пробелов

//------------------------------------

Procedure KillSpace(s:String; Var t:String);