平成26年度秋期 表計算 問13

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
こうさん  
(No.1)
平成26年度秋期 表計算 問13の答えが理解できなく悩んでおります。

B5 ← 切り上げ(dist1/C5,0) *C5
B6 ← 切り上げ((dist2-B5)/C6)*C6+B5
とありますが、
問題文を読むと求めた距離の小数点以下を切り上げた値とかいてあるので、
B5 ← 切り上げ(dist1)
B6 ← 切り上げ(dist2)
でもよいのではと思うのですが、
これだといけない理由は何でしょうか。

ご教授お願いします。
2018.10.14 00:50
こうさん  
(No.2)
そして、-B5を引いている理由もよくわかりません。
宜しくお願いします。
2018.10.14 00:52
助け人さん 
FE ゴールドマイスター
(No.3)
まず、B5

図3のように、C5が1であれば、切り上げ(dist1/C5,0)*C5と切り上げ(dist1)は一致します。しかし、C5が2だったらどうなるでしょう?
dist1が9のとき、
切り上げ(dist1/C5,0)*C5=10
切り上げ(dist1)=9
となり、一致しません。正しいのは前者です。

次に、B6

B5が10で、dist2が14のとき、
切り上げ((dist2-B5)/C6)*C6+B5=16
切り上げ(dist2)=14
となり、一致しません。正しいのは前者です。
B5を引いているのは、区分番号2の距離として、dist2(=14)がB5(=10)を超えている分(=4)を求めるためです。
2018.10.14 12:41
こうさん  
(No.4)
助け人さん、ご教授ありがとうございます。
一致しない理由は理解できたのですが、なぜ前者が正しいのか問題文から読み取れませんでした。
前者が正しい理由教えていただけますでしょうか。
2018.10.14 15:46
助け人さん 
FE ゴールドマイスター
(No.5)
(表計算の説明〕
(6)距離運賃は,決められた四つの距離の範囲で乗車距離を区分し,・・・

(1)例えば,乗車距離が11.6kmである駅コード"004"から駅コード"001"までの運賃は,・・・
に書いてある内容から、そうなります。

なお、(1)は、(7)の誤りですね。


2018.10.14 16:37
こうさん  
(No.6)
ご返信ありがとうございます。
確かにその問題文に記載されている、式と
マクロの式は似ておりますが、

そこに記載されているのは、運賃の計算であり、今回f,gで求めているのは上限距離ではないので、別だと考えておりました。
運賃の計算と距離の計算は同様のようにするという話がどこかにあるのでしょうか…

何度もすみません…
2018.10.14 18:00
助け人さん 
FE ゴールドマイスター
(No.7)
疑問にうまく答えられないかもしれません。

本文の
20円×切上げ((11.6km-10km)÷3km,0)=20円
は運賃の計算例であり、マクロ内の
B6 ← 切上げ((dist2-B5)/C6,0)*C6+B5
は上限距離の計算式ですが、本文中の仕様からして、当然ながら形は似てきます。
2018.10.14 18:53
こうさん  
(No.8)
ご返信ありがとうありがとうございます。
なぜか似てくるのですね…

最初の方に戻りますが、やはりなぜ前者が正しくなるのかイマイチピンときておりません。
なぜdist1やdist2を単位距離で割っているのか疑問になっております。

すみませんが、宜しくお願いします。
2018.10.14 19:58
助け人さん 
FE ゴールドマイスター
(No.9)
ある距離の運賃は、その距離が単位距離の何倍かを求め、その値に単位運賃を掛けて計算します。

例えば、ある距離xが7kmで、単位距離が3km、単位運賃が20円の場合、7を3で割って切り上げて3、その3に20円を掛けて60円と計算します。

0<x≦3  ・・・  20円
3<x≦6  ・・・  40円
6<x≦9  ・・・  60円



となります。
2018.10.14 20:14
こうさん  
(No.10)
ご指摘いただいた運賃計算はその通りなのですが、
上限距離の計算で、
dist1 を単位距離を除算して切り上げし、
そのあと単位距離を乗算している理由がわからなく困っております。


質問の仕方がまずいでしょうか…
すみませんがお願いします。
2018.10.14 20:48
助け人さん 
FE ゴールドマイスター
(No.11)
この投稿は投稿者により削除されました。(2018.10.14 21:34)
2018.10.14 21:34
助け人さん 
FE ゴールドマイスター
(No.12)
こうさんの粘り強いご質問で、dist1に関する問題ミスに気付く新発見がありました。

まず、dist2を説明しておきます。

設問2の(2)②に
「区分番号1の新たな上限距離に区分番号2の単位距離の倍数を加えた値でかつ,①で求めた距離以上となる最小値を,区分番号2の新たな上限距離とする。」
とあります。これから、
B6 ← 切上げ((dist2 - B5) / C6, 0) * C6 + B5
が導けます。

次に、dist1

設問2の(1)②に
「求めた距離の小数点以下を切り上げた値を,区分番号1の新たな上限距離とする。」
とあります。これから、
B5 ← 切上げ(dist1, 0)
となるべきです。ところが、マクロは、
B5 ← 切上げ(dist1/C5, 0) * C5
となっています。C5がたまたま1だから同じ結果になります。もし、
B5 ← 切上げ(dist1/C5, 0) * C5
としたいなら、設問2の(1)②は、
「区分番号1の単位距離の倍数でかつ,①で求めた距離以上となる最小値を,区分番号1の新たな上限距離とする。」
とすべきです。問題文のミスであると私は思います。
2018.10.14 21:35
こうさん  
(No.13)
ありがとうございます。

まずdist2について、
助け人さんのアドバイスを読んでほぼ理解できました。
問題文のみからの情報で答えの数式が作れない…となっていて、
問題文から選択肢をみると当てはまるのが1つしかなさそうなので、テスト本番はそういう選択肢の選び方もあると思うようにしようかな思いました。


dist1については、そうですよね…
僕もなんか記述ないなーと思っていて、自分の理解不足なのかと思っていたのですが、そうではなさそうで少し一安心でした。

長くやりとりありがとうございました。
とても助かりました。テスト頑張ります。
2018.10.15 00:51
なたさん 
(No.14)
横から失礼します。

もう解決済みかもしれませんが、
設問1の時点で(6)③より
「区分距離の端数は単位距離に切り上げ,単位距離ごとに単位運賃を加算する。」
と書いてあるので問題文通りでいいと思うのですがいかがでしょうか?
2018.10.15 10:04
なたさん 
(No.15)
例を出したほうがわかりやすいですね。

例えば、
区分番号1、区分番号2の単位距離が2になり、区分番号1の上限距離が9、乗車距離が11.6となる場合、
運賃は区分番号1で10km分、区分番号2で4km分となり実際の乗車距離との差が単位距離以上になることがあります。

果たして、これは容認できるバグでしょうか?
2018.10.15 10:53

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop