#include <stdio.h>
#include <math.h>

#define R 3000       // 抵抗 (Ω)
#define L 0.001      // インダクタンス (H)
#define E 5          // 電源電圧 (V)
#define TIME_STEP 0.001 // 時間ステップ (秒)
#define MAX_TIME 0.1   // 最大シミュレーション時間 (秒)

int main() {
    double current = 0.0;    // 電流
    double time = 0.0;       // 時間
    double tau = L / R;      // 時定数 (秒)
    double dt = TIME_STEP;   // 時間刻み (秒)
    double voltage = E;      // 電圧

    // ヘッダを表示
    printf("Time (s), Current (A)\n");

    // 時間ごとに電流を計算
    while (time <= MAX_TIME) {
        // 電流の変化（I(t) = V/R * (1 - exp(-t/τ))）
        current = (voltage / R) * (1 - exp(-time / tau));
        
        // 結果を表示
        printf("%lf, %lf\n", time, current);
        
        // 時間を進める
        time += dt;
    }

    printf("計算が終了しました。\n");

    return 0;
}
