私はC++の初心者です。入力された式のタイプを検出するために入力を「スキャン」する機能があるかどうかを調べようとしています。C++どのように展開する/ファクタライズするか(解くことなく)
基本的に、私がやろうとしていること(a-b)^2
のようなものを入力して、プログラムがa^2-2*a*b+b^2
にそれを展開するかax^2+by+c
を入力して、プログラムが私にa(x-α)+β
を与えるだろうです。
私が以前に行っていることは、単に式の種類を尋ねている入力された後、(このような)各要因が何であるか、具体的尋ねることになるだろう:
int a, a2;
int b, b2;
int inbetween;
cout << "Equation of type (ax+by)^2.\nPlease enter the factor of X : ";
cin >> a;
cout << "Please enter the factor of Y : ";
cin >> b;
a2 = a*a; //pow(a,2)
b2 = b*b; //pow(b,2)
inbetween = 2*a*b;
cout << "(" << a << "x + " << b << "y" << ")^2 = " << a2 << "x + " << inbetween << "xy + " << b2 << "y\n";
// (ax + by)^2 = a^2x + 2*a*b*xy + b^2y
しかし、これは私にはない、まさにですやってみたいです。
私は、コード化されたプログラムがサポートするあらゆるタイプの式の入力を拡張する方法があるかどうかを知りたいと思います。
私は十分に明確であることを望む、私の主な言語ではない私は、私がコミュニケーションしようとしていることは本当に明確ではないことが分かっている。
[softwarerecs.se]を検索してください。ソフトウェアの推奨事項は、StackOverflowのトピック外です。 –
@ThomasMatthews私はこれをしないFast Bananaはどの技術を使うべきかを求めています。この問題を解決する簡単な方法があるのかどうかだけです。 –
入力式の数学的順序やその他の特徴を検出する関数を実装する最も信頼性の高い方法は、boostパーサーのような一般的なツールを使って式パーサーを記述することです。しかしこれは初心者のための仕事ではありません。しかし、何とか学ばなければなりません。 – JimmyNJ