このディレクトリの索引

# 出典 :: # [1] 授業単元: # [2] 問題文(含コード&リンク): # 試合で自分のチームが勝つ・負ける・引き分けるの予想を、10人に予想してもらってプログラムに入力する。 # 予想した人が男性の場合は M を入力し、女性の場合は W を入力する。 # 勝ちを予想した場合は 整数1 を入力し、負けを予想した場合は 整数 2 を入力し、引き分けを予想した場合は 整数 0 を入力する。 # それら10人分の予想結果を、「 勝ち1・引き分け0・負け2 」に男女別に集計し表示するプログラムを、 # # 構造体 # struct datatype # { # char sex;// 男女の性別、男性 M、女性 W # int expectation;// 勝ち 1、負け 2、引き分け 0 # } # # を利用して作成せよ # '試合で自分のチームが勝つ・負ける・引き分けるの予想を、10人に予想してもらってプログラムに入力する。予想した人が男性の場合は M を入力し、女性の場合は W を入力する。勝ちを予想した場合は 整数1 を入力し、負けを予想した場合は 整数 2 を入力し、引き分けを予想した場合は 整数 0 を入力する。 それら10人分の予想結果を、「 勝ち1・引き分け0・負け2 」に男女別に集計し表示する' :- '試合で自分のチームが勝つ・負ける・引き分けるの予想を、10人に予想してもらってプログラムに入力する。予想した人が男性の場合は M を入力し、女性の場合は W を入力する。勝ちを予想した場合は 整数1 を入力し、負けを予想した場合は 整数 2 を入力し、引き分けを予想した場合は 整数 0 を入力する。'(_10人の予想ならび), 'それら10人分の予想結果を、「 勝ち1・引き分け0・負け2 」に男女別に集計し表示する'(_10人の予想ならび). '試合で自分のチームが勝つ・負ける・引き分けるの予想を、10人に予想してもらってプログラムに入力する。予想した人が男性の場合は M を入力し、女性の場合は W を入力する。勝ちを予想した場合は 整数1 を入力し、負けを予想した場合は 整数 2 を入力し、引き分けを予想した場合は 整数 0 を入力する。'(_10人の予想ならび) :- findnsols([_性別,_予想],10,( '予想を入力する。予想した人が男性の場合は M を入力し、女性の場合は W を入力する。勝ちを予想した場合は 整数1 を入力し、負けを予想した場合は 整数 2 を入力し、引き分けを予想した場合は 整数 0 を入力する。'(_性別,_予想)),_10人の予想ならび),!. '予想を入力する。予想した人が男性の場合は M を入力し、女性の場合は W を入力する。勝ちを予想した場合は 整数1 を入力し、負けを予想した場合は 整数 2 を入力し、引き分けを予想した場合は 整数 0 を入力する。'(_性別,_予想) :- write('性別を入力してください(M or F) : '), 行入力(_性別), 整数を得る('勝ち=1, 負け=2, 引き分け=0 を入力してください',between(0,2,_予想),_予想). 'それら10人分の予想結果を、「 勝ち1・引き分け0・負け2 」に男女別に集計し表示する'(_10人の予想ならび) :- 'それら10人分の予想結果を、「 勝ち1・引き分け0・負け2 」に男女別に集計し'(_10人の予想ならび,_予想結果ならび), 表示する(_予想結果ならび). 'それら10人分の予想結果を、「 勝ち1・引き分け0・負け2 」に男女別に集計し'(_10人の予想ならび,_予想結果ならび) :- findall([_性別,_勝ち合計,_引き分け合計,_負け合計],( '男女別に「 勝ち1・引き分け0・負け2 」を集計し'(_性別,_勝ち合計,_引き分け合計,_負け合計)),_予想結果ならび). '男女別に「 勝ち1・引き分け0・負け2 」を集計し'(_性別,_勝ち合計,_引き分け合計,_負け合計) :- 男女別に(_性別), '「 勝ち1・引き分け0・負け2 」を集計し'(_性別,_勝ち合計,_引き分け合計,_負け合計). 男女別に(_性別):- member(_性別,['M','F']). '「 勝ち1・引き分け0・負け2 」を集計し'(_性別,_勝ち合計,_引き分け合計,_負け合計) :- 勝ち1合計(_10人の予想ならび,_性別,_勝ち合計), 引き分け0合計(_10人の予想ならび,_性別,_引き分け合計), 負け2合計(_10人の予想ならび,_性別,_負け合計). 勝ち1合計(_10人の予想ならび,_性別,_勝ち):- 度数(member([_性別,1],_10人の予想ならび),_勝ち). 引き分け0合計(_10人の予想ならび,_性別,_引き分け):- 度数(member([_性別,0],_10人の予想ならび),_引き分け). 負け2合計(_10人の予想ならび,_性別,_負け):- 度数(member([_性別,2],_10人の予想ならび),_負け). 表示する(_予想結果ならび):- forall(member([_性別,_勝ち,_引き分け,_負け]_予想結果ならび), writef('%w 勝ち=%w,引き分け=%w,負け=%w\n',[_性別,_勝ち,_引き分け,_負け])). 度数(_目標,_度数) :- findall(1,_目標,L), length(L,_度数). 行入力(_行) :- read_line_to_codes(current_input,Codes), atom_codes(_行,Codes). % 整数を得る/3