КАТЕГОРИИ: Архитектура-(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/А. Затем выполнится совокупность действий, предусмотренных операторами функции. Результат, полученный в подпрограмме-функции, присваивается ее имени и возвращается в основную программу.
а) схема алгоритма основной программы; б) схема алгоритма подпрограммы-функции.
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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |