このディレクトリの索引

% ★★ Java の宿題ここで答えます Part 67 ★★ #588 % 【 課題 】車、新幹線、飛行機の3つの交通手段を考える。 % 距離と、所要時間の最大限度(許容最長時間)を指定したとき、許容最長時間内に % 目的地に到着可能で、かつ、費用が一番安い交通手段を調べて表示しなさい。 % ただし、距離(km)と許容最長時間(h) は浮動小数点数としてキーボードから与える。 % 許容最長時間内に到着できる手段がない場合は、「不可能です」と表示する。 % それぞれの時速、料金、利用規定は % 車 : 60km/h、20 円/km、 % 新幹線 : 200km/h、50 円/km、距離が50km以上のときに利用可能 % 飛行機 : 1000km/h、35 円/km、距離が400km以上のときに利用可能 待機・乗降の合計 % で1 時間にかかるとする。 % :- op(250,xf,km). :- op(250,xf,h). :- op(250,xf,円). 交通手段(車). 交通手段(新幹線). 交通手段(飛行機). 時速(車,60 km / h). 時速(新幹線,200 km / h). 時速(飛行機,1000 km / h). 料金(車,20 円 / km). 料金(新幹線,50 円 / km). 料金(飛行機,35 円 / km). 利用規定(新幹線,_距離 km) :- _距離 >= 50. 利用規定(飛行機,_距離 km) :- _距離 >= 400. 利用規定(車,_距離 km) :- _距離 >= 0. 付加的な所要時間(飛行機,'待機・乗降の合計',1 h). 付加的な所要時間(車,なし,0 h). 付加的な所要時間(新幹線,なし,0 h). '許容最長時間内に目的地に到着可能で、かつ、費用が一番安い交通手段'(_距離 km,_許容最長時間 h,_交通手段) :- '許容最長時間内に目的地に到達可能で、'(_距離 km,_許容最長時間 h,_費用_交通手段ならび), 'かつ、費用が一番安い交通手段'(_費用_交通手段ならび,_交通手段),!. '許容最長時間内に目的地に到着可能で、かつ、費用が一番安い交通手段'(_,_,'不可能です'). '許容最長時間内に目的地に到達可能で、'(_距離 km,_許容最長時間 h,_費用_交通手段ならび) :- findall([_費用,_交通手段],( 許容時間内に到達可能な交通手段の費用(_距離 km,_許容最長時間 h,_交通手段,_費用)),_費用_交通手段ならび). 'かつ、費用が一番安い交通手段'(_費用_交通手段ならび,_交通手段) :- 一番安い(_費用_交通手段ならび,_費用,_交通手段),!. 許容時間内に到達可能な交通手段の費用(_距離 km,_許容最長時間 h,_交通手段,_費用) :- 許容時間内に到達可能な交通手段の(_距離 km,_許容最長時間 h,_交通手段), 費用(_交通手段,_距離 km,_費用). 許容時間内に到達可能な交通手段の(_距離 km,_許容最長時間 h,_交通手段) :- 交通手段(_交通手段), 許容時間内に到達可能(_交通手段,_距離 km,_許容最長時間 h). 費用(_交通手段,_距離 km,_費用) :- 料金(_交通手段,_料金 円 / km), _費用 is _料金 * _距離. 許容時間内に到達可能(_交通手段,_距離 km,_許容最長時間 h) :- 利用規定に適合する交通手段を使っての(_交通手段,_距離 km), 到達時間が(_交通手段,_距離 km,_到達時間 h), 許容最長時間内にある(_到達時間 h,_許容最長時間 h). 利用規定に適合する交通手段を使っての(_交通手段,_距離 km) :- 利用規定(_交通手段,_距離 km). 到達時間が(_交通手段,_距離 km,_到達時間 h) :- 時速(_交通手段,_時速 km / h), 付加的な所要時間(_交通手段,_,_付加的な所要時間 h), _到達時間 is (_距離 / _時速) + _付加的な所要時間. 許容最長時間内にある(_到達時間 h,_許容最長時間 h) :- _到達時間 =< _許容最長時間. 一番安い(_価格_交通手段ならび,_一番安い価格,_交通手段) :- select([_一番安い価格,_交通手段],_価格_交通手段ならび,_残り価格_交通手段ならび), forall(member([_価格,_],_残り価格_交通手段ならび),_価格 @>= _一番安い価格).