平成29年秋期 午後問13  表計算

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
will1101さん  
(No.1)
https://www.fe-siken.com/kakomon/29_aki/pm13.html
マクロ部分がわかりません。

・log_line ← 1
■相対ログ(ログ!A1, log_line, 2)≠ null
・count_line ← 1
・log_url ←相対(ログ!A1, log_line, 2)
・count_url ← 相対(A1, count_line, 0)

この部分では比較対象のURLを格納するものだと思いますが、
ワークシート:アクセス先集計の説明(2)では
『マクロ実行前のセルA2~B9999にはあらかじめ空地を入力しておく。』
とあります。

すなわち、count_url = null  となっているはず?
そうすると、設問dのループに入らず、
設問eの分岐条件がtrueで
・相対(A1, count_line, 0) ← log_url
・相対(A1, count_line, 1) ← 1

・log_line ← log_line + 1
でループの頭に戻る。

今度はcount_urlがnullじゃないので
ループdに入るもののcount_urlがnullに上書きされて
ループをでて
設問eの分岐条件がtrue
の繰り返しになってしまう。

これだとアクセス回数をカウントする設問fの処理が
全く行われないことになってしまうので
どこかで勘違いをしていると思うのですが
どなたかご指摘いただけないでしょうか?

2019.10.18 18:44
シェイシェイ先生さん 
(No.2)
試しに、ワークシートログの最初の1行目と次の2行目のURLが同じとしてトレースしてみてください。2回目のループで空欄fが実行されるはずです。

アクセス回数をカウントする設問fの処理が行われるのは、ワークシートログのURLに同じURLが2回目以降に出てきた時に行われます。
なので、最初の内は、URLが被らなければ新たなURLをワークシートアクセス先集計にどんどん追加していく作業になります。なので設問eの分岐条件がtrueの繰り返しになる確率が高いです。
2019.10.18 21:08
will1101さん  
(No.3)
シェイシェイ先生さん、ありがとうございます。
理解できました。

ただ、設問dのループの繰り返しがムダにものすごい数になるのですね。
そこがミスリードのポイントだったと思います。

『ログ』の該当URLを『アクセス先集計』に蓄積されたURLと比較して
一致すればアクセス回数を増やし、無ければそのURLを蓄積するという流れだったら
迷いはしなかったんだろうなと思います。
そのほうが効率的な気がしますし。
2019.10.18 22:55

返信投稿用フォーム

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

その他のスレッド


Pagetop