Создать функцию нахождения максимального из двух чисел
Решение:
Program Pr4;
Var
a,b,m:real;
Function Max(a,b:real):real;
begin
if a>b {если a больше b}
then Max:=a {то функция принимает значение a}
else Max:=b; {иначе функция принимает значение b}
end;
BEGIN
write('a,b='); readln(a,b); {ввод исходных данных}
m:=Max(a,b); {вызов функции}
write('Max=',m:5:1); {вывод результата}
readln;
END.
Результат:
a,b=14 9
Max= 14.0
Пример 5.
Создать функцию нахождения наибольшего общего делителя двух натуральных чисел.
Решение:
Program Pr5;
Var
a,b:integer;
Function NOD(a,b:integer):integer;
begin
while a<>b do {пока числа не равны}
if a>b then a:=a-b {заменяем большее из них разностью большего и меньшего}
else b:=b-a;
NOD:=a;
end;
BEGIN
write('a,b='); readln(a,b); {ввод исходных данных}
write('NOD=', NOD(a,b)); {вызов функции и вывод ее значения}
readln;
END.
Результат:
a,b=24 16
NOD=8
Пример 6.
Составить функцию для вычисления xn, где x,n – целые числа
Степень принимает отрицательное значение, если основание степени Х<0 и показатель степени –нечетное число.
Решение:
Program Pr6;
Var
x,n:integer;
Function stepen(x,n:integer):real;
begin
|
|
if (n mod 2 <> 0) and (x<0) then stepen:=-exp(n*ln(abs(x)))
else stepen:=exp(n*ln(abs(x)));
end;
BEGIN
write('x,n='); readln(x,n); {ввод исходных данных}
write('stepen=',stepen(x,n):6:2); {вызов функции и вывод ее значения}
readln;
END.
Результат:
1 случай
x,n=2 3
stepen= 8.00
2 случай
x,n=-2 3
stepen= -8.00
3 случай
x,n=2 -2
stepen= 0.25
4 случай
x,n=-2 -2
stepen= 0.25