このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1322562648/280
#  [1] 授業単元:C言語 
#  [2] 問題文(含コード&リンク):http://ime.nu/www1.axfc.net/uploader/Sc/so/298224 
#  
#  以下に与えるファイルdata.datを作業ディレクトリ内に作成し、data.datからデータを読み込み、
#  BMIを計算しBMI値を判定し、全員のデータを標準出力に出力し、更に男性のデータをdata2.txtという
#  名前のファイルに出力するプログラムを作成せよ。BMI判定は18.5未満なら1、18.5以上25未満なら2、
#  25以上30未満なら3、30以上なら4とする。BMIの計算では関数calc_bmiを各自作成して計算を行うこと。
#  尚、data.dat内のデータは左から名前、性別(M=男性、F=女性)、身長[cm]、体重[kg]を表す
#  ※data2.datへの出力の際は性別の記入は必要ない
#  
#  
#  data.dat
#  Andrew  M  38   180.5   105.2
#  Helen   F  23   171.9   65.1
#  Jane    F  31   172.4   75.4
#  John    M  19   186.6   78.3
#  Susan   F  27   168.1   62.7
#  Thomas  M  43   189.2   65.1
#  
#  
#  <作成したプログラムの実行結果>
#  『標準出力への出力結果』
#  名前	性別 	年齢 	身長[m] 	体重[kg] 	BMI 		BMI 判定
#  Andrew M 	38 	1.805000 	105.200000 	32.289501 	4
#  Helen 	F 	23 	1.719000 	65.100000 	22.030748 	2
#  Jane 	F 	31 	1.724000 	75.400000 	25.368619 	3
#  John 	M 	19 	1.866000 	78.300000 	22.487361 	2
#  Susan 	F 	27 	1.681000 	62.700000 	22.188713 	2
#  Thomas M 	43 	1.892000 	65.100000 	18.186064 	1
#  
#  『data2.txtへの出力結果』
#  Andrew 38 	1.805000 	105.200000 	32.289501 4
#  John 	19 	1.866000 	78.300000 	22.487361 2
#  Thomas 43 	1.892000 	65.100000 	18.186064 1
#  

'data.datからデータを読み込み、BMIを計算しBMI値を判定し、全員のデータを標準出力に出力し、更に男性のデータをdata2.txtという名前のファイルに出力する' :-
        write('名前        性別  年齢  身長[m]  体重[kg] BMI  BMI 判定\n'),
        get_split_lines('data1.txt',[' '],LL),
        append(_,[[_名前,_性別,_年齢,_身長,_体重]|R],LL),
        _BMI値 is _体重 / (_身長 * _身長),
        'BMI判定'(BMI,_BMI判定),
        writef('%14r %4r %4r %8r %6r %5r %2r\n',[_名前,_性別,_年齢,_身長,_体重,_BMI値,_BMI判定]),
        R = [].

'BMI判定'(_BMI値,1) :-
        _BMI値 < 18.5,!.
'BMI判定'(_BMI値,2) :-
        _BMI値 >= 18.5,
        _BMI値 < 25.0,!.
'BMI判定'(_BMI値,3) :-
        _BMI値 >= 25.0,
        _BMI値 < 30.0,!.
'BMI判定'(_BMI値,4) :-
        _BMI値 >= 30.0,!.,