next up previous contents
Next: 【演習問題】 2段ソートの練習 Up: 3 差分リストの使い方 Previous: 【演習問題】 データ記録方法の練習

【演習問題】 ソートの練習

  下記のような重複のある数列を入力として, 重複なしの昇順のソートをして, 数と 出現回数を出力せよ.

     [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2,7,9,5,0,2,
        8,8,4,1,9,7,1,6,9,3,9,9,3,7,5,1,0,5,8,2,0,9,7,4,9,4,4,5,9,2,3,0,7,
        8,1,6,4,0,6,2,8,6,2,0,8,9,9,8,6,2,8,0,3,4,8,2,5,3,4,2,1,1,7,0,6,9]
なおデータは, 下図のようにソース上でゴール data:sort(X) と指定し,data.kl1を一緒にコンパイルすることで得られる.)

ソース上で,

   :- module main.
   main :- data:sort(X), my_sort(X).
   my_sort(X) :- ...  .

にて, 次のようにコンパイル実行する.

   % klic my_prog.kl1 data.kl1

なお, data.kl1 の中身は次のようになっている.

  :- module data.
  sort(X) :- true |
     X = [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2,7,9,5,0,2,
            8,8,4,1,9,7,1,6,9,3,9,9,3,7,5,1,0,5,8,2,0,9,7,4,9,4,4,5,9,2,3,0,7,
            8,1,6,4,0,6,2,8,6,2,0,8,9,9,8,6,2,8,0,3,4,8,2,5,3,4,2,1,1,7,0,6,9].



next up previous contents
Next: 【演習問題】 2段ソートの練習 Up: 3 差分リストの使い方 Previous: 【演習問題】 データ記録方法の練習



KLIC