このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1276873238/825
#  誰かこれ教えてください… 
#   
#  問題1 
#  最初に「文字列を入力してください.」と表示して文字列を読みこみ、 
#  次に「数字を入力してください.」と表示して数字を読み込み、 
#  入力文字列を入力した数字の回数分だけ一行ずつ表示するプログラムを 
#  ex07-3-03.rbで保存して実行してください. 
#    
#  問題2 
#  問題1で作成したプログラムは、数字の読み込みについてバグがある 
#  可能性があります(数字でないものが入力されたとき、 
#  どうなるでしょうか?).もしバグがある場合、 
#  それを修正したプログラムをex07-3-04.rbで保存して実行してください. 
# 

'最初に「文字列を入力してください.」と表示して文字列を読みこみ、次に「数字を入力してください.」と表示して数字を読み込み、入力文字列を入力した数字の回数分だけ一行ずつ表示する' :-
        '最初に「文字列を入力してください.」と表示して文字列を読みこみ'(_文字列),
        '次に「数字を入力してください.」と表示して数字を読み込み'(_数字),
        '入力文字列を入力した数字の回数分だけ一行ずつ表示する'(_文字列,_数字).

'最初に「文字列を入力してください.」と表示して文字列を読みこみ'(_文字列) :-
        '最初に「文字列を入力してください.」と表示して',
        文字列を読み込み(_文字列).

'最初に「文字列を入力してください.」と表示して' :-
        write('文字列を入力してください. ').

文字列を読み込み(_文字列) :-
        get_line(_文字列).

'次に「数字を入力してください.」と表示して数字を読み込み'(_数字) :-
        '次に「数字を入力してください.」と表示して',
        数字を読み込み(_数字).

'次に「数字を入力してください.」と表示して' :-
        write('数字を入力してください. ').

数字を読み込み(_数字) :-
        数を得る('',_数字).

'入力文字列を入力した数字の回数分だけ一行ずつ表示する'(_文字列,_数字) :-
        between(1,_数字,N),
        writef('%t\n',[_文字列]),
        N = _数字.