0

この増分から得た答えを入れようとしています。

for(int i=0; i<=n; i++)
  {
  Xnew = -i*(Y+R1)/n; //calculation for angles and output displayed to user

  Ynew = pow((((Y+R1)*(Y+R1)) - (Xnew*Xnew)), 0.5);

  cout<<"\n("<<Xnew<<", "<<Ynew<<")"<<endl;

  AngleB = acos(Xnew/pow((pow(Xnew, 2))+(pow(Ynew, 2)), 0.5))*(180/Pi);

  cout<<"\nAngle 'B' = "<<AngleB1<<" Degrees"<<endl;

  AngleV = acos(((pow(Xnew, 2))+(pow(Ynew, 2))+(pow(100, 2))-(pow(65, 2)))/(200*(pow(((pow(Xnew, 2))+(pow(Ynew, 2))), 0.5))))* (180/Pi);

  cout<<"Angle 'V' = "<<AngleV<<" Degrees"<<endl;
  AngleTheta1 = AngleB - AngleV;

  cout<<"Theta 1 = "<<AngleTheta1<<" Degrees"<<endl;

  AngleTheta2 =(asin(pow(((sin(AngleV*Pi/180))*(pow(((pow(Xnew, 2))+(pow(Ynew, 2))), 0.5))/65), 0.5)))*(180/Pi);

  cout<<"Theta 2 = "<<AngleTheta2<<" Degrees"<<endl;

  }

ここで、ユーザーが「n」に選択した値に応じて、「n」個の値のリストが表示されます。EG したがって、n = 2 の場合、2 つの座標 (Xnew、Ynew) と 4 つの異なる角度を取得します。

現在、これらの値を Excel に入力する際に​​問題が発生しており、ヘッダー付きの値の表が表示されます。CSVで書いてみました。形式ですが、必要な値のリストではなく、Excel で各列に 1 つの値を表示することに成功しただけです (n>1 の場合)。

このコードは、プロジェクトの卒業生ヘルパーから提供されましたが、まだ実際には役に立っていません。

// writing on a text file
   #include <iostream>
   #include <fstream>
   using namespace std;

   int main () {
   ofstream myfile ("h:\\test\\files\\example.txt");
   if (myfile.is_open())
   {
       myfile << "This is a line.\n";
       myfile << "This is another line.\n";
       myfile.close();
   }
   else cout << "Unable to open file";
   return 0;
   }

では、計算した値を上記で指定した形式で Excel に表示する方法について何か提案はありますか? 質問が十分に明確であることを願っています。

これは、壊れた単一の値が表示されたときに以前に試したコードの大まかなものです (ただし、削除したため、完全ではない可能性があります)。

int main(){ の下

 std::ofstream file_out("Test.csv");

そして一番下(すべてのコードの下)

 file_out << "x, x2, x3" << std:endl;
 file_out << x << ", " << x2 << ", " << x3 << std::endl;

ただし、x、x2、および x3 はすべて上記で指定した値です (つまり、AngleB、Xnew など)。

4

1 に答える 1

0

これが機能するには、リストではなく値の表が必要になります

すべての cout インスタンスを削除し、次のようなものに置き換えます。

cout<<AngleB1<<" "<<AngleV<<" "<<AngleTheta1<<" "AngleTheta2<<" "<<endl;

ループが実行される前に、ヘッダーのリストをファイルに書き込むことができます

于 2013-03-25T13:18:06.573 に答える