Вот код, выдающий решение во всех случаях (нули, не нули, a < b, b < a, b = a, выход за границу точности типа real и т.п.): program InequalitySolver;
var
a, b, t, ia, ib: real;
begin
write('Введите параметры a и b: ');
readln(a, b);
if a = b then
writeln('Нет решений')
else if (a = 0) or (b = 0) then begin
if (a = 0) then t := b
else t := a;
ia := 1 / t;
if ia < 0 then
writeln('x ∈ (-∞, ', ia : 5 : 16, ')')
else
writeln('x ∈ (', ia : 5 : 16, ', +∞)')
end else begin
ia := 1 / a;
ib := 1 / b;
if ia < ib then begin
t := ia;
ia := ib;
ib := t
end;
if (ia > 0) xor (ib > 0) then
writeln('x ∈ (-∞, ', ib : 5 : 16, ') ∪ (', ia : 5 : 16, ', +∞)')
else
writeln('x ∈ (', ib : 5 : 16, ', ', ia : 5 : 16, ')')
end
end.
Рассматриваемые варианты: a = b - нет решений (левая часть становится квадратом вещественного числа)одно из a и b равно нулю (а второе - нет) - линейное неравенствов остальных случаях - парабола, при этом если знаки a и b одинаковые (ветви вверх), то решение - между корнями, а иначе (ветви вниз) решение - вне интервала между корнями
P.S. Чуть не забыл: говнокод двух предыдущих отвечающих не работает. Первый просто спёр откуда-то кусок кода для решение совершенно другой задачи, и его вряд ли вообще интересует, работает его программа или нет, т.к. он - тролль с КПД 7%, написавший 2 тыс примитивных ответов ради баллов. Второй - аналогичный персонаж, но пока успевший написать только 22 сообщения за 2 часа с момента регистрации. Люди, которые привыкли отвечать обдуманно (а тем более когда надо написать хоть и небольшую, но программу), 20 ответов напишут за день, а не за пару часов.