関数の利用 / ファイルの入出力 / 関数の定義 / 再帰


 関数の利用

 Turbo CではANSIの規格に準拠したライブラリ関数が多数搭載されており、簡単な記述で利用することができる。
 ・命令語printfやscanfもCのコンパイラで定義されたライブラリ関数の一種
 ・ライブラリ関数を利用する場合は、その関数を定義したヘッダをインクルードする必要がある
 ・関数の型,引数の型に注意

  例) 余弦を求める関数
     #include <math.h>
     double cos(double x);  /* y=cos(x)とした場合、yとxはdouble型 */

 <ライブラリ関数の分類>
  a)入出力(コンソール,ファイル)
   printf, scanf, getch, fopen, ...
  b)文字・文字列
   atoi, itoa, ...
  c)メモリ(メモリ割当や解放)
  d)数値演算
   sin, cos, log, log10, ...
  c)機種依存(OSに依存)
   inportb, outportb, ...


 ファイルの入出力

 プログラムで扱う入力データや出力データが多い場合には、ファイルを使用することによってデータの作成や保存が容易となる。新たなファイルあるいは既存のファイルを指定するには fopen()命令を使用し、()内にファイルの名前と操作モードを記述する。また、実際の操作(ファイルの書き込み,読出し等)時においてファイルを区別する必要があるため、 fopen命令実行時にファイル識別子を合わせ記述するのが一般的である。

  例) FILE *fp
     fp=fopen("fout.txt","r");

 fpはファイル識別子であり、ファイルポインタとしてFILE *fpのように宣言しておく。上記の例では、fout.txtという名前のファイルが対象となり、そのファイルからデータの読出しを行うことを意図している。この識別子は、例えばファイルからデータの読出しを行う命令fscanfにおいて次のように記述し利用されることになる。

  例) int a,b;
     fscanf(fp,"%d %d",&a &b);

 この例では、先に指定したfpのファイルから整数型のデータ2つを読込み、変数a,bへ格納することを意味している。

 ファイル操作終了時には、命令語 fclose()を使用してファイルを閉じる必要がある。

  例) fclose(fp);


関数の定義

 プログラムで頻繁に使用される部分を関数として定義したり、機能別に関数化することによってプログラムの記述がスマートになり、利便性が上がる。関数はreturn命令により計算した値などを返すことが可能。

型指定子 関数名(仮引数の型)
{
   文
   return 式;
}


例)
int gokei(int a,int b,int c)
{
   int d;
   d=a+b+c;
   return d;
}

 関数gokei()には3つの整数の合計を計算する機能がある。3つの整数は、この関数を使用するにあたって、gokei(3,6,5);のような記述で与えられる。この関数内では、与えられた3,6,5の値を変数a,b,cで表現し、それらの和を変数dで表している。dの値は、return命令によって返される。dの値は、int型で定義されたgokei(3,6,5)と等価である


 再帰

 再帰関数呼び出しは、その関数内部で関数自身をコールして使用することをいう。一般に次のような形式をとる。

  function(仮引数宣言)
  {
    if (脱出条件)
      return;
    else
      function(実引数);
  }

  関数functionでは、脱出条件が成立(真)するまでfunction()を繰返し利用していることになる。


   演習問題一覧  / トップページ