ページ 11

おたすけ

Posted: 2007年1月30日(火) 21:07
by よし☆かわ
100 '***********************************
110 ' 計算プログラム
120 '平均・分散・標準偏差・相関係数
150 '************************************


160 #include <stdio.h>
170 #include <math.h>
180
190 VOID MAIN()
200 {
210 FILE *fp,*fp2,*fp3;
220 int a,k;
230 double x[512],sum=0,average,s=0,dispersion,hensa,r=0,Ra,F=0,Rk[300];
240 char infile [30],outfile[30],outfile2[30];
250
260 '*ファイル名*
270 printf("計算するファイル名は??\n");
280 scanf("%s",infile);
290
300 '*ファイルを開く*
310
320 if(!(fp=fopen(infile<"r"))){
330 printf("ファイルを開く事ができません\n");
340 return ;
350 }
360
370 '*数値をファイルから読み込む*
380 a=1;
390 while(fscanf(fp,"%1f",&x[a])!=EOF){
400 a++;
410
420 }
430
440
450 fclose(fp);
460
470
480 for(a=; a<512; a++){
490 x[a]=x[a]*0.01
500 print("%f\n",x[a]);
510 }
520 '*平均*
530 for(a = 1;a < 512; a++)
540 sum += x[a];
550
560
570 average = sum / 512;
580
590 '*変動・分散・標準偏差*
600 for(a = 1; a < 512; a++)
610 s +=pow((x[a] - average), 2.0);
620
630
640 dispersion = s / (512-1);
650
660 hennsa = sqrt(dispersion);
670
680 '*中心平均粗さ*
690 for(a = 1; a < 512; a++)
700 r += sqrt (pow((x[a] - average),2.0));
710
720
730 Ra = r / 512;
740
750
760 '*相関係数*
770 for(k = 0; k < 200;k++){
780 for(a = 1; a < 512 - k ; a++){
790 F += (x[a+k] - average)*(x[a] - average);
800 Rk[k] = (F/(512-k))/(s/512);
810
820
830 }
840 F=0;
850 }
860
870 '*結果表示*
880 printf ("平均値 = %f\n",average);
890 printf ("変 動 = %f\n",s);
900 printf ("分 散 = %f\n",dispersion);
910 printf ("標準偏差 = %f\n",hennsa);
920 printf ("中心平均粗さ = %f\n",Ra);
930 for(k=0;k<200;k++){
940 printf ("相関係数(k=%d) = %f\n",k,Rk[k]);
950 }
960
970 '/*データ出力ファイル名*/
980 printf("データ出力するファイル名は?\n");
990 scanf("%s",outfile);
1000
1010 '/*ファイルへ出力*/
1020 if(!(fp2 = fopen(outfile,"w"))) {
1030 printf("ファイルをオープンできません\n");
1040 return ;
1050 }
106このプログラムを渡されたのですがファイルの入力の仕方が分かりません
だれかおたすけください

Re:おたすけ

Posted: 2007年1月30日(火) 21:35
by box
複数の掲示板からの回答を管理するのは大変でしょう。
いずれかに一本化しませんか?

Re:おたすけ

Posted: 2007年1月30日(火) 21:45
by むつ
実行時のパラメータの記述方法とか、データファイルの用意の仕方という事でしょうか?

Re:おたすけ

Posted: 2007年1月31日(水) 10:01
by asd
#むつさんの投稿が質問者からのものだと勘違いして変なレスをつけてしまいました。
#申し訳ありませんです。

boxさんが仰っているのは同じ内容の質問スレッドを他の掲示板と並行して立てると、
情報共有ができず片方の掲示板で解決したのに他方の掲示板では解決したのを知らずに
ずっと未解決のまま放置されてしまうと言うことだと思います。

ちなみにこの掲示板の規約でも禁止されています。
http://dixq.net/board/board.html
>禁止行為
>・全く同じ質問をあらゆるサイトにコピーペーストして質問(マルチポスト)しないこと。

以下の掲示板と並行して進めるのはいかがかと思いますので、

・こちらで続けるか向こうで続けるかを決める
・使わないほうの掲示板へは続行する掲示板への誘導をする
・問題が解決したらマルチポストした全ての掲示板にどの様に解決したか報告する

を実践されてはいかがでしょうか。

マルチポスト先
http://www.shunzei.com/cgibin/lounge/ki ... 351&page=0

Re:おたすけ

Posted: 2007年1月31日(水) 10:14
by keichan
回答者の多くは複数の掲示板を巡回しています。
どこか一箇所で質問されるのと複数の箇所で質問されるのとで回答速度に余り違いはないと思います。
(むしろ複数の箇所で質問された方がレスポンスが悪いかも)

おたすけ

Posted: 2007年1月31日(水) 12:22
by よし☆かわ
失礼しました。他のスレに載せた物はすべて削除しました。
そのためこちらでご教授よろしくお願いします。

プログラムでわからないのは
1まず、このプログラムで間違えはありませんか?
2ファイル名のの入出力をどこに入れるか?
です。よろしくお願いします。

Re:おたすけ

Posted: 2007年1月31日(水) 12:57
by box
> 1まず、このプログラムで間違えはありませんか?

間違いがあるかないかを調べる手っ取り早い方法は、
コンパイルできる環境が近くにあればそこでコンパイルしてみることです。

コンパイル時にエラーが出れば、ソースコードに間違いのあることがわかります。

コンパイル時にエラーが出なければ、とりあえず実行ファイルは正しく作れます。
ただし、思ったとおりに動くかどうかは、まだわかりません。
どんなプログラムでも、一度でうまく動くことはそうありません。
そこで、デバッグという作業を行ない、うまく動かない箇所を修正することとなります。