%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

コンピュータ演習 : プログラムの作成 (補足)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{コンパイラについて}
例えば C コンパイラは、unix のものと Windows 上の Visual C++ が
利用できるが、使い方がかなり違う。

\subsection{unixでプログラム}
Windows で eXceed を実行すると、パソコンがワークステーション
のX端末になる。この場合には、昨年度の共通教育の情報処理(演習)
で実習したように、vi エディタなどでソースファイルを作成し、
cc コマンドでコンパイルすれば良い。テキストの通りである。

ただしこの場合には、結果の表示方法(図示)に苦労する。 unix上で 
gnuplot を使うのがひとつの方法であるが、もうひとつのやり方として、
共有ディスクを利用してファイルを Windows に持ってきて、
Exel で図示することが可能であろう。

\subsection{Windowsでプログラム}
Visual C++ を起動して[ファイル]-[新規作成]とすると、新しいウインドウ
が開くので、そこでソースプログラムを入力する。編集作業は通常のワープ
ロと同様の感覚で操作できる。そのあとソースファイルをフロッピーディス
クに保存してから(ファイル名は .c で終るようにする)、
[プロジェクト]-[リビルド]とする。
新しいウインドウが開き、コンパイルとリンクの様子が逐次表示される。
エラーがなければ、[プロジェクト]-[実行]でプログラムを実行する。

ただしこの場合には、コマンドラインが存在しない様なので、パラメータを
対話的に入力し、結果をファイルに書き出すように修正したプログラムを用いる。

Exel での結果の図示はテキストの通りである。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実在気体の状態方程式(修正版)}
パラメータを対話形式で入力し、さらに計算結果を決められたファイルに書き
出すように修正したプログラムを図\ref{prg:vdw2}に示す。
もちろん unix 上でもこのままで動作する。

\begin{figure} 
\caption{van der Waals の実在気体の状態方程式のプログラムの修正版.}
\label{prg:vdw2}

#include
#include

void main(){
  char s[80];
  float T, a, b,  n, R,  p, V;
  FILE* fp;

  fp=fopen("output.dat", "w");
  R=8.31451; /* J mol^-1 K^-1 */
  n=1.0; /* mol */

  fprintf(stderr, "\n Please input TEMPERATURE (T/K) :");
  scanf(" %s", s);
  T=atof(s);
  fprintf(stderr, " Please input a/(atom L^2 mol^-2) :");
  scanf(" %s", s);
  a=atof(s);
  fprintf(stderr, " Please input b/(L mol^-1) :");
  scanf(" %s", s);
  b=atof(s);
  fprintf(stderr, "\n T/K=%f, a/(atom L^2 mol^-2)=%f, b/(L mol^-1)=%f \n", T, a, b);
  fprintf(stderr, " Is that right (y/n) ?");
  scanf("%s",s);

  if ('n'==s[0]) {
    fprintf(stderr, "\n TRY AGAIN \n"); 
    exit(20);
  }

  for(V=0; V<10; V+=0.01) {
    if (V!=0) {
      p=(n*R*T)/(V-n*b)-a*(n/V)*(n/V);
      if (p>0) 
        fprintf(fp, "%f  %f  %f\n", p, V, 1/V);  
    }
  }

}

\end{figure}