2015 年度「計算数学」 2015-12-11

§11.1 画面表示関数の視覚化

(11.1.1) ここは時間に余裕のある人向けである。

(11.1.2) §2.8 の画面制御エスケープシーケンスを利用し, 次のようなスタイルで配列の要素を画面に描く関数 void print4(void) を作ってみよう。

#####
###
#######
#########

これは a[1] が 5, a[2] が 3, a[3] が 7, a[4] が 9 を示す。 「#」の数で要素を表しているのである。

void print4(void) {
    int i, j;

    printf("\033[1;1H");  /* 左上隅に移動する */
    for (i = 1; i <= N ; i++) {
        /* ここで a[i] 個の「#」を出力 */
        printf("\033[K"); /* 行末まで削除 */
        printf("\n");     /* 次の行へ移動 */
    }
}

ヒープソートと組み合わせて使うとおもしろい。 N の値は 60 ぐらいがよさそうである。

(11.1.3) §2.8 に書いた, 「画面全体を消去」と「行末まで削除」のエスケープシーケンスは間違っていたようです。 すみません。


岩瀬順一