- 26.04.2015 00:00
- Информатика
- remove_red_eye 10489
- thumb_up 24
Ответы и объяснения 2
var
a, b, i, nod, m: integer;
begin
writeln('Введите a,b');
readln(a, b);
if a > b then
m := b
else
m := a;
for i := 1 to m do
begin
if (b mod i = 0) and (a mod i = 0) then
nod := i;
end;
if (a < b) then
writeln('Ответ ', a / nod, '/', b / nod)
else
writeln('Ответ ', a div b, ' ', (a mod b) / nod, '/', b / nod);
end.
//Вариант с проверкой отрицательных значений
var
m, i, a, b, n: integer;
flag: boolean;
begin
flag := false;
writeln('Введите a,b');
readln(a, b);
if a < 0 then a := -a else flag := not (flag);
if b < 0 then b := -b else flag := not (flag);
if a > b then
m := b
else
m := a;
for i := 1 to m do
begin
if (b mod i = 0) and (a mod i = 0) then
n := i;
end;
a := a div n;
b := b div n;
if flag then
begin
if (a < b) then
writeln('Ответ -', a / n, '/', b / n)
else
if (a mod b = 0) then
writeln('Ответ -', a div b)
else
writeln('Ответ -', a div b, ' ', a mod b, '/', b);
end
else
if (a < b) then
writeln('Ответ ', a / n, '/', b / n)
else
if (a mod b = 0) then
writeln('Ответ ', a div b)
else
writeln('Ответ ', a div b, ' ', a mod b, '/', b);
end.
- 27.04.2015 16:40
- thumb_up 36
// Внимание! Если программа не работает, обновите версию!
function GCD(a,b:integer):integer;
begin
while b0 do begin a:=a mod b; Swap(a,b) end;
Result:=a
end;
procedure TruncFrac(var a,b:integer);
begin
var z:=a*b<0?-1:1;
(a,b):=(Abs(a),Abs(b));
var k:=GCD(a,b);
(a,b):=((a div k)*z,b div k)
end;
procedure Print(a,b:integer);
begin
if b=1 then Write(a)
else begin
if Abs(a)>b then begin
Writeln(a div b,' ',Abs(a) mod b,'/',b)
end
else begin
if a<0 then begin Write('-'); a:=-a end;
Writeln(a,'/',b)
end
end
end;
begin
Write('Введите числитель и знаменатель дроби: ');
var (p,q):=ReadInteger2;
if p=0 then Writeln(0)
else if q=0 then Writeln('Знаменатель не может быть нулем')
else begin TruncFrac(p,q); Print(p,q) end
end.
Примеры
Введите числитель и знаменатель дроби: -156 70
-2 8/35
Введите числитель и знаменатель дроби: 1024 64
16
Введите числитель и знаменатель дроби: -158 42
-3 16/21
Введите числитель и знаменатель дроби: 356238 -3652
-97 997/1826
Введите числитель и знаменатель дроби: -150 -70
2 1/7
Введите числитель и знаменатель дроби: 12 0
Знаменатель не может быть нулем
- 28.04.2015 23:20
- thumb_up 8
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.