fork download
  1. {$mode Delphi}
  2.  
  3. type PolynomBuilder = class
  4. private
  5. polynom : string;
  6. procedure Append( member : integer );
  7. procedure Append( multiplicant : integer; variable : string ); overload;
  8.  
  9. public
  10. function Get:string;
  11.  
  12. end;
  13.  
  14.  
  15. procedure PolynomBuilder.Append( member : integer );
  16. var memberStr : string;
  17. begin
  18. if
  19. member <> 0
  20. then begin
  21. str( member, memberStr );
  22. if
  23. polynom = ''
  24. then
  25. polynom := memberStr
  26. else begin
  27. if
  28. member < 0
  29. then
  30. polynom := polynom + memberStr
  31. else
  32. polynom := polynom + '+' + memberStr;
  33. end;
  34. end;
  35. end;
  36.  
  37. procedure PolynomBuilder.Append( multiplicant : integer; variable : string ); overload;
  38. var multiplicantStr, member : string;
  39. begin
  40. if
  41. multiplicant <> 0
  42. then begin
  43. if
  44. abs(multiplicant) <> 1
  45. then
  46. str( multiplicant, multiplicantStr )
  47. else if
  48. multiplicant = -1
  49. then
  50. multiplicantStr := '-';
  51.  
  52. member := multiplicantStr + variable;
  53. if
  54. polynom = ''
  55. then
  56. polynom := member
  57. else begin
  58. if
  59. multiplicant < 0
  60. then
  61. polynom := polynom + member
  62. else
  63. polynom := polynom + '+' + member;
  64. end;
  65. end;
  66. end;
  67.  
  68. function PolynomBuilder.Get : string;
  69. begin
  70. Get := polynom;
  71. end;
  72.  
  73. var Polynom : PolynomBuilder;
  74. a, b, c, i: integer;
  75. begin
  76. for i:=1 to 5 do begin
  77. Polynom := PolynomBuilder.Create;
  78. readln(a, b, c);
  79. Polynom.Append(a);
  80. Polynom.Append(b, 'x');
  81. Polynom.Append(c, 'y');
  82. writeln( Polynom.Get );
  83. Polynom.Free;
  84. end;
  85. end.
Success #stdin #stdout 0s 236KB
stdin
1 0 1
-1 -1 0
1 2 3
3 2 1
0 -1 1
stdout
1+y
-1-x
1+2x+3y
3+2x+y
-x+y