Advertisement
venik2405

lab2_2_0

Oct 27th, 2020
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.03 KB | None | 0 0
  1. program LABA_2_2;
  2.  
  3. uses
  4.     System.SysUtils;
  5.  
  6. var
  7.     A, B, C, D, M, N, P, Q :Integer;
  8.  
  9. function Input(X :Integer): Integer;
  10. var
  11.     L : Integer;
  12.     IsCorrect: Boolean;
  13. Begin
  14.     Repeat
  15.         IsCorrect := True;
  16.         Writeln('Введите');
  17.         Try
  18.             Readln(L);
  19.         Except
  20.             Writeln('Введите целое число!');
  21.             IsCorrect := False;
  22.         End;
  23.         If (NOT IsCorrect) then
  24.             If (L = 0) and (X = 2) then
  25.             Begin
  26.                 Writeln('Чило не должно быть равно 0');
  27.                 IsCorrect := False;
  28.             End;
  29.     Until (IsCorrect);
  30.     Input :=L
  31. End;
  32.  
  33.  
  34.  
  35. function FindNumerator(M, N, P, Q :Integer):Integer;
  36. var
  37.     A: Integer;
  38. begin
  39.     A := M * Q + P * N;
  40.     FindNumerator := A;
  41. end;
  42.  
  43. function FindDenumerator(N, Q :Integer):Integer;
  44. var
  45.     B : Integer;
  46. begin
  47.     B := N * Q;
  48.     FindDenumerator := B;
  49. end;
  50.  
  51. function Temp1(A :Integer):Integer;
  52. Var
  53.     C : Integer;
  54. begin
  55.     C := A;
  56.     Temp1 := C;
  57. end;
  58.  
  59. function Temp2(B :Integer):Integer;
  60. var
  61.     D : Integer;
  62. begin
  63.     D := B;
  64.     Temp2 := D;
  65. end;
  66.  
  67. function ReduceFraction(C, D , X :Integer):Integer;
  68. begin
  69.  
  70.     repeat
  71.         if C>D then
  72.             C:=C-D
  73.         else
  74.             D:=D-C;
  75.     until (D = C);
  76.     if X = 1 then
  77.         ReduceFraction := C;
  78.     if X = 2 then
  79.         ReduceFraction := D;
  80. end;
  81.  
  82. procedure PrintFraction(A, B, C, D :Integer);
  83. begin
  84.     writeln (A div C , '/', B div D);
  85. end;
  86.  
  87. begin
  88.     Writeln('Данная программа находит сумму двух несократимых дробей.');
  89.     Writeln('Введите дроби');
  90.     M := Input(1);
  91.     N := Input(2);
  92.     P := Input(1);
  93.     Q := Input(2);
  94.     A := FindNumerator(M, N, P, Q);
  95.     B := FindDenumerator(N, Q);
  96.     C := Temp1(A);
  97.     D := Temp2(B);
  98.     C := ReduceFraction(C, D, 1);
  99.     D := ReduceFraction(C, D , 2);
  100.     Writeln('Их сумма');
  101.     PrintFraction(A, B, C, D);
  102.     Readln;
  103. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement