Advertisement
klasscho

Untitled

Oct 30th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. Program Project6;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. sysUtils;
  7. function CheckOne(max : integer) : integer;
  8. var
  9. IsCorrect: Boolean;
  10. input: integer;
  11. begin
  12. repeat
  13. try
  14. writeln('Enter a value : ');
  15. readln(input);
  16. if ((input > 0) and (input < max)) then
  17. IsCorrect := True
  18. else
  19. writeln('Enter a correct value!');
  20. except
  21. IsCorrect := False;
  22. writeln ('Try again. Enter a correct value!');
  23. end;
  24. until IsCorrect;
  25. CheckOne := input;
  26. end;
  27. procedure CheckTwo(var num, den : integer);
  28. var
  29. l, min : integer;
  30. begin
  31. if den > num then min := den else min := num;
  32. for l := 1 to min do
  33. if (num mod l = 0) and (den mod l = 0) then
  34. begin
  35. num := num div l;
  36. den := den div l;
  37. end;
  38. end;
  39.  
  40. function fraction(num, den: integer) : integer;
  41. var
  42. mult: integer;
  43. begin
  44. mult := num * den;
  45. fraction := mult;
  46. end;
  47. const
  48. MaxInt = 46340;
  49. var
  50. m, n, p, q, a, b, num1, den1 : integer;
  51. begin
  52. Writeln ('This program divides two irreducible fractions');
  53. m := CheckOne(MaxInt);
  54. n := CheckOne(MaxInt);
  55. p := CheckOne(MaxInt);
  56. q := CheckOne(MaxInt);
  57. CheckTwo(m, p);
  58. CheckTwo(q, n);
  59. num1 := fraction(m, n);
  60. den1 := fraction(p, q);
  61. writeln (num1 ,'/', den1);
  62. readln;
  63. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement