ПОДПРОГРАММЫ
Любая сложная задача может быть решена путем ее 
разбиения на ряд подзадач. Для решения каждой 
подзадачи записывается соответствующая 
последовательность операторов, называемая 
подпрограммой.
ФУНКЦИЯ 
Функция - это подпрограмма, которая 
вычисляет и возвращает некоторое 
значение. Язык ПАСКАЛЬ содержит ряд 
стандартных функций, известных любой 
программе: sin, cos, eof и т.д. Помимо 
этого программист может создавать 
собственные функции, к которым можно 
обращаться так же, как и к стандартным 
функциям.
ПРОЦЕДУРА - 
Процедура - это подпрограмма, которая 
осуществляет обработку данных, 
переданных в момент обращения. В языке 
ПАСКАЛЬ существуют стандартные 
процедуры: read, readln, write, writeln и т. д. 
Помимо этого программист может 
создавать собственные процедуры, к 
которым можно обращаться так же, как и к 
стандартным процедурам.
Подпрограмма может обращаться к самой 
себе, такое обращение называется 
рекурсивным.
ФУНКЦИЯ 
Функция описывается следующим образом: 
function f (x1; х2… ; xn):tr; 
D; 
begin 
f:=e; 
end; 
Первая строка - это заголовок функции, состоящий из: 
f- имя функции; 
(x1; х2… ; xn) произвольный список формальных параметров, 
являющихся аргументами функции; 
tr - тип результата; 
За заголовком следует тело функции, состоящее из произвольных 
локальных описаний D и составного оператора begin ... end. 
Имя функции f должно появиться хотя бы один раз в левой части 
некоторого оператора присваивания: f:=e. Последнее значение, 
присвоенное функции f возвращается в основную программу.
ФУНКЦИЯ 
Обращение к функции f осуществляется 
следующим образом: 
f(a1,a2,...,an) 
где a1,a2,...,an- список фактических 
параметров. Фактический параметр 
должен быть совместимым с точки 
зрения присваивания с типом 
формального параметра.
ПРИМЕР 
Function Obiem(a,b,c:real):real; 
Begin 
Obiem:=a*b*c; 
End; 
Begin 
Writeln(‘Obiem comnati=‘, Obiem(3.5,6,3)); 
End.
ЗАДАЧИ 
Дан заголовок 
function F(x : real; у :integer; z : char): boolean; 
Какие из следующих вызовов функций корректны: 
а) F ( 3.18, 4, 'л'); 
б) F(4, 4, 'А') ; 
в) F(4, 4, 4); 
г) F(4, 3.18, 'а'); 
д) F(3.18, 4, 4); 
е) F(‘3,18', 4, '4'); 
ж) F(15, 21, '3'); 
з) F(15,21,3).

Подпрограммы

  • 1.
  • 2.
    Любая сложная задачаможет быть решена путем ее разбиения на ряд подзадач. Для решения каждой подзадачи записывается соответствующая последовательность операторов, называемая подпрограммой.
  • 3.
    ФУНКЦИЯ Функция -это подпрограмма, которая вычисляет и возвращает некоторое значение. Язык ПАСКАЛЬ содержит ряд стандартных функций, известных любой программе: sin, cos, eof и т.д. Помимо этого программист может создавать собственные функции, к которым можно обращаться так же, как и к стандартным функциям.
  • 4.
    ПРОЦЕДУРА - Процедура- это подпрограмма, которая осуществляет обработку данных, переданных в момент обращения. В языке ПАСКАЛЬ существуют стандартные процедуры: read, readln, write, writeln и т. д. Помимо этого программист может создавать собственные процедуры, к которым можно обращаться так же, как и к стандартным процедурам.
  • 5.
    Подпрограмма может обращатьсяк самой себе, такое обращение называется рекурсивным.
  • 6.
    ФУНКЦИЯ Функция описываетсяследующим образом: function f (x1; х2… ; xn):tr; D; begin f:=e; end; Первая строка - это заголовок функции, состоящий из: f- имя функции; (x1; х2… ; xn) произвольный список формальных параметров, являющихся аргументами функции; tr - тип результата; За заголовком следует тело функции, состоящее из произвольных локальных описаний D и составного оператора begin ... end. Имя функции f должно появиться хотя бы один раз в левой части некоторого оператора присваивания: f:=e. Последнее значение, присвоенное функции f возвращается в основную программу.
  • 7.
    ФУНКЦИЯ Обращение кфункции f осуществляется следующим образом: f(a1,a2,...,an) где a1,a2,...,an- список фактических параметров. Фактический параметр должен быть совместимым с точки зрения присваивания с типом формального параметра.
  • 8.
    ПРИМЕР Function Obiem(a,b,c:real):real; Begin Obiem:=a*b*c; End; Begin Writeln(‘Obiem comnati=‘, Obiem(3.5,6,3)); End.
  • 9.
    ЗАДАЧИ Дан заголовок function F(x : real; у :integer; z : char): boolean; Какие из следующих вызовов функций корректны: а) F ( 3.18, 4, 'л'); б) F(4, 4, 'А') ; в) F(4, 4, 4); г) F(4, 3.18, 'а'); д) F(3.18, 4, 4); е) F(‘3,18', 4, '4'); ж) F(15, 21, '3'); з) F(15,21,3).