このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1245853701/75
# [1] 授業単元: C
# [2] 問題文(含コード&リンク):
# キーボードから入力された1以上の整数nについて、次の例に示すように行番号と*を表示するプログラムを作成せよ
# 。また、0や負の数が入力された場合はプログラムが終了するようにせよ。
# 表示結果の例
# 正の整数:6
# 1******
# 2 *****
# 3    ****
# 4     ***
# 5        **
# 6          *


'キーボードから入力された1以上の整数nについて、次の例に示すように行番号と*を表示するプログラムを作成せよ。また、0や負の数が入力された場合はプログラムが終了するようにせよ。表示結果の例 正の整数:6 1****** 2 ***** 3    **** 4     *** 5        ** 6          *'(N) :-
        'キーボードから入力された1以上の整数n'(_n),
        length(L,_n),
        forall((append(L1,L2,L),
                not(L2=[])),
                行表示(L1,L2,L)).

'キーボードから入力された1以上の整数n'(_n) :-
        整数を得る('正の整数',_n >= 1,_n).

行表示(L1,L2,L) :-
        all(L1,'  '),
        all(L2,'*'),
        length([_|L1],_nth1),
        atomic_list_concat(L,_空白と星文字列),
        writef('%t %t\n',[_nth1,_空白と星文字列]).

all([],_).
all([A|R],A) :- all(R,A).