Зворотний зв'язок

Область дії означень та побічний ефект

begin x3:=x1*y2+x2*y1; y3:=y1*y2;

redufr(x3, y3)

end;

Щоб скоротити дріб, треба його чисельник і знаменник розділити на їх найбільший спільний дільник (задача 4.5). Нехай його обчислення задає функція gcd, яку ми тут не уточнюємо. Тоді процедура скорочення redufr очевидна:

procedure redufr(var x1, y1 : integer);

var t : integer;

begin

t:=gcd(x1, y1);

x1:=x1 div t; y1:=y1 div t

end;

Нарешті, наведемо розташування наведених підпрограм у блоці програми. Функція gcd повинна бути записана перед процедурою redufr, оскільки в ній визивається. Так само ця процедура повинна бути записана перед процедурою plusfr. Взаємне розташування plusfr, writefr і readfr не має значення:



function gcd(x, y : integer) : integer; …

begin … end;

procedure redufr(var x1, y1 : integer); …

begin … gcd … end;

procedure plusfr(x1, y1, x2, y2 : integer; var x3, y3 : integer);

begin … redufr … end;

procedure readfr(var x, y : integer);

begin … end;

procedure writefr(x, y : integer);

begin write(x, '/', y) end;

Запис програми в остаточному вигляді залишаємо як вправу. 

Переозначати ім'я підпрограми в ній самій мова Паскаль забороняє. Але дозволяє використовувати його, тобто позначати ним виклики цієї ж підпрограми. Такі виклики підпрограми усередині її самої називаються рекурсивними; ми познайомимося з ними в розділі 9.


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат