ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА

ВВЕДЕНИЕ

В методической разработке рассмотрено внедрение процедур и функций в среде Турбо-Паскаль. Показаны методы описания процедур и функций, описание рекурсивных функций, внедрение в качестве формальных характеристик подпрограмм – массивов. Приведены примеры программ с внедрением процедур и функций, также примеры программ для каждого пт домашнего задания.

В конце методической разработки приведены варианты домашнего задания ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА.

Прочитав текст задания, просто увидеть соответствия меж пт задания и разделами методической разработки. Так, к примеру, пт 1-2 задания соответствуют примеры из раздела 2 (ОПИСАНИЕ ФУНКЦИИ Данного ВИДА); примеры, подобные пт 3 задания можно отыскать в разделе 3 (РЕКУРСИЯ) методического пособия и т.д. Потому, тщательно исследовав примеры данного методического пособия и пояснения ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА к ним, не возникнет сложностей при выполнении домашнего задания.

ПРОЦЕДУРЫ И ФУНКЦИИ

Процедуры и функции представляют собой относительно самостоятельные куски программ. Обычно в функцию либо функцию включают группу операторов, которые употребляются в программке пару раз.

Отличие функции от процедуры состоит в том, что результатом выполнения операторов, образующих тело ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА функции, всегда является некое единственное значение того либо другого типа. В предстоящем функцию либо функцию будем именовать общим именованием – подпрограмма.

Подпрограмма производится только после ее вызова, другими словами после использования оператора процедуры либо вызова функции. Оператор процедуры может находиться в любом месте программки, в каком может употребляться, а ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА вызов функции осуществляется исключительно в выражении.

Подпрограмма, как и переменные должны быть описаны в разделе описаний программки. Описание подпрограммы состоит из заголовка и тела подпрограммы.

Заглавия процедуры и функции имеют последующий вид:

PROCEDURE [];

FUNCTION [] : ;

где PROCEDURE, FUNCTION – ключевики;

- имя подпрограммы – верный идентификатор;

– перечень формальных характеристик;

– тип возвращаемого функцией результата.

Перечень ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА формальных характеристик необязателен и может отсутствовать. Но если он есть, то в нем должны быть перечислены имена формальных характеристик и их тип. К примеру:

PROCEDURE SB(A : REAL; B : INTEGER; C : CHAR);

Как видно из примера, характеристики в перечне отделяются друг от друга точкой с запятой. Несколько последующих попорядку ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА однотипных характеристик можно соединять воединыжды. К примеру, заместо

FUNCTION F (A : REAL ;B : REAL) : REAL;

можно написать проще:

FUNCTION F (A, B : REAL) : REAL;

Тело подпрограммы соответствует структуре программки и состоит из раздела описаний и раздела исполняемых операторов.

Разглядим пример.

Пример 1. Вычислить , где , – площади треугольников и соответственно.

PROGRAM PR1;

VAR ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА OA, OB, OC, OD, a, b, s1, s2, s : REAL;

PROCEDURE PL;

BEGIN

s:=a*b/2;

END;

BEGIN

WRITELN ('задать длины сторон треугольников');

READ (OA, OB, OD, OC);

a:=OA; b:=OB;

PL;

s1:=s;

a:=OD; b:=OC;

PL;

s2:=s;

WRITE (s1+s2:7:1);

END.

Пояснения к программке: Процедура PL позволяет вычислять ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА площадь хоть какого треугольника и в ней отсутствует перечень формальных переменных. Поначалу при помощи процедуры READ задаются значения длин сторон треугольников. Переменным и присваиваются значения длин сторон треугольника и производится процедура PL. Переменной присваивается значение площади треугольника . Потом подобные деяния производятся для треугольника . При помощи процедуры ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА WRITE осуществляется вывод результата на экран.

Хоть какой из формальных характеристик может быть или параметром-значением, или параметром-переменной. Если какие-либо характеристики определяются как параметры-переменные, то перед ними нужно ставить кодовое слово VAR. К примеру:

