Задать вопрос
19 мая, 16:26

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

а) сложения;

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

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

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

Type Frac=Record

P: Integer;

Q: 1 ... 32767

End;

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

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

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

+3
Ответы (1)
  1. 19 мая, 17:25
    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-натуральное) : ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы
Похожие вопросы по информатике
С + + Реализовать в виде класса набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида (P - целое, Q - натуральное) : 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) сокращение дроби;
Ответы (1)
1. Какие из следующих заголовков подпрограмм верны? Ответ обоснуйте. a) Procedure P1 (x, z: Real) : Integer; b) Function F1 (a, b, c: Real) : char; c) Function F2 (m: integer) ; d) Procedure P2 (var n: integer; m: integer) ;
Ответы (1)
Переведите программу в Free Pascal var A: Array [1 ... 100] of integer; size: integer; Even: integer; notEven: integer; begin Write ('Set size A : ') ; Read (size) ; for i:integer : = 1 to size do begin Write ('Set A[', i, ']: ') ; Read (A[i]) ; end;
Ответы (2)
Определить значение переменной у после выполнения следующих фрагментов программы: a) Var у : real; i : integer; у : = 1; i : = 5; while i> 2 do i: = i - 1; y:=y + 1 * i; b) Var у : real; i : integer; у : = 1; i : = 2; repeat i: = 2 * i;
Ответы (1)
можете объяснить за что отвечает xsearch? program c4; var n: integer; x, y: integer; xmin, xmax: integer; xsearch: boolean; ymin, ymax: integer; i: integer; s: real; begin xsearch : = true; xmin : = 0; xmax : = 0; ymin:=0; ymax : = 0; readln (n) ;
Ответы (1)