Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція_проц_ф_ї.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
74 Кб
Скачать
☆

3. Функції

Якщо результатом виконання деякої процедури є одне скалярне значення, то цю процедуру бажано оформити як функцію. Формат опису функції:

function <ім'я функції>(список формальних параметрів):<тип результату>;

Звернення до функції (обов'язково повинно бути включене у вираз як операнд) має такий вигляд :

<ім'я функції> (список фактичних параметрів).

Задача. Знайти значення числа комбінацій n!

Знаходження значення факторіалу числа оформимо у вигляді функції. Тоді програма розв'язання даної задачі матиме вигляд:

Program KOMBINACIJ;

var N,M,C:integer;

function FACT(K:integer):integer;

var i,F:integer;

begin

F:=l;

for i:=l to K do F:=F*i;

FACT:=F;

end;

begin

write('n=');

readln(N);

write('m=');

readln(M);

C:=FACT(N)Div(FACT(M)*FACT(N-M));

Writeln ('Кількість комбінацій з ',n,' no ',m,' = ',C);

end.

Зверніть увагу на те, що в самому тілі функції FACT необхідно змінній, ім'я якої співпадає з ім'ям самої функції, присвоїти значення результату виконання функції: FACT:=F.

Задача 1. Знайти площу п’ятикутника, у якого сторони дорівнють:

A B = 2м, BC =a м, CD = b м, DE = c м, AE = d м, AC =4 м, AD = 5 м.

Program Pyatukytnuk; Var

a,b,c,d,f,g,h: integer; S,S1,S2,S3 : real;

Function ploscha(x,y,z:integer):real;

Var

p,S:real;

begin

If (x+y>z) and (x+z>y) and (y+z>x) Then

begin

P:=(x+y+z)/2;

S:=sqrt(p*(p-x)*(p-y)*(p-z));

end

Else

begin

Writeln(‘Такий трикутник не існує’);

S:=0

end;

ploscha:=S

End; Begin

Write (‘Введіть сторону=BC> ‘); ReadLn(a); Write (‘Введіть сторону=CD> ‘); ReadLn(b); Write (‘Введіть сторону=DE> ‘); ReadLn(c); Write (‘Введіть сторону=AE> ‘); ReadLn(d);

f:=2;

g:=4;

h:=5;

S1:=ploscha(f,a,g);

S2:=ploscha(g,b,h);

S3:=ploscha(h,c,d);

if (S1<>0) and (S2<>0) and (S3<>0) then

begin

S:=S1+S2+S3;

Writeln(‘S=’,s:5:2)

end

else

begin

Writeln(‘Пятикутника не існує’);

Writeln(‘уведіть іншу величину сторін)’;

end; 

ReadLn;

End.

Задача. За допомогою функції, що визначає, яке з двох чисел більше, визначити яке з чотирьох чисел більше.

Program max_4chucla;

Uses crt;

Var

a,b,c,d,max:real;

Function maximym(a,b,max:real):real;

begin

Max:=a;

If max<b then max:=b;

Maximym:=max;

end;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

write('c=>');

readln(c);

write('d=>');

readln(d);

max:=maximym(maximym(maximym(a,b,max),c,max),d,max);

writeln('max=',max:4:2);

readln;

End.

Запитання для самоконтролю:

  1. Для чого призначені процедури ?

  2. Як описується заголовок процедури ?

  3. Чим відрізняються формальні і фактичні параметри ?

  4. Чим відрізняються локальні і формальні змінні ?

  5. Для чого призначені функції ?

  6. Як описується заголовок функції ?

  7. Яка різниця між процедурою і функцією ?

  8. Як викликаються процедури і функції ?

Завдання

Знайти довжину сторін трикутника АВС, якщо відомі координати його вершин А(х1,y1,z1), B(х2,y2,z2), C(х3,y3,z3). Необхідно скористатись формулою:

7