このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1307166756/564
#  [1] 授業単元:プログラミング  
#  [2] 問題文(含コード&リンク): 
#  キーボードから入力した数だけの長さのint型の配列を用意して、 
#  同じくキーボードから値を入力し、表示するプログラムkadai9-1.cを作りなさい。 
#  但し長さlengthのint型の配列の内容を表示する関数 
#  void display_array(int *data, int length)を定義して使用すること。 
#   実行例: 
#   gcc kadai9-1.c 
#   ./a.out 
#   3 <- 長さを入力 
#   1 3 4  <-データ入力 
#   1 <-ここから表示 
#   3 
#   4  
#    
#  

'キーボードから入力した数だけの長さのint型の配列を用意して、同じくキーボードから値を入力し、表示する' :-
        キーボードから入力した数(_入力した数),
        'だけの長さのint型の配列を用意して'(_入力した数,_ならび),
        同じくキーボードから値を入力し(_ならび),
        表示する(_ならび).

キーボードから入力した数(_入力した数) :-
        get_line(Line),
        整数入力診断(Line,_入力した数),!.
キーボードから入力した数(_入力した数) :- キーボードから入力した数(_入力した数) .

整数入力診断(Line,_整数) :-
        atom_to_term(Line,_整数,_),
        integer(_整数),!.
整数入力診断(Line,_整数) :-
        writef('入力された %t からは適切な整数が得られませんでした。再入力をお願いします。\n',[Line]),
        fail.

'だけの長さのint型の配列を用意して'(_入力した数,_ならび) :-
        length(_ならび,_入力した数).

同じくキーボードから値を入力し(_ならび) :-
        一行で数を入力する(ならび),!.
同じくキーボードから値を入力し(_ならび) :-
        同じくキーボードから値を入力し(_ならび).

一行で数を入力する(_ならび) :-
        get_line(Line),
        一行で数を入力診断(Line,_ならび),!.

一行で数を入力診断(Line,_ならび) :-
        get_split_line([' ',','],_ならび),
        すべて整数(_ならび),!.
一行で数を入力診断(Line,_ならび) :-
        length(_ならび,N),
        writef('入力された %t から %t個の整数を得られませんでした。再入力をお願いします。\n',[Line,N]),
        fail.

数を入力する(_数) :-
        get_line(Line),
        整数数入力診断(Line,_数),!.
数を入力する(_数) :- 整数を入力する(_数).

表示する(_ならび) :-
        append(_,[_値|R],_ならび),
        writef('%t\n',[_値]),
        R = [].