FUNCTION P (VAR X : REAL; Y : REAL) : REAL;

Тут параметр – параметр-переменная, а ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА – параметр-значение.

Упростим программку из примера 1, методом ввода формальных характеристик в функцию PL.

Пример 2. Условие аналогично условию из примера 1.

PROGRAM PR2;

VAR OA, OB, OC, OD ,s1, s2 : REAL;

PROCEDURE PL (a, b : REAL; VAR s : REAL);

BEGIN

s:=a*b/2;

END;

BEGIN

WRITELN ('задать длины сторон треугольников');

READ (OA ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА, OB, OD, OC);

PL (OA, OB, s1);

PL (OD, OC, s2);

WRITE (s1+s2:7:1);

END.

Пояснения к программке: В процедуре PL формальными параметрами являются – , , . При всем этом и являются параметрами-значениями, а – параметром-переменной. Характеристики , и при первом воззвании к процедуре PL, являются фактическими параметрами. Они подставляются заместо формальных характеристик , , в заголовке ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА процедуры и потом над ними осуществляются деяния, описанные в теле процедуры. Приобретенное значение площади треугольника передается фактическому параметру . Потом процедура PL производится с фактическими параметрами , , и приобретенное значение площади треугольника передается фактическому параметру . При помощи процедуры WRITE осуществляется вывод результата на экран.

Нужно направить внимание на то ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА, что количество и тип формальных характеристик строго соответствует количеству и типу фактических характеристик. Порядок следования фактических характеристик, при воззвании к подпрограмме должен быть строго определенным. Т.е. в примере 2 первым и вторым размещены фактические характеристики, надлежащие длинам сторон треугольника, а третьим параметром является площадь треугольника.

Разглядим пример 1 с ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА внедрением функции.

Пример 3. Условие аналогично условию из примера 1. Решим задачку с внедрением функции.

PROGRAM PR3;

VAR OA, OB, OC, OD, s1, s2 : REAL;

FUNCTION PLOS (a, b : REAL) : REAL;

BEGIN

PLOS:=a*b/2;

END;

BEGIN

WRITELN ('задать длины сторон треугольников');

READ (OA, OB, OD, OC);

s1:=PLOS (OA, OB);

s2:=PLOS (OD ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА, OC);

WRITE (s1+s2:7:1);

END.

Пояснения к программке: При описании функции PLOS заданы два формальных параметра и . Вычисленное значение площади присваивается идентификатору функции. При первом воззвании к функции PLOS фактические характеристики и подставляются заместо формальных характеристик , . Приобретенное значение площади треугольника ворачивается как значение функции PLOS. Потом аналогичным образом ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА рассчитывается площадь треугольника .

При помощи параметров-переменных подпрограмма может передавать результаты собственной работы вызывающей программке. Но следует увидеть, что при описании формальных характеристик как параметров-переменных нужно в качестве фактических характеристик использовать только переменную и исключается возможность вызова подпрограммы с фактическими параметрами в виде выражений и констант.

В случае описания ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА формальных характеристик как параметров-значений, в качестве фактических характеристик, при вызове подпрограммы, можно использовать выражение, переменную либо константу.

Для того, чтоб осознать, чем отличаются параметры-переменные от параметров-значений разглядим пример.

Пример 4. Зададим два целых числа и . Удвоим эти числа в процедуре UD. При этом параметр является параметром-переменной, а параметр ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА параметром-значением. Значения характеристик до и после вызова процедуры, также итог их удвоения выведем на экран.

PROGRAM PR4;

VAR a, b : INTEGER;

PROCEDURE UD (VAR a : INTEGER; b : INTEGER);

BEGIN

a:=a+a;

b:=b+b;

WRITELN (' двойные: ',a:5, b:5);

END;

BEGIN

a:=5;

b:=7;

WRITELN (' начальные: ',a:5, b ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА:5);

UD (a, b);

WRITELN(' итог: ',a:5, b:5);

END.

В итоге выполнения программки на экран будет выведено:

начальные: 5 7

