- •Первый вопрос (массивы, циклы, ветвление, работа с файлами и пр.)
- •Каким должно быть окончание работы с файлом и почему?
- •Второй вопрос (подключаемые модули crt или graph)
- •Третий вопрос (подпрограммы)
- •Как передавать одномерные массивы в качестве параметра подпрограммы?
- •Как передавать многомерные массивы в качестве параметра подпрограммы?
Третий вопрос (подпрограммы)
-
Что такое подпрограмма?
Подпрограммы – это участки кода, имеющие собственное имя и вызываемые из основной программы в любой момент времени, служащие для многократного исполнения однотипных задач, без необходимости повторно переписывать готовый код. Они бывают двух видов – функции и процедуры.
-
Что такое параметры подпрограммы?
Параметры подпрограммы – это значения, переданные этим подпрограммам из основной программы, которым внутри подпрограммы присваивается уникальное имя, что позволяет сделать подпрограмму универсальной и использовать для обработки разных данных (переменных, массивов и прочего).
-
Как можно подробнее опишите правила объявления процедуры.
Подпрограммы пишутся ДО тела основной программы, однако ПОСЛЕ настроек (задания констант, переменных и прочего).
Формат описания процедур:
procedure имя процедуры (параметры);
раздел описаний процедуры
begin
исполняемая часть процедуры
end;
Пример:
procedure One (var a,b: integer);
var temp: integer;
begin
temp:=a;
a:=b;
b:=temp;
end;
-
Как можно подробнее опишите правила объявления функции.
Подпрограммы пишутся ДО тела основной программы, однако ПОСЛЕ настроек (задания констант, переменных и прочего).
Формат описания функций:
function имя функции (параметры):тип результата;
раздел описаний функции
begin
исполняемая часть функции
end;
Пример:
function Tow (a,b,c: integer;): real;
const K=3;
begin
Tow:=(a+b+c)/K;
End;
-
Правила вызова процедур и функций.
Вызов процедуры осуществляется простым упоминанием её имени в тексте программы. Если процедура имеет параметры, при её вызове в скобках нужно указать данные, которые передаются в качестве этих параметров, разделяя их запятыми. Данные должны быть тех же типов, в том же количестве и идти в том же порядке, как они описаны в заготовке процедуры.
Пример: One (i,j);
Вызов функции очень похож, но за счёт того, что функция выдаёт результат, он слегка отличается. Его логично использовать как часть выражения или параметра другой подпрограммы.
Примеры:
c:=Tow(i,j,k);
c:=a+b+Tow(i,j,k);
write(Tow(i,j,k));
-
Как передавать одномерные массивы в качестве параметра подпрограммы?
Безразмерный (динамический) массив. Записывается он так:
Procedure One (Arr: array of integer);
Как Вы видите, размерность массива здесь не указана и таким образом, она будет подобрана автоматически, в зависимости от передаваемого массива. Это очень удобно, поскольку позволяет использовать этот способ для передачи в одну процедуру массивов разного размера.
Недостатком такого способа является то, что его нельзя использовать для многомерных массивов, этим способом можно передать лишь одномерный массив. Другой недостаток – это сбивание нумерации элементов. Поскольку номера ни первого ни последнего элемента не заданы, Pascal назначает их автоматически и делает он это начиная с нуля. Таким образом, если нумерация Вашего массива была от 1 до N, то после передачи в подпрограмму она станет от 0 до N-1.