このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 132代目 #759 # [1] 授業単元:C応用 # [2] 問題文(含コード&リンク): http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10244.txt # # 関数DeleteThresholdを作成し、Threshold(閾値)の値をscanfで読み込み、 # 学生aからdの英語と数学の平均点と閾値を比較し、 # 閾値以下の学生をリストから削除するプログラムを作成する。 # 関数DeleteThreshold内で関数Printを使用する。 # また、関数Printの次の行に、〜人削除の場合は「〜人削除しました」と入力する。 # 全員削除の場合は「全員削除しました」だけを入力する。 英語(a,70). 英語(b,79). 英語(c,90). 英語(d,69). 数学(a,80). 数学(b,63). 数学(c,55). 数学(d,80). 閾値以下の学生をリストから削除する(_判定後の学生リスト) :- 閾値を読み込む(_閾値), 閾値以下の学生をリストから削除する(_閾値,_判定後の学生リスト). 閾値を読み込む(_閾値) :- 整数を読み込む(_閾値). 閾値以下の学生をリストから削除する(_閾値,_判定後の学生リスト) :- '学生の人数、閾値に達しない学生を除いた学生リスト、削除した人数を求める'(_閾値,_判定後の学生リスト,_学生の人数,_閾値に達しない学生を除いた学生の人数), 削除メッセージを表示する(_学生の人数,_閾値に達しない学生を除いた学生の人数). '学生の人数、閾値に達しない学生を除いた学生リスト、削除した人数を求める'(_閾値,_判定後の学生リスト,_学生の人数,_閾値に達しない学生を除いた学生の人数) :- 二科目の平均ならびを得る(_学生,_二科目の平均ならび), 閾値に達しない学生を除く学生ならび(_閾値,_二科目の平均ならび,_閾値に達しない学生を除く学生ならび), '学生の人数、閾値に達しない学生を除いた学生の人数'(_二科目の平均ならび,_判定後の学生ならび,_学生の人数,_閾値に達しない学生を除いた学生の人数). 二科目の平均ならびを得る(_学生,_二科目の平均ならび) :- findall([_学生,_二科目の平均],( 学生の英語と数学の点数を読み込み二科目の平均を求める(_学生,_二科目の平均)),_二科目の平均ならび). 学生の英語と数学の点数を読み込み二科目の平均を求める(_学生,_二科目の平均) :- 英語と数学の点数を読み込み(_学生,_英語,_数学), 二科目の平均を求める(_英語,_数学,_二科目の平均). 英語と数学の点数を読み込み(_学生,_英語,_数学) :- 英語(_学生,_英語), 数学(_学生,_数学). 二科目の平均を求める(_英語,_数学,_二科目の平均) :- _二科目の平均 is (_英語 + _数学) / 2. 閾値に達しない学生を除く学生ならび(_閾値,_二科目の平均ならび,_閾値に達しない学生を除く学生ならび) :- findall(_学生,( 平均点が閾値に達しない(_閾値,_学生,_二科目の平均ならび)),_判定後の学生ならび). 平均点が閾値に達しない(_閾値,_学生,_二科目の平均ならび) :- member([_学生,_平均点],_二科目の平均ならび), _平均点 >= _閾値. '学生の人数、閾値に達しない学生を除いた学生の人数'(_二科目の平均ならび,_判定後の学生ならび,_学生の人数,_閾値に達しない学生を除いた学生の人数) :- length(_二科目の平均ならび,_学生の人数), length(_閾値に達しない学生を除く学生ならび,_閾値に達しない学生を除いた学生の人数). 削除メッセージを表示する(_学生の人数,_閾値に達しない学生を除いた学生の人数) :- 削除メッセージ(_学生の人数,_閾値に達しない学生を除いた学生の人数,_メッセージ), writef('%w\n',[_メッセージ]). 削除メッセージ(Len,Len,'全員削除しました。') :- !. 削除メッセージ(_学生の人数,_閾値に達しない学生を除いた学生の人数,_メッセージ) :- 削除した人数を計算してそれを含めたメッセージ文とする(_学生の人数,_閾値に達しない学生を除いた学生の人数,_メッセージ). 削除した人数を計算してそれを含めたメッセージ文とする(_学生の人数,_閾値に達しない学生を除いた学生の人数,_メッセージ) :- _削除人数 is _学生の人数 - _閾値に達しない学生を除いた学生の人数, atomic_list_concat([_削除人数,人削除しました。],_メッセージ). 整数を読み込む(_整数) :- 行入力(_行), atom_number(_行,_整数), integer(_整数). 行入力(_行) :- read_line_to_codes(current_input,_コードならび), atom_codes(_行,_コードならび).