演習課題1-13-2
問題
摂氏温度(C:セルシウス)、華氏温度(F:ファーレンハイト)、絶対温度(K:ケルビン)の間の換算を行う関数を作成し、それらを使って3つの温度間の換算を行うプログラムを作成せよ。
[実行例]
温度と単位(C,F,K)を入れて下さい=20.1C
20.1C=68.18F=293.25K
-----
温度と単位(C,F,K)を入れて下さい=60.5F
60.5F=15.8333C=288.983K
-----
温度と単位(C,F,K)を入れて下さい=80.3K
80.3K=-192.85C=-315.13F
アルゴリズム
- メイン関数
- 1. 温度と単位を受け取る
- 2. 単位が'C'ならば、入力した温度を使って、華氏温度と絶対温度への換算を行い表示する
- 3. 単位が'F'ならば、入力した温度を使って、摂氏温度と絶対温度への換算を行い表示する
- 4. 単位が'K'ならば、入力した温度を使って、摂氏温度と華氏温度への換算を行い表示する
- 摂氏温度から華氏温度への換算関数 double convertCtoF(double
degree);
- 1. 引数の摂氏温度を華氏温度に換算して戻り値として返す
- 華氏温度から摂氏温度への換算関数 double
convertFtoC(double degree);
- 1. 引数の華氏温度を摂氏温度に換算して戻り値として返す
- 摂氏温度から絶対温度への換算関数 double
convertCtoK(double degree);
- 1. 引数の摂氏温度を絶対温度に換算して戻り値として返す
- 絶対温度から摂氏温度への換算関数 double convertKtoC(double
degree);
- 1. 引数の絶対温度を摂氏温度に換算して戻り値として返す
考え方
- 実数型と文字型を連続して受け取ることは、以下のコードでできる。このコードでは、入力ストリームから変数degreeの値を実数型(double)として解釈できるところまで読む。解釈できない部分はストリームに残る。次に残ったストリームから、変数unitの値を文字型(char)として読む。
double degree;
char unit;
cin >> degree >> unit;
- 絶対温度と華氏温度の間の換算関数は用意しない。その間の換算は摂氏温度を経由することで行なう(F→C→K、K→C→F)「convertCtoK(convertFtoC(degree))など」。
- 換算式は以下のとおりである。
なお、「9/5」は整数対整数の演算とみなされて答えが1になる。実数計算にするには、少なくとも一方を実数指定すること「9.0/5.0」。

プログラム
- Visual C++を使って、新しいプロジェクトenshu1_13_2を作れ。
- convert.cppを追加し、アルゴリズムをプログラム化せよ。
- 入力したプログラムをコンパイルして、誤りを修正せよ。
- 修正が完了したプログラムを実行せよ。