このディレクトリの索引

# 出典 :: ★★ Java の宿題ここで答えます Part 68 ★★ #463 # 【課題】 # http://ime.nu/www51.tok2.com/home/rg550/cgi-bin/hosoku/img0047.zip # 【課題1】 # 実行例のようにキーボードから文字列を読み込み、文字型の配列に一文字づつ格納 # した後、整列し(順番はどちらでもかまいません)、出力するプログラムを # 作成しなさい。 # 【課題2】 # 0から9までの整数乱数を100個発生させ、実行例のようにその出現分布を棒グラフと # 値で出力するプログラムを作成しなさい。また、100個の乱数の平均値も合わせて # 出力しなさい。 # ただし、0から9 それぞれの個数を数えるための変数に必ず配列を用いてください。 # (出現個数カウント用の変数を10個用意してはいけません。) 例えば、出現個数 # カウント用の配列 count[] を用意すると、 count[0] に0が出現した回数が # 格納される。もし0が10回出現した場合、count[0]=10となる。) % 課題1 '実行例のようにキーボードから文字列を読み込み、文字型の配列に一文字づつ格納した後、整列し(順番はどちらでもかまいません)、出力する' :- 'キーボードから文字列を読み込み、文字型の配列に一文字づつ格納した後、'(_文字ならび), 整列し(_文字ならび,_整列した文字ならび), 出力する(_整列した文字ならび). 'キーボードから文字列を読み込み、文字型の配列に一文字づつ格納した後、'(_文字ならび) :- 行入力(user_input,_行), atom_chars(_行,_文字ならび). 行入力(_入力,_行) :- read_line_to_codes(_入力,_コードならび), atom_codes(_行,_コードならび). 整列し(_文字ならび,_整列した文字ならび) :- msort(_文字ならび,_整列した文字ならび). 出力する(_整列した文字ならび) :- atom_chars(_文字列,_整列した文字ならび). writef('%w\n',[_文字列]). % 課題2 '0から9までの整数乱数を100個発生させ、実行例のようにその出現分布を棒グラフと値で出力する' :- '0から9までの整数乱数を100個発生させ、'(_整数乱数ならび), その出現分布を棒グラフと値で出力する(_整数乱数ならび). '0から9までの整数乱数を100個発生させ、'(_整数乱数ならび) :- findnsols(100,_整数乱数,'0から9までの整数乱数を'(_整数乱数),_整数乱数ならび),!. '0から9までの整数乱数を'(_整数乱数) :- repeat, _整数乱数 is random(10). その出現分布を棒グラフと値で出力する(_整数乱数ならび) :- その出現分布を(_整数乱数ならび,_出現個数カウント用ならび), 棒グラフと値で出力する(_整数乱数ならび,_出現個数カウント用ならび). その出現分布を(_整数乱数ならび,_出現個数カウント用ならび) :- 出現個数カウント用ならびの生成(_出現個数カウント用ならび_1), 出現分布(_整数乱数ならび,_出現個数カウント用ならび_1,_出現個数カウント用ならび). 出現個数カウント用ならびの生成(_出現個数カウント用ならび) :- findall([N,[]],between(0,9,N),_出現個数カウント用ならび). 出現分布([],_出現個数カウント用ならび,_出現個数カウント用ならび). 出現分布(_整数乱数ならび,_出現個数カウント用ならび_1,_出現個数カウント用ならび) :- 出現分布をカウントして行く(_整数乱数ならび,_出現個数カウント用ならび_1,_出現個数カウント用ならび). 出現分布をカウントして行く([N|R],_出現個数カウント用ならび_1,_出現個数カウント用ならび). 出現個数カウント用ならびの更新(N,_出現個数カウント用ならび_1,_出現個数カウント用ならび_2), 出現分布(R,_出現個数カウント用ならび_2,_出現個数カウント用ならび). 出現個数カウント用ならびの更新(N,_出現個数カウント用ならび_1,_出現個数カウント用ならび_2) :- select([N,_度数,_星ならび],_出現個数カウント用ならび_1,[N,[*|_星ならび]],_出現個数カウント用ならび_2). 棒グラフと値で出力する(_出現個数カウント用ならび) :- forall( '0から9まで星ならびを得てその度数をカウントする'(_0から9まで,_星ならび,_度数), 出力する(_0から9まで,_星ならび,_度数)). '0から9まで星ならびを得てその度数をカウントする'(_0から9まで,_星ならび,_度数) :- member([_0から9まで,_星ならび],_出現個数カウント用ならび), length(_星ならび,_度数). 出力する(_0から9まで,_星ならび,_度数) :- writef(' %w: %w %w\n',[_0から9まで,_星ならび,_度数])).