ic2 の第7回の課題で用いる diffeq.c に誤りがありました。 元のファイルは訂正しましたので、再度コピーして使用して下さい。 ic2 の第7回の課題で用いる diffeq.c に誤りがありました。 元のファイルは訂正しましたので、再度コピーして使用して下さい。 なお、ファイルは、~eenagai/ic2/diffeq.c からコピーするのが 便利です。 それ以外の方法扱う時はファイルの保存時の日本語コードが EUC になるようにに注意して下さい。 誤りの内容は、以下の通りです。誤りは、43行目にあります。 行 番 号 ↓ 41: fprintf(stderr, "constant voltage source ? ( in volts )\n"); 42: fprintf(stderr, "定電圧源の値( 単位はボルト ) ?\n"); 43:誤 scanf("%lf", &tend ); 43:正 scanf("%lf", &e ); 44: 45: fprintf(stderr, "initial value of v ( in volts )\n"); 46: fprintf(stderr, "v の初期値( 単位はボルト ) ?\n"); 47: scanf("%lf", &v0 ); 48: 49: fprintf(stderr, "end time ? ( in second )\n"); 50: fprintf(stderr, "計算終了時間 ? ( 単位は秒 )\n"); 51: scanf("%lf", &tend ); 既にコピーしていて、修正する場合は 51 行目と間違えないように して下さい。 誤ったままのプログラムをコンパイル実行した場合は、 tend は、 51 行目で正しく再度設定されますが、e は正しい値が入力されない ことになります。 教育系で実行した場合は、 e の値はたまたま0 となり、今回の 課題の値と一致しているので、結果に誤りは無いようです。 データファイルの先頭行の最後の部分に、 E = xxxxxxxxx V の形で計算に使用した値が残っているはずなので、これで計算に用 いた E の値が確認できます。 しかし結果が正しかったのはあくまで偶然であり、0以外の値を入力 した場合の誤った結果となりますので、修正済のプログラムを使用 して下さい。 #指摘してくれた e1 の学生さんありがとう