Напишите программу решения неравества, зависящего от параметров
a и b – заданных вещественных чисел; x – неизвестное: (ax−1)(bx−1) < 0
Другие языки программирования и технологии
(ax−1)(bx−1) < 0 на паскаль
Вот код, выдающий решение во всех случаях (нули, не нули, a < b, b < a, b = a, выход за границу точности типа real и т.п.):
Рассматриваемые варианты:
P.S. Чуть не забыл: говнокод двух предыдущих отвечающих не работает. Первый просто спёр откуда-то кусок кода для решение совершенно другой задачи, и его вряд ли вообще интересует, работает его программа или нет, т.к. он - тролль с КПД 7%, написавший 2 тыс примитивных ответов ради баллов. Второй - аналогичный персонаж, но пока успевший написать только 22 сообщения за 2 часа с момента регистрации. Люди, которые привыкли отвечать обдуманно (а тем более когда надо написать хоть и небольшую, но программу), 20 ответов напишут за день, а не за пару часов.
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 ответов напишут за день, а не за пару часов.
Роман Рисков
поняли, спасибо
read(a, b);
if a > b then begin {сортировка a и b по возрастанию}
t := a; a := b; b := a
end;
if a = b then {парабола касается оси X сверху, либо оба коэф-та = 0}
writeln('not found')
else if a * b = 0 then {наклонная прямая, один из коэф-тов = 0}
if a + b < 0.0 then {прямая слева вниз направо}
writeln('x > ', 1.0 / (a + b))
else {прямая слева вверх направо}
writeln('x < ', 1.0 / (a + b))
else if a * b < 0.0 then {парабола пересекает ось X, рога вниз}
writeln(' x < ', 1.0 / a, ' or x > ', 1.0 / b)
else {парабола пересекает ось X, рога вверх}
writeln(1.0 / b, ' < x < ', 1.0 / a)
Роман Примаков
abs(a) + abs(b) = 0 только тогда, когда a = b = 0, поэтому условие лишнее.
program Equation;
var
a,b,x:real;
begin
writeln('Введите параметры a и b:');
readln(a,b);
x:=1/((a/b) + 1);
writeln ('Значение переменной х:', x:2:2);
end.
var
a,b,x:real;
begin
writeln('Введите параметры a и b:');
readln(a,b);
x:=1/((a/b) + 1);
writeln ('Значение переменной х:', x:2:2);
end.
Роман Рисков
спс дедпул
program inequality;
var
a, b, x: real;
begin
writeln('Введите параметры a и b');
readln(a, b);
if (a*b > 0) then begin
x := 1 / a;
writeln('x < ', x);
end else begin
x := 1 / b;
writeln('x > ', x);
end;
end.
var
a, b, x: real;
begin
writeln('Введите параметры a и b');
readln(a, b);
if (a*b > 0) then begin
x := 1 / a;
writeln('x < ', x);
end else begin
x := 1 / b;
writeln('x > ', x);
end;
end.
Роман Рисков
спасибо!
Похожие вопросы
- Как будет выглядеть программа решения квадратного уравнения ax^2 + bx + c = 0 (Паскаль)???
- Програмисты, помогите! В Турбо Паскаль составить программу для решения квадратного уравнения(ax^2+bx=c)
- найти все семизначные числа, которые делятся на 15 и записываются только цифрами 0 и 1. Составить программу на паскале
- вычислить ряд 1/2+1/3+1/4... с точностью 0,1 в Турбо Паскаль. срочно, пожалуйста помогите!!!
- Дано n строк по 3 элемента (1 и 0), найти сколько строк имеет больше чем один знак 1. C++
- Переделать массив так чтобы сначала располагались 1 потом 0 потом 2
- Определить число k, которое отсутствует в неупорядоченном массиве чисел (0, 1,...k-1,k+1,...n) за один цикл
- Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания. Pascal
- Как задать массив с неизвестным окончанием типа а[1..n,1..k] в паскале?
- В чем разница между 192.168.100.1 или 192.168.0.1?