c言語で、0°から360°までcosθを1°ずつ計算してエクセルに表示するにはどうすればいいですか?

c言語で、0°から360°までcosθを1°ずつ計算してエクセルに表示するにはどうすればいいですか?

C言語関連 | プログラミング24閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

2

1. C言語でExcelアプリを操作するのは難しいようです。 PythonやC#はできるようですが。私はやったことがありません。 ExcelにはVBAがあるので直接データをセルに書き込む方法もあります。 2. C言語でCSVデータファイルを作成してExcelに取り込む方法はどうでしょうか。 以下はそのプログラムです。 //---ここから #define _CRT_SECURE_NO_WARNINGS // Visual Studio only #include <stdio.h> #include <math.h> int main(void) {     const char *file_name = "dat.csv";     double pi = acos(-1); // 円周率。ラジアンの変換に必要。     FILE *file = fopen(file_name, "w");     if (file == NULL) {         printf("%s ファイルが作成できません\n", file_name);         return 0;     }     for (int i = 0; i <= 360; i++) {         // i(度)をラジアンに変換します。         // piがdoubleなので(double)キャストは不要です。         double i_rad = i * pi / 180;         fprintf(file, "%d,%f\n", i, cos(i_rad)); // csvとして出力します。     }     fclose(file); } //---ここまで 3. 上はファイルを扱う関数を使いました。 標準出力にCSV形式として出力するプログラムを作ります。 csvファイルにリダイレクトします。 実行例: > program.exe > dat.csv 以下はそのプログラムです。 //---ここから #include <stdio.h> #include <math.h> int main(void) {     double pi = acos(-1); // 円周率。ラジアンの変換に必要。     for (int i = 0; i <= 360; i++) {         // i(度)をラジアンに変換します。         // piがdoubleなので(double)キャストは不要です。         double i_rad = i * pi / 180;         printf("%d,%f\n", i, cos(i_rad)); // csvとして出力します。     } } //---ここまで 4. 以下はCSVファイルをExcel 2013に取り込んでグラフにしたものです。 ・dat.csvをダブルクリックします。Excelが開くと思います。   開かない場合はdat.csvを右クリック→  「プログラムから開く」→「Excel」を選んでください。 ・セルA1:B361の範囲にデータが格納されます。 ・A1:B361を選択します。 ・「挿入」メニューの「グラフ」タブの「おすすめグラフ」をクリックします ・「グラフの挿入」ダイアログボックスが開きます。 ・「おすすめグラフ」タブの「折れ線」をクリックしてOKボタンを押します。   グラフが挿入されます。 ・縦軸を右クリックします。(-1.5~1.5の部分) ・「軸の書式設定...」をクリックします。 ・「軸のオプション」で   「最小値」を-1.0に設定します。   「最大値」を1.0に設定します。

画像

2人がナイス!しています