Пример программы с использованием функции, определенной пользователем
Пусть требуется разработать программу вычисления выражения: Z=( + )/2* , в которой возведение в степень выполняется функцией Step. program DemoFunc; Var М: integer; А,Z,R: real; {Функция вычисления степени. N - степень, X – число, возводимое в данную степень. N, X — формальные параметры; результат, возвращаемый функцией в точку вызова, имеет вещественный тип} function Step(N: integer; X: real): real; Var I: integer; Y: real; begin Y:=1; for I:=1 to N do {Цикл вычисления N—й степени числа X) Y:=Y*X; Step:=Y; {Присваивание функции результата вычисления степени} end; {Конец функции} Begin {Начало основной программы} Write('Введите значение числа А и показатель степени М'); Readln(A,M); Z:=Step(5,А); {Вызов функции с передачей ей фактических параметров N=5, X=А} Z:=Z+ Step(3,l/A); {Вызов функции с передачей ей фактических параметров N=3, X=1/А} if M=0 then R:=l {если число возводится в нулевую степень, то результат всегда равен 1} else if M>0 then R:=Step(M,A) {Вызов функции Step с передачей ей фактических параметров М, А} else R:=Step(-M,A); { Вызов функции с передачей ей фактических параметров: - М, отрицательная степень} Z:=Z/(2*R); Writeln(' Для А= ',А,'М= ',М,' Значение выражения= ',Z); end. В начале программы описываются переменная целого типа М и переменные вещественного типа А, Z, R, после этого описывается функция вычисления степени числа Step с формальными параметрами N и X, результат, возвращаемый функцией в точку вызова, - вещественного типа. В описании функции вводятся две локальных (местных) переменных I и Y. Переменная I служит для подсчета числа повторений цикла, а в Y накапливается значение степени как произведения N одинаковых сомножителей. В заключение функции присваивается значение вычисленного произведения. В начале выполнения основной программы на экран выводится запрос "Введите значение числа А и показатель степени М" и считывается с клавиатуры значение вещественного числа А и целого числа М.
Затем выполняется оператор: Z:=Step(5,A); Осуществляется вызов функции Step с передачей ей фактических параметров 5, А. Их значения присваиваются формальным параметрам функции N и X. По окончании вычисления степени числа значение функции Step, вычисленное для фактических параметров 5 и А, присваивается переменной Z. Аналогично в операторе: Z:= Z + Step(3,l/A); сначала осуществляется вызов функции Step с передачей ей фактических параметров 3, 1/A, после чего значение переменной Z увеличивается на величину возвращенного в основную программу результата вычисления функции Step. Операторы: if M=0 then R:=1 else if M>0 then R:=Step(M,A) else R:=Step(- M,A); проверяют условия М=0, М>0 и в зависимости от их соблюдения либо присваивает переменной R значение 1 (при М=О), либо выполняет вызов функции Step для фактических значений М, А или -М, А, а после вычисления значения функции Step присваивает его переменной R. Оператор: Z:=Z/(2*R); выполняет вычисление значения выражения, а затем присваивает вычисленное значение переменной Z. В заключение программы стандартная процедура Writeln выводит на экран сообщение о результате вычислений степени М числа А.
Читайте также: b) Пример классического. Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|