dxvmxnd

Untitled

Sep 6th, 2024
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. program L_3_D;
  2.  
  3. uses System.SysUtils;
  4.  
  5. var
  6. MultiFirst, MultiSecond, C, AFirst, BFirst, NumFirst, NumSecond, DenomFirst, DenomSecond : Integer;
  7. IsCorrect : Boolean;
  8.  
  9. begin
  10. Writeln('Данная програма умножает две дроби и сокращает итоговую дробь, если это возможно.');
  11.  
  12. repeat
  13. IsCorrect := True;
  14. Write('Введите числитель 1 дроби: ');
  15. try
  16. Readln(NumFirst);
  17. except
  18. Writeln('Неверный тип данных');
  19. IsCorrect := False;
  20. end;
  21. until IsCorrect;
  22.  
  23. repeat
  24. IsCorrect := True;
  25. Write('Введите знаменатель 1 дроби: ');
  26. try
  27. Readln(DenomFirst);
  28. except
  29. Writeln('Неверный тип данных');
  30. IsCorrect := False;
  31. end;
  32. until IsCorrect;
  33.  
  34. repeat
  35. IsCorrect := True;
  36. Write('Введите числитель 2 дроби: ');
  37. try
  38. Readln(NumSecond);
  39. except
  40. Writeln('Неверный тип данных');
  41. IsCorrect := False;
  42. end;
  43. until IsCorrect;
  44.  
  45. repeat
  46. IsCorrect := True;
  47. Write('Введите знаменатель 2 дроби: ');
  48. try
  49. Readln(DenomSecond);
  50. except
  51. Writeln('Неверный тип данных');
  52. IsCorrect := False;
  53. end;
  54. until IsCorrect;
  55.  
  56. MultiFirst := NumFirst * NumSecond;
  57. MultiSecond := DenomFirst * DenomSecond;
  58.  
  59. if MultiFirst = 0 then
  60. begin
  61. Writeln('Нуль -знаменатель! ');
  62. Readln;
  63. end;
  64.  
  65. if MultiFirst = 0 then
  66. begin
  67. Writeln(MultiFirst,'/',MultiSecond,'=',0);
  68. Readln;
  69. end;
  70.  
  71. AFirst := MultiFirst;
  72. BFirst := MultiSecond;
  73.  
  74. if MultiSecond > MultiFirst then
  75. begin
  76. C := MultiFirst;
  77. MultiFirst := MultiSecond;
  78. MultiSecond := C;
  79. end;
  80.  
  81. while MultiFirst mod MultiSecond <> 0 Do
  82. begin
  83. C := MultiSecond;
  84. MultiSecond := MultiFirst mod MultiSecond;
  85. MultiFirst := C;
  86. end;
  87.  
  88. Write(AFirst,'/',BFirst,'=',AFirst div MultiSecond);
  89.  
  90. if BFirst div MultiSecond <> 1 then
  91. Writeln('/',BFirst div MultiSecond);
  92. Readln;
  93. end.
Add Comment
Please, Sign In to add comment