Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Балаш Алла Николаевна




P2;

P1;

BEGIN

....

F:=

END;

 

где F - имя функции; qi - имена формальных параметров;

Ti - типы параметров; T - тип результата;

Pi - операторы тела функции.

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

Функция может иметь собственные локальные константы, типы, переменные и вспомогательные процедуры и функции.

Обращение к функции осуществляется в правой части оператора присваивания, при этом в выражении записываются имя функции и фактические параметры.

Каждый фактический параметр должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.

После выполнения функции вычисленное значение присваивается имени функции и передается в выражение.

 

8.3. Пример.

Составить программу вычисления:

используя функцию для вычисления степени y=xn (а - вещественное, m - целое).

Схема алгоритма решения задачи представлена на рис.1,а,б.

Программа, реализующая данный алгоритм, имеет вид:

 

PROGRAM VST;

VAR M:INTEGER;

A,Z,R:REAL;

 

(* Функция вычисления степени *)

FUNCTION ST(N:INTEGER; X:REAL):REAL;

VAR I:INTEGER;

Y:REAL;

BEGIN (* ST *)

Y:=1;

FOR I:=1 TO N DO

Y:=Y*X;

ST:=Y

END; (* ST *)

BEGIN (* VST *)

READ (A,M);

WRITELN ('A=',A:5:2,' M=',M);

Z:=ST(5,A)+ST(5,1/A);

IF M=0 THEN R:=1 ELSE IF M>0 THEN R:=ST(M,A) ELSE

R:=ST(-M,1/A);

Z:=Z/(2*R);

WRITELN ('Z=',Z:6:2)

END. (* VST *)

 

Результаты выполнения программы при различных значениях M:

 

1.2 0 1.2 2 1.2 -3

A=1.20 M=0 A=1.20 M=2 A=1.20 M=-3

Z=1.45 Z=1.00 Z=2.50

 

Пояснение к программе. В программе приняты следующие обозначения: А –

 

вещественное число, которое нужно возвести в степень; М - целое число, обозначающее степень, в которую возводится число А; Z - вычисляемое значение; R - результат возведения числа А в степень m; ST - подпрограмма-функция, описывающая алгоритм вычисления степени y=xn.

В заголовке функции с именем ST перечислены формальные параметры N, X, определяющие ее исходные данные. Результат выполнения функции (значение локальной переменной Y) присваивается ее имени ST. Тип результата (тип функции) - REAL, который указывается в заголовке функции при ее описании.

Функция ST вызывается четыре раза для различных значений фактических параметров. В теле функции произойдет замена формальных параметров N,X на фактические: первый раз на 5,А; второй раз на 5,

1/А (a-5=1/a5); третий раз (если М>0) на М, А и четвертый раз (если М<0) на -М,1/А. Затем выполнится совокупность действий, предусмотренных операторами функции. Результат, полученный в подпрограмме-функции, присваивается ее имени и возвращается в основную программу.


 


Рис.1. Схема алгоритма решения задачи из пункта 8.3.:

а) схема алгоритма основной программы;

б) схема алгоритма подпрограммы-функции.

 

8.4. Параметры функций.

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

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

 

FUNCTION FACT(K:INTEGER):INTEGER;

FUNCTION PRM(I,J:INTEGER, R:REAL):REAL;

 

В качестве соответствующего фактического параметра может быть использовано любое выражение, результат вычислений которого принадлежит тому же типу, что и формальный параметр. В качестве простейшего выражения указанного типа может быть константа или переменная. В примере 8.3 формальные параметры N,X в заголовке функции - параметры-значения. При вызове функции осуществляется подстановка значений фактических параметров. В процессе выполнения подпрограммы формальные параметры могут изменяться, но это никак не отразится на соответствующих фактических параметрах-переменных, которые сохраняют те значения, которые имели до вызова подпрограммы. Поэтому параметры-значения нельзя использовать для передачи результатов из подпрограммы в основную программу!

Между формальными и фактическими параметрами должно быть соответствие по количеству параметров, по их типу и порядку следования.

 

8.5. Пример.

Вычислить ,

где V1,V2,V3 - объемы шаров с радиусами r1, r2, r3 соответственно.

Вычисление vi производить в подпрограмме-функции.

 

PROGRAM PRIM;

VAR R,Z;REAL; I:INTEGER;

FUNCTION OB(RAD:REAL):REAL;

VAR VI:REAL;

BEGIN

VI:=4/3*PI*SQR(RAD)*RAD;

OB:=VI

END;

BEGIN Z:=0;

FOR I:=1 TO 3 DO

BEGIN

WRITELN('ВВЕДИТЕ РАДИУС ШАРА');

READLN(R);

Z:=Z+OB(R);

END;

Z:=Z/3;

WRITELN('Z=',Z:6:2)

END.

 

Результаты выполнения программы:

ВВЕДИТЕ РАДИУС ШАРА

1.2

ВВЕДИТЕ РАДИУС ШАРА

1.4

ВВЕДИТЕ РАДИУС ШАРА

1.1

Z=8.10

 

9. ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ СТУДЕНТОВ

 

В результате выполнения лабораторной работы студенты должны:

- знать правила записи программ-функций и способов обращения к ним;

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

 


 

План 2002/03, поз. 134

 

 

 




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.