このディレクトリの索引 http://toro.2ch.net/test/read.cgi/tech/1349527750/338 # 7個のデータを入力し、中央地を表示するプログラムを作成して下さい # # 例 # 1番目の数字を入力してください: 13 # 2番目の数字を入力してください: 22 # ・・・ # 中央値は 22 です。 # # '7個のデータを入力し、中央地を表示する' :- '7個のデータを入力し'(_7個のデータ), 中央値を表示する(_7個のデータ). '7個のデータを入力し'(_7個のデータ) :- '7個のデータを'(_7個のデータ), 入力し(1,_7個のデータ),!. '7個のデータを'(_7個のデータ) :- length(_7個のデータ,7). 入力し(_何番目,[]) :- _何番目 > 7. 入力し(_何番目,[_データ|R]) :- writef('%t番目のデータを入力してください: ',[_何番目]), get_line(_データ), _何番目_2 is _何番目 + 1, 入力し(_何番目_2,R). 中央値を表示する(_7個のデータ) :- バブルソート(_7個のデータ,[_,_,_,_中央値,_,_,_]), 表示する(_中央値). バブルソート(L1,L2) :- 軽い泡はちょっと浮き上がる(L1,L3), 泡が浮き上がったら最初からやり直す(L3,L2),!. バブルソート(L,L) :- 浮き上がる泡がなくなったらバブルソート終了. 軽い泡はちょっと浮き上がる(L1,L3) :- append(L0,[_重い泡,_軽い泡|R],L1), _重い泡 @> _軽い泡, append(L0,[_軽い泡,_重い泡|R],L3). 泡が浮き上がったら最初からやり直す(L3,L2) :- バブルソート(L3,L2). 浮き上がる泡がなくなったらバブルソート終了. 表示する(_中央値) :- writef('中央値は %t です\n',[_中央値]).