平成30年秋期午後問8

oriさん  
(No.1)
https://www.fe-siken.com/kakomon/30_aki/pm08.html
Priorityの配列の値はどこから持ってきているのですか。また、なぜ配列の値に対して+2、+1、+1、+2としているのですか。1時間ほど考えたのですがわかりませんでした。なので教えていただけるとありがたいです。どうぞよろしくお願いいたします。
2020.12.10 11:20
sumakkoさん 
FE シルバーマイスター
(No.2)
oriさんにご理解いただけるように、うまく言えるがどうかわかりませんが。
たとえば、人間が問題例の2×(34-(5+67)÷8)を、まず最初に(5+67)を計算し、その和を8で割り、34からその商を引き、2にその答えを掛けるという順序でやると思います。
人間が無意識でやっている計算を、アルゴリズムでやろうというのが、この問題ですね。
(  )内を最優先、+、-より、×、÷優先でやりますよね。
Priorityという変数は、当に、日常に使うプライオリティと同じで、優先順位を表しています。
Priorityの配列の値はプログラム(解析処理の部分)の①→、②→の部分から来ています。
ここでは、chr(character:文字)が"+"か"―"の場合は1をプラスし、"×"か"÷"の場合は、
2をプラスする式になっています。これは、"×"か"÷"は、"+"か"―"よりも優先度を高くする
ためです。
(更に(  )内を最優先するために、nestに10をプラスしています。これは10でなくても演算が保証されるのではないかというのがaの問題ですね)
-
2020.12.10 12:51
かなさん 
FE ブロンズマイスター
(No.3)
もうすでにsumakkoさんがおっしゃっていますが、priorityは「優先度」という意味です。ここでは、「計算する順番」ということで名づけられています。
変数の役割がよくわからない場合は、変数名で検索してみてください。そうすれば、変数がどのような役割をするかなんとなくわかるのではないでしょうか?

これらが正しい順番で計算するために用意されていると分かれば、どういう数字が入るべきなのかというのもわかってくると思います。
2020.12.16 13:41

返信投稿用フォーム

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

その他のスレッド


Pagetop