// PROGRAM example #include "TrueBASIC.h" int main(); void initial(double *y, double *x, double *delta_x, double *xmax); void Euler(double *y, double *x, double delta_x); int main() // 主プログラムの開始 { double delta_x, x, xmax, y; // 初期値とパラメータの設定 initial(&y, &x, &delta_x, &xmax); while(x <= xmax) { Euler(&y, &x, delta_x); // 簡単なオイラーのアルゴリズムを使用 printf("%12f %12f\n", x, y); } return 0; } // 主プログラムの終了 void initial(double *y, double *x, double *delta_x, double *xmax) { (*x) = 1; // x の初期値 (*y) = 1; // y の初期値 (*xmax) = 2; // x の最大値 (*delta_x) = 0.1; // 分割幅 printf(" x y \n"); // 見出し部分の表示 printf("\n"); // 空白行 printf("%12f %12f\n", (*x), (*y)); // 初期値の表示 } void Euler(double *y, double *x, double delta_x) { double change, slope; // わかりやすさのためだけに変数 slope と change を導入する slope = 2*(*x); // 区間の初めでの傾き change = slope*delta_x; // 区間における変化の計算 (*y) += change; // y の新しい値 (*x) += delta_x; // 区間の終りでの x の値 }