Урок 6
Функции
Существуют очень нужные и интересные фрагменты программы! С их помощью тело программы становится небольшим и компактным! Их можно написать ОДИН раз, а вызывать для выполнения очень-очень много раз!
Подпрограммы – многократно повторяющаяся часть программы, оформленная отдельно от основной программы. Место расположения в программах - Раздел описаний, за описанием переменных.
Преимущества подпрограмм - уменьшение объема программы, сокращение времени на отладку.
Подпрограммы – процедуры и функции
Процедуры и функции.
Процедуры и функции обеспечивают возможность практической реализации принципов структурного программирования.
Они отлаживаются отдельно и независимо, а затем могут использоваться в основном блоке программы или в других процедурах или функциях.
С их помощью Вы можете разделить свою большую программу на меньшие фрагменты - процедуры или функции.
При создании процедур и функций пытаются достичь следующих целей:
1
разделение необъятной общей задачи на несколько меньших по объему и сложности (обозримых) частных задач;
3 усовершенствование программных модулей - по возможности полученное решение частной задачи обобщается, чтобы его можно было использовать при решении других задач.
2
уменьшение объема программы за счет многократного применения типовых программных действий, оформленных один раз в виде процедуры или функции;
Процедуры и функции позволяют включать в основной программный блок дополнительные блоки. Каждое описание процедуры или функции содержит заголовок , за которым следует программный блок .
Имея один и тот же смысл и аналогичную структуру, процедуры
и функции различаются назначением и способом их использования.
Функция нам необходима КАК РЕЗУЛЬТАТ вычисления !
Ее мы используем в выражениях или при выполнении другого оператора, когда ее результат вычисления подставляется в это выражение или оператор.
Процедура – это самостоятельное какое-то действие!
Что бы вызвать процедуру достаточно воспользоваться
оператором вызова процедуры.
Функция
1. Функция , как и процедура, может содержать несколько операторов, несколько входных (и только) параметров, но результат получается только один .
2. Этот единственный результат обозначается именем функции и передается в основную программу.
3. В общем виде функция записывается в разделе описания основной программы.
4. Описание функции определяет часть программы, в которой вычисляются и возвращается значение.
Функция
Описание имеет вид:
Function ИМЯ ( список формальных параметров): тип_рез ;
label
const Описание локальных меток, типов,
type констант и переменных;
var
procedure Описание внутренних процедур и
function функций;
begin
Операторы;
end;
Функция активизируется при ее вызове. При вызове функции указывается имя функции и параметры, необходимые для ее вычисления.
Вызов функции может включаться в выражения в качестве операнда, тогда при вычислении используется результат функции.
В операторной части блока функции задаются операторы, которые должны выполняться при вызове функции.
В модуле должен содержаться один оператор присваивания, в котором ИМЕНИ функции присваивается значение (результат).
Если такой оператор присваивания отсутствует или он не был выполнен, то значение, возвращаемое функцией, не определено.
Все переменные, представленные в разделе описаний основной программы называются глобальными . Они действуют как в разделе операторов основной программы, так и в любой подпрограмме.
Параметры (переменные), определяемые при описании процедуры называются формальными .
Параметры (переменные), задаваемые при вызове процедуры называются фактическими.
Формальные параметры (переменные, описываемые в заголовке процедуре) делятся на параметры - значения и параметры – переменные следует список переменных с указанием типа.
Параметры-значения – передают информацию только в процедуру (входные), описываются как переменные с указанием типа ( без зарезервированного слова Var ).
Параметры-переменные – передают информацию, как в процедуру, так и обратно (выходные), их описание начинается со слова Var , затем следует список переменных с указанием типа.
, Uses crt; Var x1,x2:real; res:char; Function Compare (a,b: real):char; Begin If ab then Compare:=’’ else if a else Compare:=’=’; End; Begin Writeln (‘Введите числа’); Readln(x1,x2); Res:=Compare(x1,x2); Writeln(x1:6:2, res,x2:6:2); Readln; end. " width="640"
Приведем пример применения функции:
Программа, которая с помощью функции сравнивает два целых числа и выводит результат сравнения в виде одного из знаков: ,
Uses crt;
Var x1,x2:real; res:char;
Function Compare (a,b: real):char;
Begin
If ab then Compare:=’’
else if a
else Compare:=’=’;
End;
Begin Writeln (‘Введите числа’);
Readln(x1,x2);
Res:=Compare(x1,x2);
Writeln(x1:6:2, res,x2:6:2);
Readln;
end.