Нередко в программах встречаются повторяющиеся или похожие фрагменты. Имеется возможность оформлять такие фрагменты специальным образом – выделять их в подпрограммы. Подпрограмме дается имя, по которому можно обращаться к ней (вызывать подпрограмму). Использование подпрограмм не только улучшает структуру и внешний вид программы, но и уменьшает вероятность ошибок и облегчает отладку.
В Паскале имеется два вида подпрограмм – процедуры и функции.
Описание процедуры. Оператор процедуры.
Общий вид описания процедуры (в квадратные скобки заключена часть, которая может отсутствовать):
Procedure Имя [(Список формальных параметров)];
Описательная часть
Begin
Тело процедуры
End;
При вызове процедуры ее формальные параметры заменяются соответствующими фактическими. Количество и типы формальных и фактических параметров должны в точности совпадать.
Пример
Составить программу для вычисления аn; целые числа а и n вводятся с клавиатуры.
Program Example-1;
Var a,n: integer;
s: longint;
Procedure Degree (x,y: integer; Var st: longint);
Var i: integer;
Begin
st:=1;
for i:=1 to y do st:= st*x;
End;
Begin
writeln(‘Введите два числа – основание и показатель
степени’);
readln(a,n);
Degree(a,n,s); {Обращение к процедуре}
writeln(‘Результат’,s);
readln;
End.
Задания:
1. Используя процедуру для вычисления степени числа, найти значение выражения:
у = а4х4 + а3х3 + а2х2 + а1х + а0.
Коэффициенты а4, а3, а2, а1, а0 и х вводятся с клавиатуры.
2. Даны координаты трех вершин треугольника. Найти длины всех его сторон.
3. Составить программу, в результате которой величина А меняется значением с величиной В, а величина С – с величиной D.
4. Даны два натуральных числа. Определить, является ли одно число перевертышем другого?
5. Написать рекурсивную функцию для вычисления факториала натурального числа n.
3.9.2Функции
Общий вид описания функции:
Function Имя [(Список формальных параметров)]: Тип результата;
Описательная часть
Begin
Тело функции, в котором обязательно должно быть присваивание
Имя функции:= значение
End;
Пример
Написать программу вычисления значения С:
С =
Program Exampl-2;
Var n,k: integer;
a1, a2, a3, c: longint;
Function factorial(n:integer): longint;
Var i: integer;
rez: longint;
Begin
rez:=1;
for i:=1 to n do rez:=rez * i;
factorial:= rez;
End;
Begin
writeln(‘Ввод n и k’);
readln(n,k);
a1:= factorial(n); {вычисление n!}
a2:= factorial(k); {вычисление k!}
a3:= factorial(n-k); {вычисление (n-k)!}
c:= a1 div (a2 * a3); {результат}
writeln(c);
readln;
End.
Задания:
1. Сформировать массив Х(N), N- й член которого определяется формулой Х(N)= .
2. Найти сумму цифр числа.