Процедури-функції
1. Задається
функція так:
Function <ім'я функції>(<список
формальних параметрів>):<тип результату>;
2. У тілі функції обов'язково повинен бути оператор присвоєння виду:
<ім'я функції>:=<вираз>
3. Результат виконання функції потрібно присвоїти відповідній змінній.
Параметр — це
змінна, яка використовується для обчислення значення функції. Відмінність
параметру від звичайної змінної полягає в тому, що він описується не в розділі
опису змінних, а в заголовку функції. Конкретне значення параметр отримує під
час роботи програми при викликанні функції з основної програми.
Список формальних параметрів використовується для передачі
даних в підпрограму – функцію. Після імені змінної чи групи імен змінних йде
двокрапка і записується тип цих змінних.
Тип результату — це тип
значення, яке функція повертає у викликаючу її програму.
В розділі операторів знаходиться хоча б один оператор, який
присвоює імені функції деякий вираз.
Приклад: Порахувати суму двох чисел.
Program Dem_fun;
Var x1,x2,x:Real;
Function Fsum(a,b:Real):Real;
Begin
Fsum:=a+b
End;
Begin
Write (‘вв.2 числа’)
Read(x1, x2);
X:=Fsum(x1,x2);
Write (x1,’+’,x2,’=’,x)
End.
Виклик функції користувача здійснюється аналогічно тому, як і виклик будь-якої функції X:=Fsum(x1,x2).
Задача: по заданих дійсних значеннях x і y обчислити u=max(x+y,x*y), v=max(0.5,u).
Програма розв'язку цієї задачі з використанням функції:
Program Max3;
Var x,y,u,v:real;
Function Max(r1,r2:real):real;
Begin
If
r1>r2 then max:=r1 else max:=r2
End;
Begin
Read(x,y);
U:=Max(x+y,x*y);
V:=Max(0.5,u);
Writeln(u,v)
End.
Приклад. Скласти програму з використанням функцій та процедур з параметрами: порахувати суму елементів матриць a,b,c розміру 3´4, що містить дійсні елементи.
program PR2;
const m =3; n = 4;
type matr= array[1..3,1..4] of
real;
var a,b,c:matr; s1,s2,s3:real;
procedure Vvid(var d:matr);
var i, j: integer;
begin
for i: = 1 to 3 do
for j: = 1 to 4 do
read(d[i, j]);
end;
function SUM(d:matr):real;
var s:real;
begin s: =0;
for i: = 1 to 3 do
for j: = 1 to 4 do
s: = s + d[i, j];
sum:=s;
end;
begin
Vvid(a);
s1:=SUM(a); writeln (‘s1=’, s1);
Vvid(b);
s2:=SUM(b); writeln (‘s2=’,
s2);
Vvid(c);
s3:=SUM(c); writeln (‘s3=’,
s3);
end.
Підручник : ст. 206(Виклик з однієї процедури іншої),ст. 209, 211-212(функції), ст. 217=219(рекурсія).
Д./з. 1
1. Ввести вектори a,b,c з n дійсних елементів. Всі елементи, які належать проміжку [-5,5], замінити на максимальний
елемент відповідного вектора. Вивести утворені вектори.Використати процедури.
2.
Ввести ціле число x. Обчислити u = min(x,x2), v = min(0.2,u), використовуючи функції.
3. Ввести дійсні числа a,b,c. Якщо трикутник з такими сторонами існує, то знайти його площу
(задати дві функції: для визначеня
існування трикутника та знаходження площі). Підказка
на ст.212.
Д./з. 2 (Використовуючи
функції)
1. Порахувати середнє арифметичне
додатніх елементів кожного з векторів a,b,c, які складаються з n дійсних елементів.
2.
Порахувати кількість елементів, що належать проміжку [-6,6] кожного
з векторів a,b,c, які складаються з n дійсних елементів. Також знайти
максимальний елемент кожного з цих векторів.
Немає коментарів:
Дописати коментар