令和元年秋期問13 表計算
りょりょさん
(No.1)
設問2のfについてです
出荷条件を満たさない箱の欄を消す必要性と、ループ内の値を消すプログラムは分かったのですが、なぜ条件を満たさないと判断できたのかがわかりません。解説には「ちょうど出荷条件を満たすとは限らない」と書いてありますが、それならもし満たした場合でも消してしまうことには奈良いのかと思いました。
私が何か勘違いしているかもしれないので、詳しく教えていただけると幸いです。
出荷条件を満たさない箱の欄を消す必要性と、ループ内の値を消すプログラムは分かったのですが、なぜ条件を満たさないと判断できたのかがわかりません。解説には「ちょうど出荷条件を満たすとは限らない」と書いてありますが、それならもし満たした場合でも消してしまうことには奈良いのかと思いました。
私が何か勘違いしているかもしれないので、詳しく教えていただけると幸いです。
2021.06.06 18:06
かなさん
★FE ブロンズマイスター
(No.2)
変数 j が作業中の箱連番を管理するために使われているというのはわかりますね?
これは言い換えると、ワークシート“重量計算表”の行に関する変数とも言えます。
ちょうど出荷条件を満たす場合は、
▲ 論理和(相対(F1,j,0)≧5,CurrentColumn=4)
┃・j ← j + 1
┃・CurrentColumn ← 0
▼
の処理で j が j + 1 に更新されたら、あとは、「相対(集計表!E1, i, 0) ≠ '並'」なメロンしか残っていないため、ワークシートに追記することなく繰り返しを抜けます。
この時、更新後の j に関する行は、一切の入力処理がされていないため、null になります。
逆に、出荷条件を満たさない大箱ができてしまう場合は、最後の箱が「論理和(相対(F1,j,0)≧5,CurrentColumn=4)」を満たせません。
その場合、変数 j は + 1 されることなく、現在作業中の行(かつ出荷条件を満たさない大箱を示す行)を指ししめしたまま、繰り返しを抜けます。
作業中の行は、d に関する解答群の答え「相対(F1,j,0) ← 相対(F1,j,0)+相対(集計表!B1,i,0)」が1回以上実行されているため、合計重量が記載されています。
「相対(F1, j, 0) ≠ null」の条件文によって、最後に「j ← j + 1 」されて終了したか、そうでないか、つまり「ちょうど出荷条件を満たすか、否か」がわかるのです。
これは言い換えると、ワークシート“重量計算表”の行に関する変数とも言えます。
ちょうど出荷条件を満たす場合は、
▲ 論理和(相対(F1,j,0)≧5,CurrentColumn=4)
┃・j ← j + 1
┃・CurrentColumn ← 0
▼
の処理で j が j + 1 に更新されたら、あとは、「相対(集計表!E1, i, 0) ≠ '並'」なメロンしか残っていないため、ワークシートに追記することなく繰り返しを抜けます。
この時、更新後の j に関する行は、一切の入力処理がされていないため、null になります。
逆に、出荷条件を満たさない大箱ができてしまう場合は、最後の箱が「論理和(相対(F1,j,0)≧5,CurrentColumn=4)」を満たせません。
その場合、変数 j は + 1 されることなく、現在作業中の行(かつ出荷条件を満たさない大箱を示す行)を指ししめしたまま、繰り返しを抜けます。
作業中の行は、d に関する解答群の答え「相対(F1,j,0) ← 相対(F1,j,0)+相対(集計表!B1,i,0)」が1回以上実行されているため、合計重量が記載されています。
「相対(F1, j, 0) ≠ null」の条件文によって、最後に「j ← j + 1 」されて終了したか、そうでないか、つまり「ちょうど出荷条件を満たすか、否か」がわかるのです。
2021.06.06 19:31
りょりょさん
(No.3)
なるほど、わかりました!
教えてもらったこと確認しながらも一度見直そうと思います。詳しくかつ丁寧なご説明ありがとうございました!
教えてもらったこと確認しながらも一度見直そうと思います。詳しくかつ丁寧なご説明ありがとうございました!
2021.06.06 20:24
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告