Advertisement
dxvmxnd

Untitled

Sep 26th, 2023
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 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.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement