第12回:応用課題1 (12/16)

今回は,これまでに習った知識を総動員して,一つのプログラムを作りましょう.


第11回演習の解答例


演習課題

温度の計測に用いる熱電対は,異なる二種の金属を接続すると温度に応じた熱起電力を生じる現象を利用しています.あらかじめ検定された熱起電力表を用いて,計測した起電力から温度を求めます.では,一般的な熱電対であるK型熱電対を例に,熱起電力表をファイル(ktype.txt)から読み取り,計測された電圧をキーボードから入力すると,電圧に対する温度を求めるというプログラムを作成してみましょう.

[STEP 1]
与えられた起電力のファイルには,0度Cから200度Cまで順番に10度毎の起電力のデータが21個の実数で入っています.
このデータをファイルから配列に読み取るには,以前作成した関数 void read(int *data) を,実数のデータを読める様に改良しましょう.
データを読み取れたら,画面に対応する温度と併せて表示して確認しよう.

[0] 0.000 0度
[1] 0.397 10度
[2] 0.798 20度
[3] 1.203 30度
.....
[20] 8.138 200度

[STEP 2]
キーボードから,計測された電圧値を入力する部分を作成しよう.

ここで,起電力は,10度毎にしか与えられていないので,その間の温度は線形補間によって求めます.

[STEP 3]
まずは,入力された電圧値をxとすると,xより小さいか等しい値のうちもっとも大きい値x0と,xより大きい値のうちもっとも小さい値x1の要素番号を探そう.
これをプログラムするには,xと配列の値を順に比較して,「x >= 配列のi番目の値」となるまでiを増やしていきます.このときの,iの値がx0の値の要素番号,i+1の値がx1の要素番号になります.

電圧を入力[mV] 0.812
2番目と3番目の間です.

[STEP 4]
さて,いよいよ山場です.線形補間の関数を作ろう.関数に,x0,y0,x1,y1 そして xを渡すと,yを戻り値として戻すようにしよう.

[STEP 5 option!]

この順に作ってみてください.

このプログラムは,熱電対に限らずとびとびのデータしかないときに,その間の値を補間するのに役立ちます.学生実験で良いことがありますよ.


授業終了時までに,どこまで完成したか明記して,プログラムをoh-meijiシステムを使って提出すること.
(提出期限を厳守し,提出用の回に提出しないと採点を行わない)