十進数で入力されたデータを 各種の精度の浮動小数点型の変数に格納し、 それを各種の二進十進変換を経て印字させてみよ。
プログラム例 , 実行結果例 , 実行ファイル例: /class/mce/NumAnalysis/xmp01d
このプログラムは、 ちょっとしたデータ入力を必要とする場合に、 コマンド行からデータを引き取る方法の例を示している。
関数 strtold は文字列で表現されたデータを long double 型の浮動小数点数に
変換するときのお薦めの関数である。
同目的のもっと簡便な他の関数もあり、
この授業のプログラム例の中でそれらを使っている箇所もあるが、
エラー処理などの機能まで含めると この関数が最も評判が良い。
十進数で入力されたデータを 各種の精度の浮動小数点型の変数に格納し、 あらかじめ C で準備されている 隣の浮動小数点数を見つける関数を使って、 隣の数そのものと、その数との差の比を求めよ。
プログラム例 , 実行結果例 , 実行ファイル例: /class/mce/NumAnalysis/xmp01e
このプログラムは、 5 行の計算結果を出力する。
左の列が単精度、中央の列が倍精度、右の列が拡張精度で処理を行なった場合の表示である。
また、中央の 3 行目が、入力された値を表示したもので、
その上の 2 行目は入力された値のマイナス側の隣の値を示したもの、
さらにその上は、これら二つの値の差を入力した値で割った相対誤差である。
下側の 4 行目は、同様に、入力された値のプラス側の隣の値を示したもの、
さらにその下の 5 行目は、これら二つの値の差を入力した値で割った相対誤差である。
この問題でも、文字列で表現されたデータを long double 型の浮動小数点数に変換するのに 関数 strtold を使っている。
あらかじめ個数の判明していない、多数のデータ
x1, x2, ... , xn
が与えられている。
データを逐次読み込んで、
データの終りを検出したら、
それらの平均と標準偏差を出力せよ。
プログラム例 , 実行結果例 , 実行ファイル例: /class/mce/NumAnalysis/xmp01a
このプログラムでは、 関数 scanf がファイルの終りを検出した場合には EOF という値を返してくるという機能を利用して、 入力データが続く限り処理を行うようにしている。
キーボードからファイルの終りを示すためには、 最後のデータを打ち込んで改行キーを打ったあとにすぐ続けて コントロールキーを押しながら D のキーを押す。 このようにコントロールキーと同時に D キーを押すことを 通常 Control-D, Ctrl-D あるいは ^D と表現する。
同様なキーストロークとして、 プログラムが止まらなくなった場合には、 コントロールキーを押しながら C のキー ( 表記するなら Control-C, Ctrl-C あるいは ^C ) を押す。