Помогите с информатикой, пожалуйста Pascal abc Напишите процедуру без функций и сложных...

0 голосов
60 просмотров

Помогите с информатикой, пожалуйста
Pascal abc
Напишите процедуру без функций и сложных операторов, которая cокращает дробь вида M\N, числитель и знаменатель дроби передаются как изменяемые параметры


Информатика (33 баллов) | 60 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Procedure CKR(var M,N:integer);
Var d:integer;
Begin
if M>N then d:=N
else d:=M;
While d>1 do
   Begin
   if (M mod d = 0)and(N mod d = 0) then
      Begin
      M:=M div d;
      N:=N div d;
      if M>N then d:=N
      else d:=M
      End;
   d:=d-1
   End;
End;

Var M,N:integer;
Begin
Write('M = ');ReadLn(M);
Write('N = ');ReadLn(N);
CKR(M,N);
WriteLn(M,'/',N);
End.

(34.0k баллов)
0

Спасибо, но при некоторых числителях и знаменателях он выдает ошибку деления на ноль (например 6 и 3)

0

Исправил.

0

Вместо "While d<>1 do" нужно было написать "While d>1 do"

0

Спасибо большое