Функції та процедури
ФУНКЦІЇ
program імя ;
var глобальні змінні ;
function імя ( список формальних параметрів : тип) : тип результату ;
var локальні змінні
begin
_____серія команд_____
end;
begin
тіло програми
end.
Приклади опису функцій
1. Описати формулу S=ab
function S( a,b : real ) : real;
begin
S:=a*b;
end;
2. Описати формулу Герона
S= p(p-a)(p-b)(p-c)
function S( a,b,c : real ) : real;
var p:real;
begin
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
3. Записати функцію для обчислення n! (факторіала )
function fak( n : integer ) : real;
var i : integer; F :real;
begin
F:=1; for i:=1 to n do F:= F*i;
fak:= F;
end;
Примітка. Факторіалом називається добуток послідовних натуральних чисел, починаючи з 1.
0!=1 ; 1!=1 ; 2!=1*2=2; 3! = 1*2*3 = 6 і т.д.
Задача 1 . Протабулюйте функцію y= sin2x на проміжку від 12 до 40 з кроком 0,94. Використайте функцію.
program pr3;
var x : real ;
function y(x: real ) :real;
begin
y:= sin(2*x);
end;
BEGIN
x:=12 ;
repeat
writeln ( ‘x=’,x:15:5,’y=’,y (x) :17:8);
x:=x+ 0.94;
until (x> 40 );
READLN END.
Задача 2. Використавши функцію користувача, протабулюйте функцію у=6 |12x3| - 2 cos22x на проміжку [4; 8] з кроком 0,34. Знайдіть найбільше, найменше та середнє значення функції на цьому проміжку. Складіть блок-схему цієї програми.
program pr3;
var x, S, k, max, min : real ;
function y(x: real ) :real;
begin
y:= 6*abs(12*x*x*x)-2* sqr(cos(2*x));
end;
BEGIN
x:=4 ; S:=0; k:=0; Max:= -9999; Min := 9999;
repeat
writeln ( ‘x=’,x:15:5, ’y=’, y (x) :17:8); x:=x+ 0.34;
if y(x)>max then max:= y(x); if y(x) < min then min:= y(x);
S:= S+ y(x); k:=k+1;
until (x> 8 );
if (k<>0) then S:= S/k;
Writeln (‘Max=’,max); Writeln (‘Min=’,Min); Writeln (‘Sa=’, S);
READLN END.