Лабораторная работа n 1 работа в интегрированной среде borland pascal на примере программ линейной структуры


Функции, определяемые программистом



бет15/26
Дата18.05.2022
өлшемі364.5 Kb.
#456963
түріЛабораторная работа
1   ...   11   12   13   14   15   16   17   18   ...   26
Лабораторная работа N 1

2.2. Функции, определяемые программистом
Набор встроенных функций языка Паскаль достаточно широк (ABS, SQR, TRUNC и т.д.). Если в программу включается новая, нестандартная функция, то ее необходимо описать в тексте программы, после чего можно обращаться к ней из программы. Обращение к функции осуществляется в правой части оператора присваивания, с указанием имени функции и фактических параметров. Функция может иметь собственные локальные константы, типы, переменные, процедуры и функции. Описание функций аналогично описанию процедур. Отличительные особенности функций:

  • результат выполнения - одно значение, которое присваивается имени функции и передается в основную программу;

  • имя функции может входить в выражение как операнд.

Пример 3. Написать подпрограмму-функцию степени аx, где a, x - любые числа. Воспользуемся формулой аx = ex ln a
program p2;
var f, b, s, t, c, d : real; { глобальные параметры}

function stp (a, x : real) : real;


var y : real; { локальные параметры}
begin
y := exp (x * ln ( a)) ;
stp:= y; {присвоение имени функции результата вычислений подпр-мы}
end; { описание функции закончено }

begin {начало основной программы }


d:= stp(2.4, 5); {вычисление степеней разных чисел и переменных }
writein (d, stp(5,3.5));
read (f, b, s, t);
c := stp(f, s)+stp(b, t);
writeln (c);
end.
2.3. Рекурсия
В языке Паскаль процедуры и функции могут вызывать сами себя, т.е. обладать свойством рекурсивности. Рекурсивная функция обязательно должна содержать в себе условие окончания рекурсивности, чтобы не вызвать зацикливания программы. При каждом рекурсивном вызове создается новое множество локальных переменных. Т.о. переменные, расположенные вне вызываемой функции, не изменяются.
Пример 4. Составить рекурсивную функцию, вычисляющую факториал числа n следующим образом: n!= 1, если n = 1 и n!= ( n -1 )! n, если n > 1
function f ( n : integer): integer;
begin
if n = 1 then f :=l else f := n * f ( n -1 ) { функция f вызывает саму себя}
end;


Достарыңызбен бөлісу:
1   ...   11   12   13   14   15   16   17   18   ...   26




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет