Функции

Общие сведения

  • Подпрограмма — именованная, логически законченная группа операторов языка, которую можно вызвать для выполнения любое количество раз из различных мест программы.
  • Подпрограммы позволяют отделить конкретную программную реализацию задачи (алгоритма) от реализации программы в целом, что позволяет поручить их составление различным программистам.
  • Использование подпрограмм позволяет экономить память. (Память для хранения переменных, использующихся в подпрограмме, выделяется только на время ее работы).
  • В языке Pascal существуют два вида подпрограмм: процедуры и функции.
  • Главное отличие процедур от функций заключается в том, что результатом работы функции является одно единственное значение.

Синтаксис
Каждая функция должна быть предварительно описана в разделе описания. Описание функции состоит из заголовка функции и тела.

function <имя> (<список формальных параметров>):<тип>;
  • Название формальные эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения исходных данных.
  • В теле функции всегда должен быть один оператор, присваивающий значение имени функции.
  • Обращение к функции осуществляется по имени с указанием списка фактических параметров. Количество, типы и порядок следования формальных и фактических параметров должны совпадать.
  • Механизм применения формальных и фактических параметров обеспечивает замену первых параметров последними, что позволяет выполнять подпрограмму с различными данными. Между фактическими параметрами в операторе вызова функции (процедуры) и формальными параметрами в заголовке процедуры устанавливается взаимно однозначное соответствие.
<имя_переменной> := <имя_функции> (список фактических параметров);

Пример 1. Составить программу, содержащую функцию возвращающую значение большего из двух введенных чисел.

var
        a,b:integer;
function max(x,y:integer):integer;
begin
if x > y then
        max := x
else
        max := y;
end;
begin
readln(a,b);
write('Большее из двух чисел - ', max(a,b))
end.

Пример 2. Составить программу выводящую факториал числа в диапазоне от 1 до n (n < 11) с использованием функции вычисления факториала.

var
    n:integer;
    i:byte;
function factor(k:integer):longint;
var
    f:longint;
    j:byte;
begin
f := 1;
for j := 1 to k do
    f := f * j;
factor := f;
end;
begin
write(‘n = ‘); readln(n);
for i := 1 to n do
    writeln(factor(i));
end.

Домашнее задание

  1. Составить программу использующую функцию определения большего из трех чисел.
  2. Составить программу нахождения НОД и НОК двух натуральных чисел.
    НОК(А,В)=А*В/НОД(А,В)

Добавить комментарий