2.6.1 $ F$ が実数値の場合

この場合は特に簡単である。例として $ F(x)=x/4+1$, $ N=100$ の場合のプ ログラムを具体的にあげよう。

配列を用いるのは分かりやすい。
配列を用いたプログラム

/*
 * prog1array-ansi.c
 */

#include <stdio.h>

#define N 100

int main(void)
{
    int j;
    double a[N+1], F(double);

    printf("a[0]: "); scanf("%lf", &a[0]);
    for (j = 0; j < N; j++) {
        a[j+1] = F(a[j]);
        printf("a[%d]=%g\n", j+1, a[j+1]);
    }
    return 0;
}

double F(double x)
{
    return 0.25 * x + 1.0;
}

ところが、残念なことに、 $ N$ が大きいときには、このプログラムの書き 方はあまり良くない。配列 a[] を記憶するために大きなメモリーが必 要になってしまう。そこで、次のようなプログラムを書くのが普通である。
配列を用いず、変数を書き換えて済ますプログラム

/*
 * prog1non-array.c
 */

#include <stdio.h>

#define N 100

int main(void)
{
    int j;
    double a, F(double);

    printf("a[0]: "); scanf("%lf", &a);
    for (j = 0; j < N; j++) {
        a = F(a);
        printf("a[%d]=%g\n", j+1, a);
    }
    return 0;
}

double F(double x)
{
    return 0.25 * x + 1.0;
}



桂田 祐史