Подпрограммы.
Та методики практичної психології, к.пс.н. Л.Б. Наугольник
Подпрограммы – это специальным образом оформленная часть программного текста, выполняющая некоторую законченную функцию, которой можно воспользоваться в основном тексте программы многократно.
Пусть некоторая последовательность команд встречается в программе несколько раз. В этом случае поступают так: отдельно пишется этот повторяющийся фрагмент, которому дается имя. Затем пишется основная программа, и в тех местах, где требуется подстановка заданного текста, просто указывается его имя.
В общем случае программа будет иметь следующую структуру:
Program имя; // заголовок программы
Uses…; описательная часть
Const…;
Type…;
Var…;
Описание подпрограмм;
Begin
… основной блок программы
Вызовы подпрограмм;
…
End.
В Турбо Паскале используется два вида подпрограмм: процедуры и функции.
Процедура – это особым образом оформленный фрагмент программы, имеющий собственное имя.
Упоминание этого имени в тексте программы приводит к активизации процедуры и называется ее вызовом. В результате вызова процедуры всегда меняется значение каких-то переменных в программе.
Функция – это подпрограмма, которая вычисляет некоторое значение, при этом в большинстве случаев в результате вычислений никакие переменные в программе не меняются. Вычисленное значение просто доставляется в точку вызова функции.
Таким образом, результатом работы процедуры может быть сколько угодно значений, а результатом работы функции – единственное значение.
Для обмена информацией между основной программой и подпрограммами используются параметры вызова (формальные параметры).
Описание процедуры имеет следующую структуру:
Procedure Имя (список формальных параметров.);
Var …;
Begin
…операторы процедуры …;
End;
Формальные параметры – это описание переменных, которые будут использованы в процедуре. Описание параметров аналогично описанию переменных в секции Var основной программы. Единственное отличие, что ключевое слово Var иногда может отсутствовать. Слово Var ставиться тогда, когда в переменной будет содержаться результат работы процедуры.
Если в заголовке при описании формальных параметров указывается слово Var , то такие параметры называются параметрами-переменными, если слово Var опущено, то такие параметры называются параметрами-значениями. Параметры-значения используются для передачи входной (исходной) информации в подпрограмму. Параметры-переменные используются для передачи как входной, так и выходной информации (результата) из подпрограммы в основную программу.
Те данные, которые передаются из основной программы в подпрограмму при вызове подпрограммы, а также те переменные, в которые принимаются результаты из подпрограмм, называются фактическими параметрами.
Для параметров–переменных соответствующие фактические параметры могут быть представлены только переменными, а для параметров-значений фактические параметры могут быть представлены переменной, константой или произвольным выражением. При этом соответствующие фактические и формальные параметры должны быть одного типа.
Вызов процедуры имеет следующий синтаксис:
Имя (список фактических параметров);
Обращение к процедуре происходит следующим образом:
1. В тексте основной программы встретился вызов процедуры;
2. Ищется процедура с данным именем;
3. Каждому формальному параметру в заголовке процедуры в порядке следования ставится в соответствие фактический параметр. Таким образом, фактические параметры как бы заменяют формальные, причем замена происходит не только в заголовке, но и в теле процедуры;
4. запускается процедура;
5. после завершения работы процедуры начинает выполняться оператор, следующий за оператором, вызвавшем данную процедуру.
Пример. Ввести числа a, b, c, ,d. Поменять значения переменных a и d, b и c. Вывести результат.
Program obmen; Var a,b,c,d :byte; Procedure swap (var x,y:byte); Var t: byte; Begin t:=x; x:=y; y:=t; End; | Begin Writeln (‘Введите 4 числа:’); Readln (a,b,c,d); Writeln (‘Исходный порядок:’); Writeln(a,b,c,d); Writeln (‘Результат:’); Swap (a,d); //вызов для a, d Swap (b,c); //вызов для b, c Writeln(a,b,c,d); Readln; End. |
1. Написать процедуру вывода на экран 10 случайных чисел.
2. Написать процедуру заполнения массива 10 случайными числами.
3. Написать процедуру вывода на экран массива.
4. Написать процедуру вывода на экран строки в обратном порядке.
5. Написать процедуру вывода на экран матрицы 5х5
Функции
Функция – это подпрограмма, которая вычисляет некоторое значение, при этом в большинстве случаев в результате вычислений никакие переменные в программе не меняются. Вычисленное значение просто доставляется в точку вызова функции.
Описание функции имеет следующую структуру:
function Имя (список формальных параметров.):Тип;
Var …;
Begin
…операторы процедуры …;
Имя:=<результат>;
End;
Описание функции имеет следующие особенности:
1.В заголовке вместо слова Procedure слово function.
2. В заголовке указан тип значения, возвращаемого функцией в качестве результата.
3.В теле функции результат работы подпрограммы должен быть присвоен имени функции. Тип результата должен соответствовать типу функции.
Пример 1.Вычислить тангенс чисел от 0 до 100. Написать функцию для нахождения тангенса заданного числа.
Program func_tg;
Var i:byte;
Function tg (var x : real) :real;
Begin
Tg:=sin(x)/cos(x);
End;
Begin
For i:= 1 to 100 do writeln(tg(i));
End.