Вопрос задан 17.10.2025 в 09:20. Предмет Информатика. Спрашивает Мирных Аня.

Составь алгоритм сравнения дробей. Проверь, что результат соответствует свойствам алгоритма. Напечатай ответ в поле ввода и нажми на значок «самолёт» для его отправки.

Перейти к ответам

Ответы на вопрос

Отвечает Касенчук Егор.

Как сравнивать две дроби ab\frac{a}{b} и cd\frac{c}{d} (где b0b\neq0, d0d\neq0) — самый простой и надёжный алгоритм:

Алгоритм

  1. Нормализация знаков. Если b<0b<0, заменить (a,b)(a,b)(a,b)\leftarrow(-a,-b). Если d<0d<0, заменить (c,d)(c,d)(c,d)\leftarrow(-c,-d). Теперь b>0b>0 и d>0d>0.

  2. Перемножение «накрест». Посчитать S=adcbS = a\cdot d - c\cdot b.

  3. Сравнение по знаку SS:

    • если S>0S>0, то ab>cd\frac{a}{b}>\frac{c}{d};

    • если S=0S=0, то дроби равны;

    • если S<0S<0, то ab<cd\frac{a}{b}<\frac{c}{d}.

Почему это корректно: при b>0b>0, d>0d>0 умножение не меняет знак неравенства, и ab ? cd\frac{a}{b}\ ?\ \frac{c}{d} эквивалентно ad ? cba\cdot d\ ?\ c\cdot b.

Псевдокод

kotlin
input a,b,c,d // b≠0, d≠0 if b<0: a=-a; b=-b if d<0: c=-c; d=-d S = a*d - c*b if S>0: return ">" if S==0: return "=" else: return "<"

Проверка свойств алгоритма

  • Определённость (однозначность): на каждом шаге ясно, что делать; результатом всегда является ровно один из трёх исходов: «<», «=», «>».

  • Дискретность: алгоритм состоит из конечного набора элементарных операций (сравнения, умножения, сложения/вычитания).

  • Результативность (завершается): число шагов фиксировано и не зависит от величины чисел → всегда заканчивается.

  • Массовость: подходит для любых целых a,b,c,da,b,c,d при b0b\neq0, d0d\neq0.

  • Корректность: эквивалентность ab ? cd    ad ? cb\frac{a}{b}\ ?\ \frac{c}{d} \iff a\cdot d \ ?\ c\cdot b верна при b>0b>0, d>0d>0; нормализация именно это и гарантирует.

Тесты (краевые случаи включены)

  1. 37 ? 25\frac{3}{7} \ ?\ \frac{2}{5}
    S=3527=1514=1>037>25S=3\cdot5-2\cdot7=15-14=1>0\Rightarrow \frac{3}{7}>\frac{2}{5}.

  2. 37 ? 25\frac{-3}{7} \ ?\ \frac{2}{5}
    b,d>0b,d>0 уже; S=3527=1514=29<037<25S=-3\cdot5-2\cdot7=-15-14=-29<0\Rightarrow \frac{-3}{7}<\frac{2}{5}.

  3. 37 ? 25\frac{-3}{7} \ ?\ \frac{-2}{5}
    S=35(2)7=15+14=1<037<25S=-3\cdot5-(-2)\cdot7=-15+14=-1<0\Rightarrow \frac{-3}{7}<\frac{-2}{5}

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Информатика 14.10.2025 04:57 24 Бердина Раиса
Информатика 13.10.2025 21:53 18 Кандрина Лера
Информатика 13.10.2025 20:34 9 Калинин Максим
Информатика 13.10.2025 20:27 6 Смирнов Егор
Информатика 13.10.2025 19:26 4 Макаров Максим
Информатика 13.10.2025 19:20 16 Гайнанов Эльнар
Информатика 13.10.2025 18:25 6 Bekenov Daulet
Информатика 13.10.2025 18:16 22 Александровна Вероника
Задать вопрос