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

Третий вопрос (подпрограммы)

  1. Что такое подпрограмма?

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

  1. Что такое параметры подпрограммы?

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

  1. Как можно подробнее опишите правила объявления процедуры.

Подпрограммы пишутся ДО тела основной программы, однако ПОСЛЕ настроек (задания констант, переменных и прочего).

Формат описания процедур:

procedure имя процедуры (параметры);

раздел описаний процедуры

begin

исполняемая часть процедуры

end;

Пример:

procedure One (var a,b: integer);

var temp: integer;

begin

temp:=a;

a:=b;

b:=temp;

end;

  1. Как можно подробнее опишите правила объявления функции.

Подпрограммы пишутся ДО тела основной программы, однако ПОСЛЕ настроек (задания констант, переменных и прочего).

Формат описания функций:

function имя функции (параметры):тип результата;

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

begin

исполняемая часть функции

end;

Пример:

function Tow (a,b,c: integer;): real;

const K=3;

begin

Tow:=(a+b+c)/K;

End;

  1. Правила вызова процедур и функций.

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

Пример: One (i,j);

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

Примеры:

c:=Tow(i,j,k);

c:=a+b+Tow(i,j,k);

write(Tow(i,j,k));

  1. Как передавать одномерные массивы в качестве параметра подпрограммы?

Безразмерный (динамический) массив. Записывается он так:

Procedure One (Arr: array of integer);

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

Недостатком такого способа является то, что его нельзя использовать для многомерных массивов, этим способом можно передать лишь одномерный массив. Другой недостаток – это сбивание нумерации элементов. Поскольку номера ни первого ни последнего элемента не заданы, Pascal назначает их автоматически и делает он это начиная с нуля. Таким образом, если нумерация Вашего массива была от 1 до N, то после передачи в подпрограмму она станет от 0 до N-1.

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