Алгоритм Вычисления Уравнения |a+5x|/(b-x)=2c

  • Автор темы RayPeace
  • Дата начала
R

RayPeace

#1
Прошу помощи в создании алгоритма решения уравнения |a+5x|/(b-x)=2c . а, b и c дано.
Заранее очень благодарен.
 
W

Whatka

#2
на множестве рациональных чисел

C++:
x=(2cb-a)/(5+2c);
if((x<b)&&(c>0))
cout<<x;
else
{
if((x>b)&&(c<0)&&(c!=-2.5))
cout<<x;
else
сout<<"Нет решений";
}
и вообще учи математику
элементарное уравнение для 8 класса!
 
R

RayPeace

#3
Whatka
Большое спасибо, не могли бы вы помочь мне и для составления алгоритма этого 2|c-2x|=ax+b, уравнения
буду очень благодарен.
 
W

Whatka

#4
Следует отметить что мы рассматриваем данное уравнение на множестве рациональных чисел.
Разделим обе части уравнения на не нулевую константу левой части
и почленно разделим дробь,полученную в правой части.
Так как модуль есть величина неотрицательная(см.определение)
рассмотрим два случая.В первом случае модуль и правая часть
уравнения одновременно равны нулю,я думаю вам не составит
труда выразить иксы в обоих случаях и посмотреть отношение коэффицентов,вводимых
с клавиатуры.То есть после ввода с клавиатуры коэффицентов нужно рассмотреть
условие выполнения полученного соотношения,при истинности данного условия
значения иксов есть множество рациональных чисел.В противном слчае рассматриваем
второй случай.Во втором случае просто расскрываем модуль сами!преобразовываем
уравнение и выражаем икс.В программе составляем подсчёт значения икса,при условии
что правая часть исходного уравнения строго больше нуля.


напомню вам своё высказывание по поводу ваших познаний в математике.
 
R

rrrFer

#5
Whatka , слишком добрый, я бы не помог, особенно второй раз )
 
W

Whatka

#6
думаю для человека начавшего изучать С++(минимум 10 класс)
и затрудняющегося решить такие уравнения это является
свидетельсвом или лени,захватившей контроль над разумом,
или крепкой дружбы с математикой,а судя по процессу построения аналогий,
и с другими техническими предметами в общем.


в любом случае такое изложение второго решения
пойдёт на усление мозговой активности,что само
является целью при оказании помощи в такого
вида вопросах.

:)
 
T

Triplecool

#7
сначала извлечём x

2*c-2*x=a*x+b;
2*x+a*x=2*c-b;
x*(2+a)=2*c-b;
x=(2*c-b )/(2+a);//Вот эту формулу мы будем и испоьзовать

Надеюсь всё понятно что я делаю :)

C++:
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
float a,b,c,x;

cout << "Enter a \n";
cin >> a; //Вводим значение a

cout << "Enter b \n";
cin >> b; //Вводим значение b

cout << "Enter c \n";
cin >> c;  //Вводим значение c

if (a!=-2) //Ставим условие чтобы a не было равно -2, т.к делить на ноль нельзя
{
x=(2*c-b)/(2+a);
cout << x;
}
else {cout << "Helza delit na 0!!!\n";} //Если a равно -2 то выводим сообщение Нельзя делить на ноль
_getch();
return 0;
}



думаю для человека начавшего изучать С++(минимум 10 класс)
Обижаешь меня:( Я начал программировать в 8 классе, а на C++ в 9 классе (уже как два месяца)
 
R

rrrFer

#9
Надеюсь всё понятно что я делаю
там был модуль...
|{c-2x >= 0
|{2c-4x=ax+b
и
|{c-2x<0
|{4x-2c=ax+b
=>
|{x<=c/2
|{x=(b-2c)/(a+4)
и
|{x>c/2
|{x=(b+2c)/(4-a)

Тогда:
1. вычисляешь x=(b-2c)/(a+4)
2. если x<=c/2 - выводишь х, иначе на п.3
3. вычисляешь x=(b+2c)/(4-a)
4. если x>c/2 - выводишь х, иначе выводишь "нет решения"

Хотя, допускаю, что что-то забыл, но вятка, у тебя верное решение первой задачи? - меня терзают сомнения по поводу условия:
Код:
if((x<b)&&(c>0))
а также:
Код:
if((x>b)&&(c<0)&&(c!=-2.5))
cout<<x;
первое условие я бы заменил на x>=a/5
в ветке else вычислил бы x=(a+2bc)/(2c-5) и проверил бы условие x<a/5
 
W

Whatka

#10
да верное.

|a+5x|=2c(b-x) //b!=x

так как модуль не отрицательная велечина то
существует два случая
1)|a+5x|=0 и 2c(b-x)=0<=>(b-x)=0 ,но так как b не равно x то этот случай не рассматриваем
2) 2c(b-x)>0
c>0и(b-x)>0 ИЛИ с<0и(b-x)<0
с>0иx<b ИЛИ c<0иx>b

расскрываем модуль
a+5x=2cb-2cx
x(5+2c)=2cb-a


x=(2cb-a)/5+2c;
вычисляем x и проверяем
C++:
if((x<b)&&(c>0))
с не проверяем на -2.5 так как по условию с>0 и никак отрицательным не может быть
или если первое не выполняется проверяем
C++:
if((x>b)&&(c<0)&&(c!=-2.5))
 
R

RayPeace

#11
Whatka
а почему вы сначала вычисляете х, а после этого проверяете c>0, эта проверка должна выполнятся после ввода a, b, c.
и почему не рассматривается случай когда х любое число

r04
первое условие я бы заменил на x>=a/5
а как будет проверятся х, если х вычисляется после проверки условия, может в условии взять с!=2,5 ?
 
W

Whatka

#12
проверка должна выполнятся после ввода a, b, c.
проверку неважно когда вводить

почему не рассматривается случай когда х любое число
Я иммел ввиду случаи не нулевых констант(a,b,c)


при c=0 x=-a/5 (нет cлучаев когда x принимает любое решение)
 
R

rrrFer

#13
Whatka
в оригинале b!=x не было.
Если вы полагаете что модуль не может быть равен нулю - то ошибаетесь.
Код:
расскрываем модуль
a+5x=2cb-2cx
x(5+2c)=2cb-a
как-то вы таинственно это делаете. Вы же сами написали что модуль - величина не отрицательная, а значит раскрыть его можно в двух вариантах - если выражение под модулем больше нуля - то ничего не меняем, а если меньше - меняем знаки внутри(этим и обеспечивается неотрицательность)
при x=-a/5 и c=0 ===>x принимает любые значения
еще раз прочитай что написал, я выделил жирным чтобы помочь тебе )

Добавлено: RayPeace
а как будет проверятся х, если х вычисляется после проверки условия, может в условии взять с!=2,5 ?
поясни свой вопрос, я вроде бы написал понятный алгоритм из 4 пунктов.
И откуда вы накопали то что я выделил жирным? - если что, я пишу про вторую задачу, а именно:
Большое спасибо, не могли бы вы помочь мне и для составления алгоритма этого 2|c-2x|=ax+b, уравнения
буду очень благодарен.
 
R

rrrFer

#14
вятка
проверь на a=-11,b=1,c=6;
не уверен, но вроде бы х должно быть равно 1/7
у вас же нет решения, ну потому что случай когда x < (-a/5) вы вообще не рассмотрели, при этом модуль должен менять знак