Паскаль: область дії, модулі, структури, Детальна інформація
Паскаль: область дії, модулі, структури
writeln('задайте дріб (два цілих, друге не 0):'); readfr(a, b);
writeln('задайте дріб (два цілих, друге не 0):'); readfr(c, d);
plusfr(a, b, c, d, r1, r2);
writefr(r1, r2);
end.
А тепер почнемо уточнювати підпрограми. Процедура читання очевидна:
procedure readfr(var x, y : integer);
begin readln(x); readln(y) end;
Передбачається, що при виконанні програми користувач набере дві цілі сталі.
Процедура додавання повинна повертати результат додавання у вигляді нескоротного дробу. Нехай її параметри x1, y1, x2, y2 задають два дроби, що додаються, а x3, y3 – результат. Скорочення дробу задамо процедурою redufr. Її параметри-змінні задають дріб (скорочений спочатку і в результаті). Тоді додавання задається такою процедурою:
procedure plusfr(x1, y1, x2, y2 : integer; var x3, y3 : integer);
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);
writeln('задайте дріб (два цілих, друге не 0):'); readfr(c, d);
plusfr(a, b, c, d, r1, r2);
writefr(r1, r2);
end.
А тепер почнемо уточнювати підпрограми. Процедура читання очевидна:
procedure readfr(var x, y : integer);
begin readln(x); readln(y) end;
Передбачається, що при виконанні програми користувач набере дві цілі сталі.
Процедура додавання повинна повертати результат додавання у вигляді нескоротного дробу. Нехай її параметри x1, y1, x2, y2 задають два дроби, що додаються, а x3, y3 – результат. Скорочення дробу задамо процедурою redufr. Її параметри-змінні задають дріб (скорочений спочатку і в результаті). Тоді додавання задається такою процедурою:
procedure plusfr(x1, y1, x2, y2 : integer; var x3, y3 : integer);
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);
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021