forループでの数値代入

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
50シーマ

forループでの数値代入

#1

投稿記事 by 50シーマ » 15年前

管理人様、先日は大変お世話になり感謝しております。
おかげである程度のプログラムを作ることができました。
しかし、行き詰ってしまったので質問さしてください。
大変貴重なスペースおかりします。

I=i0sin^2(2θ)sin^2(Δndπ/λ)

数値は θ=45° I0=1 Δndは500 800 1100 1400
λは400~800までの数値で計算しファイルに落としグラフ化することができました。
そのプログラムがこのようになりました。

#include <stdio.h>
#include <math.h>
int main(){
FILE *fp; /* ファイルポインタの宣言 */
fp = fopen("C:\\exam.txt", "w");//ファイルポインタを書き込みモード
double ns[4]={500.,800.,1100.,1400.};//⊿nd
double rs=400; //λ
double pi=3.141592653589793;
int i,n=4; // ns
int j,m=401; // rs
double arg; // sin(arg)
double snx; // sqrt(fij)
double f[4][401];
double ni,rj;
int res;
printf("番号を入力\n");
printf("1 : 直行ニコル\n");
printf("2 : 平行ニコル\n");
printf("3 : 直行ニコル2\n");
printf("4 : 平行ニコル2\n");
printf("5 : 直行ニコル3\n");
printf("6 : 平行ニコル3\n");
scanf("%d", &res);

for(i=0;i<n;i++){
ni = ns;
for(j=0;j<m;j++){
rj = rs+j;
arg = ni*pi/rj;
snx = sin(arg);
if(res == 1)
{
f[j] = snx*snx;
}
else if(res == 2)
{
f[j] = 1-snx*snx;
}
else if(res == 3)
{
f[j] = snx*snx*snx*snx;
}
else if(res == 4)
{
f[j] = 1-snx*snx*snx*snx;
}
      else if(res == 5)
{
f[j] = snx*snx*snx*snx*snx*snx;
}
else if(res == 6)
{
f[j] = 1-snx*snx*snx*snx*snx*snx;
}
}
}
fprintf(fp, "\t");
//Δnd
for(i=0;i<n;i++)
{
ni = ns;
printf("%5.0\t",ni);
fprintf(fp,"%5.0f\t", ni);

}
printf("\n");
fprintf(fp, "\n");
//波長の数値
for(j=0;j<m;j++)
{
rj = rs+j;
printf("%d\t",j+400);
fprintf(fp, "%d\t", j+400);

for(i=0;i<n;i++)//波長の数値ごとにΔndにおける透過強度を計算
{
printf("%5.3f\t",f[j]);
fprintf(fp, "%5.3f\t", f[j]);
}
printf("\n");
fprintf(fp,"\n");
}
fclose(fp);//ファイルを閉じる

return 0;
}

このプログラムから⊿nとdの数値を入力できるようにしたいのでるがどのようにすればいいですか?
数値を入力しても⊿ndがforループでつかえるようにしたいのです。
最初のdの値は1.5なのですがどのようにしたらいいのかアドバイスもらえたらたすかります。
協力おねがいいたします。

50シーマ

Re:forループでの数値代入

#2

投稿記事 by 50シーマ » 15年前

追加です。
最初は⊿nとdに数値を入れ
⊿n*dを500 800 1100 1400の数値をだしプログラムが起動させたいです。
よろしくおねがいします。

たかぎ

Re:forループでの数値代入

#3

投稿記事 by たかぎ » 15年前

まずはお約束ですので...
[flash 600,100]http://dixq.net/flash/kiyaku4.swf[/flash]

閉鎖

“C言語何でも質問掲示板” へ戻る