Пример программы с использованием функции, определенной пользователем
Пусть требуется разработать программу вычисления выражения: Z=( в которой возведение в степень выполняется функцией 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 выводит на экран сообщение о результате вычислений степени М числа А. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|