двойные: 10 14

итог: 10 7

Пояснения к программке: При выполнении процедуры UD значения и поменялись, что отразилось на дисплее в графе «удвоенные». Но дальше в программку возвратилось двойное значение и значение , которое было до выполнения процедуры. Т ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА.е. удвоение второго формального параметра в процедуре UD не вызвало конфигурации фактической переменной , так как этот параметр описан в заголовке процедуры UD как параметр-значение.

ОПИСАНИЕ ФУНКЦИИ Данного ВИДА

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

Разглядим пример.

Пример 5. Вычислить, используя ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА подпрограмму, и , где .

PROGRAM PR5;

VAR s, t, a, b : REAL;

FUNCTION F (x, y : REAL) : REAL;

BEGIN

F:=SQR(x)+SIN(y);

END;

BEGIN

WRITELN (' задать значения s, t ');

WRITE (' s = ');

READLN (s);

WRITE (' t = ');

READLN (t);

a:=F (t, SQR(s));

b:=F (t, s);

WRITELN (' a = ',a ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА:7:1);

WRITELN (' b = ',b:7:1);

END.

Пояснения к программке: В качестве подпрограммы употребляется функция. Формальные характеристики , являются параметрами-значениями типа REAL. Результатом функции F будет величина типа REAL.

В самой программке, при вычислении значения , в качестве фактических характеристик употребляются , а при вычислении значения в качестве фактических характеристик употребляются .

РЕКУРСИЯ

Рекурсия – это ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА таковой метод организации вычислительного процесса, при котором процедура либо функция в процессе выполнения составляющих ее операторов обращается сама к для себя.

Разглядим примеры.

Пример 6. Определение значений ряда Фибоначчи. В этом ряду 1-ые два члена имеют значения 1, а каждый следующий является суммой 2-ух прошлых. Другими словами 1, 1, 2, 3, 5, 8, 13, 21, 34.....

PROGRAM PR6;

VAR n : BYTE ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА;

FUNCTION FIB (i : BYTE) : INTEGER;

BEGIN

IF i<=2 THEN FIB:=1

ELSE FIB:=FIB(i-1)+FIB(i-2)

END;

BEGIN

READ (n);

WRITELN (n,' - число ряда Фибоначчи = ',FIB(n));

END.

Пояснения к программке: Для получения числа из ряда Фибоначчи, нужно задать его номер. В программке это делается при помощи процедуры ввода READ. Задавая значение рекурсивная ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА функция FIB вычисляет соответственное число ряда.

Пример 7. Обрисовать рекурсивную функцию для определения , , где ; ; ; ; ; и вычислить .

PROGRAM PR7;

VAR Z, C : REAL;

FUNCTION P (i : INTEGER) : REAL;

BEGIN

IF i=1 THEN P:=COS(3)

ELSE IF i=2 THEN P:=SIN(5)

ELSE P:=Z*P(i-1)-SQR(Z)*P(i-2);

END;

FUNCTION ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА H (i : INTEGER) : REAL;

BEGIN

CASE i OF

1: H:=SIN(3);

2: H:=COS(5);

ELSE H:=H(i-1)+H(i-2)+10

END;

END;

BEGIN

WRITE (' задать значение Z = ');

READLN (Z);

C:=Z*H(5)-P(8);

WRITELN (' C = ',C:7:1);

END.

Пояснения к программке: Для определения рассчитываются значения рекурсивных функций и , а значение вводится с клавиатуры. Вызов ОПИСАНИЕ ФУНКЦИИ ЗАДАННОГО ВИДА функций , в функции и функций , в функции свидетельствует о рекурсивности воззвания.


operativnaya-obshaya-i-chastnaya-hirurgiya-s-oftalmologiej-i-ortopediej.html
operativnaya-otchetnost-po-monitoringu-gosudarstvennoj-programmi-razvitiya-zdravoohraneniya-respubliki-kazahstan-salamatti-azastan-na-2011-2015-godi-stranica-8.html
operativnaya-pamyat-referat.html