Задать вопрос
14 июня, 09:13

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида (P - целое, Q-натуральное) :

а) сложения;

б) умножения;

в) сокращения дроби.

Дробь представить следующим типом:

Type Frac=Record

P: Integer;

Q: 1 ... 32767

End;

Используя этот модуль найти:

1) сумму двух дробей, результат представить в виде несократимой дроби;

2) произведение двух дробей, результат представить в виде несократимой дроби.

+5
Ответы (1)
  1. 14 июня, 12:29
    0
    Type

    Frac = record

    P: integer;

    Q: 1 ... 32767

    end;

    function gcd (a: integer; b: integer) : integer;

    {Нахождение НОД}

    var

    i: integer;

    begin

    while b 0 do

    begin

    a : = a mod b;

    i : = b; b : = a; a : = i

    end;

    result : = a

    end;

    function RedFrac (a: Frac) : Frac;

    {Сокращение дроби}

    var

    igcd: integer;

    r: Frac;

    begin

    igcd : = gcd (a. P, a. Q) ;

    r. P : = a. P div igcd;

    r. Q : = a. Q div igcd;

    RedFrac : = r

    end;

    function Add (a, b: Frac) : Frac;

    {Сложение дробей}

    var

    r: Frac;

    begin

    r. P : = a. P * b. Q + b. P * a. Q;

    r. Q : = a. Q * b. Q;

    Add : = RedFrac (r)

    end;

    function Mult (a, b: Frac) : Frac;

    {Умножение дробей}

    var

    r: Frac;

    begin

    r. P : = a. P * b. P;

    r. Q : = a. Q * b. Q;

    Mult : = RedFrac (r)

    end;

    var

    m, n, k: Frac;

    begin

    m. P : = 4; m. Q : = 15; {4/15}

    n. P : = 9; n. Q : = 25; {9/25}

    k : = Add (m, n) ;

    Writeln (k. P, '/', k. Q) ;

    k : = Mult (m, n) ;

    Writeln (k. P, '/', k. Q) ;

    end.

    Результат выполнения программы:

    47/75

    12/125
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида (P - целое, Q-натуральное) : ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы