表計算  平成31年春  (d)

基本情報難しすぎさん  
(No.1)
カと回答したのですが、カの相対(販売データ!A1,index,6)はどうして間違っているのでしょうか?  解説を見ても理解出来ない状態です。

indexでは駄目なのでしょうか?

2021.03.03 20:51
サラダバーさん 
(No.2)
そこのループに書かれている変数が、一体何が入っているのか言葉で理解するようにしたほうがいいです。
空欄dが入っているループのアルゴリズムを順番に見ていきます。
■iを1で初期化して、会員管理B1(つまり表のデータを使うなら3333)まで、プラス1する
  ↑販売データ中のi行目のデータの商品IDがB1(使うならABC1001)と同じかどうか
    同じなら
    ・memNo←販売データから会員IDが代入される
    ・index←memNoに代入された会員IDが、会員管理のセルA4から数えると何番目かを代入
    ・空欄d
    ・商品の最終販売日を代入
ざっくり見ると、以上です。
空欄dの処理が商品販売額を計算する処理であることはわかっていると思います。
では、商品販売額をどの表からとってきているかを考えてください。会員管理ではありません。販売データです。
仮にここに、会員IDが会員管理の表で上から数えて何番目にあるのかを入れたとして、販売データの行を1行目から3333行目まで捜索することができるでしょうか。できないはずです。
では、indexはどう使われているのか。問題文にある「1以上会員数以下の全ての整数 i に対して,sumTab[i,0]に会員番号を格納し」という言葉から推測するに、図4の例は本当に例でしかなく、実際は会員番号1001からすべての配列が用意されていて、だから上から数えて何番目にあるのかを知っておく必要があり、そこで使用されているのだということがわかります。


2021.03.03 21:14
サラダバーさん 
(No.3)
すいません、解説を急いでしまったせいで間違えました。
図4はsumtabに格納された配列を用いてワークシート"商品別管理"に格納した様子を示した例です。この例は正しいです。
訂正すると、sumtabという配列そのものには、会員番号1001から最後の会員番号が用意されていて、配列中の適切な位置に商品販売額を代入するために、上から数えて何番目にあるのかを知る必要がある、ということです。
2021.03.03 21:18
基本情報難しすぎさん  
(No.4)
サラダバーさん

お返事下さり誠にありがとうございます。
本当に助かります。
これから内容確認させて頂きます。
2021.03.03 21:53
基本情報難しすぎさん  
(No.5)
解説拝読しました。
変数のindexはワークシート会員管理で使われているため、販売データでは使えないということですね。かなり理解が進みました。
ありがとうございます。

変数は図ごとにそれぞれ別のものをつかうという認識で良いのでしょうか?

図1ドラえもんシートには、のび太、ジャイアン
図2サザエさんシートには
さざえさん、ますおさん、たらちゃん
の登場人物(変数)が出るとしたときに
図2にドラえもんは出れないのような形で理解して大丈夫でしょうか?

解いててもindexとかmemnoとか無味乾燥な言葉ばかり出てきてよく分からなくなってしまうため、問題解くときに変数を身近な言葉に置きかえて解いてみることも試してみたいと思います。

改めてアドバイス誠にありがとうございました。
2021.03.03 22:22
ミキサーさん 
(No.6)
違います。そうではありません。
図ごとに変数が決まっているという訳ではありません。
indexという変数には、言った通り、会員IDが会員管理の表から数えて上から何番目なのかが入っています。たとえば、1003なら、Indexは3になります。このindexという変数は、あくまで変数でしかないので、どの表においてもどのアルゴリズムにおいても使うことができます。  
私が、商品販売額を集計するのに使うのは会員管理ではなく販売データだと言ったことが誤解を産んでいると思います。
例えば会員数が222人だとして、販売データのデータ件数が3333件だとしましょう。そしてAという商品コードの会員ごとの商品販売額を集計するとします。
では、商品販売額を集計するには、どの表を用いるか。販売データです。となれば、販売データの表を1行目から、この行はAかどうかを調べていかないといけません。一見、indexという変数を用いても1行目から調べられそうだと思う可能性もありますが、無理です。設問にある実際のデータ例からもわかると通り、販売データのレコードは会員IDが1001から昇順に並んでいるわけではありません。完全にランダムです。1行目から3333行目まで、全て調べるにはどの変数を用いなければならないか、それを今一度よく考えてみてください。
2021.03.04 08:07
サラダバーさん 
(No.7)
多分オートフィルで名前が変わってしまいました。
サラダバーとミキサーはどっちも私です。
2021.03.04 13:33
基本情報難しすぎさん  
(No.8)
お忙しい中長文のメッセージを送ってくださりありがとうございます。
メッセージを読み熟考した結果、完全理解することが出来ました。
本当にありがとうございました。
2021.03.04 20:27

返信投稿用フォーム

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

その他のスレッド


Pagetop