Составьте программу складывающую 2 обыкновенные дроби

0 голосов
55 просмотров

Составьте программу складывающую 2 обыкновенные дроби


Информатика (21 баллов) | 55 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

type
  fraction=class
 
  private
 
  class function GCD(a,b:BigInteger):BigInteger;
  begin
    while b<>0 do (a,b):=(b,a mod b);
    Result:=a
    end;
 
  public
 
  numerator:BigInteger;
  denominator:BigInteger;
 
  constructor Create(num:BigInteger:=0; denom:BigInteger:=1);
    begin
    var n:=GCD(num,denom);
    numerator:=num div n;
    denominator:=denom div n
    end;
 
  class function operator +(a,b:fraction):fraction;
    begin
    var n:=GCD(a.denominator,b.denominator);
    Result:=new fraction(a.numerator*(b.denominator div n)+
        b.numerator*(a.denominator div n),a.denominator div n*b.denominator);
    end;
  end;
    
  function Print(Self:fraction; s:string:=' '):fraction; extensionmethod;
  begin
    Result:=Self;
    if Self.denominator=1 then Write(Self.numerator,s)
    else Write(Self.numerator,'/',Self.denominator,s)
  end;
 
  function Read:fraction;
  begin
    var s:=ReadlnString('Введите через пробел числитель и знаменатель:');
    var w:=s.ToWords;
    Result:=new fraction(BigInteger.Parse(w[0]),BigInteger.Parse(w[1]))
  end;
 
begin
  var a:=Read;
  var b:=Read;
  (a+b).Print
end.

Примеры
Введите через пробел числитель и знаменатель: 1 2
Введите через пробел числитель и знаменатель: 5 130
7/13

Введите через пробел числитель и знаменатель: 132 65
Введите через пробел числитель и знаменатель: 1325 345
26333/4485

Введите через пробел числитель и знаменатель: 1231234450435679092 234535650234953469825
Введите через пробел числитель и знаменатель: 234346623432456207645 2345893524353652
2617268599782944014855731813763449145529/26199793481726210718128032276692900
(150k баллов)
0

Если бы еще преподавали нормально, от А до Я. НО они (поверхностно) расскажут основную суть, а вы делайте, что хотите.

0

Вот вот. Я учусь на Строительном. По физике у нас есть раздел Ядерной физики. Зачем она мне строителю? И такого бреда во всех вузах полно.

0

Ну не знаю, посмотрим, я еще только на первом курсе