このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/325
#  [1] 授業単元:プログラミング演習 
#  [2] 問題文: 
#  http://ime.nu/codepad.org/m1ElsrJZ 
#include 
#  
#  int main(void)
#  {
#   int x[5] = {30, 25, 33, 15, 22};
#   int *p;
#   int i;
#   p = x;
#   printf("*P  = %d\n", *p);
#   for(i = 0; i < 5; i++)
#   {
#    printf("*(p+%d) = %d\n", i, *(p + i));
#   }
#   return 0;
#  }
#  上記のプログラムをx[5] = {54, 56, 64, 42, 58};として初期化し 
#  最大値を出力するプログラムをポインタ変数を用いて作成せよ。 
#  

'x[5] = {54, 56, 64, 42, 58};として初期化し最大値を出力する' :-
        'x[5] = {54, 56, 64, 42, 58};として初期化し'(_x),
        最大値を(_x,_最大値),
        出力する(_最大値).

'x[5] = {54, 56, 64, 42, 58};として初期化し'(_x) :-
        _x = [54,56,64,42,58].        

最大値を([A|R],_最大値) :-
        最大値を(R,A,_最大値).

最大値を([],_最大値,_最大値).
最大値を([A|R],_最大値_1,_最大値) :-
        A >= _最大値_1,
        最大値を(R,_最大値_2,_最大値),!.
最大値を([_|R],_最大値_1,_最大値) :-
        最大値を(R,_最大値_1,_最大値),!.