Функції та процедури

ФУНКЦІЇ

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.