Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program L_3_D;
- uses System.SysUtils;
- var
- MultiFirst, MultiSecond, C, AFirst, BFirst, NumFirst, NumSecond, DenomFirst, DenomSecond : Integer;
- IsCorrect : Boolean;
- begin
- Writeln('Данная програма умножает две дроби и сокращает итоговую дробь, если это возможно.');
- repeat
- IsCorrect := True;
- Write('Введите числитель 1 дроби: ');
- try
- Readln(NumFirst);
- except
- Writeln('Неверный тип данных');
- IsCorrect := False;
- end;
- until IsCorrect;
- repeat
- IsCorrect := True;
- Write('Введите знаменатель 1 дроби: ');
- try
- Readln(DenomFirst);
- except
- Writeln('Неверный тип данных');
- IsCorrect := False;
- end;
- until IsCorrect;
- repeat
- IsCorrect := True;
- Write('Введите числитель 2 дроби: ');
- try
- Readln(NumSecond);
- except
- Writeln('Неверный тип данных');
- IsCorrect := False;
- end;
- until IsCorrect;
- repeat
- IsCorrect := True;
- Write('Введите знаменатель 2 дроби: ');
- try
- Readln(DenomSecond);
- except
- Writeln('Неверный тип данных');
- IsCorrect := False;
- end;
- until IsCorrect;
- MultiFirst := NumFirst * NumSecond;
- MultiSecond := DenomFirst * DenomSecond;
- if MultiFirst = 0 then
- begin
- Writeln('Нуль -знаменатель! ');
- Readln;
- end;
- if MultiFirst = 0 then
- begin
- Writeln(MultiFirst,'/',MultiSecond,'=',0);
- Readln;
- end;
- AFirst := MultiFirst;
- BFirst := MultiSecond;
- if MultiSecond > MultiFirst then
- begin
- C := MultiFirst;
- MultiFirst := MultiSecond;
- MultiSecond := C;
- end;
- while MultiFirst mod MultiSecond <> 0 Do
- begin
- C := MultiSecond;
- MultiSecond := MultiFirst mod MultiSecond;
- MultiFirst := C;
- end;
- Write(AFirst,'/',BFirst,'=',AFirst div MultiSecond);
- if BFirst div MultiSecond <> 1 then
- Writeln('/',BFirst div MultiSecond);
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement