Well, I have changed my demo instead. Here the whole code again.
program FractionsDemo;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, Fractions;
function CalculateFraction(FirstFraction, AOperator, SecondFraction :string): string;
var
F1, F2, Res: Fraction;
S1, S2, S3, S4 :string;
p :integer;
begin
p := Pos('/', FirstFraction);
S1 := Trim(Copy(FirstFraction, 1, p - 1));
S2 := Trim(Copy(FirstFraction, p + 1, Length(FirstFraction)));
p := Pos('/', SecondFraction);
S3 := Copy(SecondFraction, 1, p - 1);
S4 := Copy(SecondFraction, p + 1, Length(SecondFraction));
F1 := CreateFraction(StrToInt(S1), StrToInt(S2));
F2 := CreateFraction(StrToInt(S3), StrToInt(S4));
case AOperator of
'+': Res := Canonicalize(F1 + F2);
'-': begin
Res := Canonicalize(F1 - F2);
if Res.den < 0 then
begin
Res.num := - Res.num;
Res.den := - Res.den;
end;
end;
'*': Res := Canonicalize(F1 * F2);
'/': Res := Canonicalize(F1 / F2);
end;
Result := FractionToStr(Res);
end;
var
Str1, Str2, StrOp :string;
begin
WriteLn('Enter first fraction (a/b):');
ReadLn(Str1);
WriteLn('Enter operator (+, -, *, /):');
ReadLn(StrOp);
WriteLn('Enter second fraction (c/d):');
ReadLn(Str2);
WriteLn(CalculateFraction(Str1, StrOp, Str2));
readln;
end.