このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1258158172/368
# [1] 授業単元: プログラミング実習
# [2] 問題文(含コード&リンク):
# http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10180.txt
#
# 〜課題3〜
# 関数voold putstar(int n)を作成して、長方形を表示するプログラムを作成せよ。
#
# (実行例)
# 長方形を作りましょう。
# 横幅:5
# 高さ:3
# *****
# *****
# *****
#

長方形を作りましょう :-
        横幅(_横幅),
        高さ(_高さ),
        幅表示を高さ分繰り返す(_横幅,_高さ).

幅表示を高さ分繰り返す(_横幅,_高さ) :-
        for(1,M,_高さ),
        幅表示(_横幅),
        M = _高さ.

横幅(_横幅) :-
        催促付き零を含まない自然数入力('横幅 : ',_横幅).

高さ(_高さ) :-
        催促付き零を含まない自然数入力('高さ : ',_高さ).

幅表示(_横幅) :-
        for(1,N,_横幅),
        write('*'),
        N = _横幅,
        nl.

催促付き零を含まない自然数入力(_催促,_自然数) :-
        writef('%t',[_催促]),
        get_line(Line),
        催促付き零を含まない自然数入力診断(Line,_自然数),!.
催促付き零を含まない自然数入力(_催促,_自然数) :-
        催促付き零を含まない自然数入力(_催促,_自然数).

催促付き零を含まない自然数入力診断(Line,_自然数) :-
        atom_to_term(Line,_自然数,_),
        零を含まない自然数(_自然数),!.
催促付き零を含まない自然数入力診断(Line,_自然数) :-
        writef('入力された %t からは自然数が得られません。再入力をお願いします。\n',[Line]),
        fail.

零を含まない自然数(_自然数) :-
        integer(_自然数),
        \+(_自然数 == 0).