◆このページの動画のほとんどは、補習で説明した内容と同じです。
◆質問についてはTOPページ(《情報Ⅰ》概要)のフォームかロイロノートを使用してください。
◇各分野のキーワードの関連
◇プログラミングに関する対策の必要性
◇繰返し処理
*□を x から y まで z ずつ増やしながら繰り返す:
*~~の間繰り返す:
・九九の 7 の段を表示するプログラム
・ユークリッドの互除法のアルゴリズム
◇分岐処理(多分岐処理)
*多分岐処理のフローチャート
*分岐処理による多分岐処理の表記例
*多分岐処理の表記例
◇配列
*配列に格納した値の合計と平均を求めるプログラムの例
◇繰返し処理を使って配列の要素の平均を求める(約7分)
◇配列、繰返し処理、多分岐処理をつかった「じゃんけんゲーム」(約13分)
*5/2の時点では後半の「じゃんけんゲーム」については、補習では説明できていません
◇ 配列と二重ループによる処理を簡単な例で説明
◇アルゴリズムとプログラミング04(単純なすごろくのプログラムの問題)
*繰返し処理、分岐処理
◇アルゴリズムとプログラミング05(配列の要素を取り出すプログラムの問題)
*配列、繰返し処理、並べ替え
◇モデル化とシミュレーション02(待ち行列の問題)
*待ち行列、グラフの読み取り
■ プログラミングの問題は、最初に全体の概要や基本事項の説明等があります。問題概要では「変数」「配列」「分岐」「繰返し(for、while)」、「関数」が使われそうかどうか、考えながら読み進めるといいと思います。ただし、説明がやたら長い場合もあるので、解答に不要な部分(登場人物の感想やプログラムを作ろうとした背景等)は、読み飛ばすようにしましょう。大切なのは、どんなことを実行しようとしているか、そのための手順をどう考えているか、です。
■ 問1は、試験の概要に基づいたプログラムを考えるというようなことが説明されていますが、これは問2以降で問われます。問1の問題は、会話文の前の問題文にある「配列」の添字と要素との関係が理解できているかどうか、確認する問題になってます。
解説では、手順を確認しましたが、実際の解答場面では、問1の時点でそこまで細かく考えておく必要はありません。なんとなくこんな感じだろうという程度で全く問題ありません。
■ 問2は具体的なプログラミングに関する問題です。問1で説明されていた「概要」に基づて処理を行います。
問1で、答案と正解、それぞれの配点が配列に格納されているので、それを使用します。
〈1〉tokutenという変数を準備する(初期値は0)。これは合計点を格納するための変数。
〈2〉繰返し処理で、問題ごとに正誤を確認し、正解の場合tokutenにその問題の配点を加算。
加算する場合は、tokutenに(tokuten+その問題の配点)を代入。
〈3〉最終的なtokutenの値が基準点以上であれば「合格」、そうでなければ「不合格」とする。
■ 〔オ〕は、正解かどうかを確認するために比較する配列Touanと配列Seikaiの添字を選ぶ問題。上の行の繰返し処理で i が 0 から 13(要素数(Touan)-1)まで変化させており、それがそれぞれの配列の添字として機能するので、〔オ〕には i が当てはまります。
■ 〔キ〕は、合格の条件なので、tokuten >= 60 が当てはまります。
■ 問3は問2のプログラムを変更する問題です。問2のプログラムが分かっていることが前提となります。
■ 〔ク〕は、新たに追加された条件が整理できたかどうかと確認しています。もともとあった「条件a)」は満たしていることが分かっているので、新しい「条件b)」を満たしているか確認します。配列はきれいな表になってはいませんので、少し注意が必要ですが、問1では合計点を計算していますので、同じ要領です。
■ 新たな条件を満たすかどうかを見るためには、分野ごとの得点をまとめる必要があります。そのため Bunya_tokuten という要素が3つの配列を用意し、この配列に分野ごとの合計点を格納するようにします。問題文に「配列 Bunya の添字は配列 Touan や Seikai の添字に対応させます。配列 Bunya の要素には、分野Aの場合は 0、分野Bの場合は 1、分野Cの場合は 2 をそれぞれ設定」しますとあります。配列 Touan やSeikai の添字が問題番号だと考えると、それは 0~13 になりますが、そのうち 0~5 を分野A(0)、 6~9 を分野B(1)、10~13 を分野C(2)とするということです。そのように設定するために、Bunya の要素は添字 0~5 の要素が全て 0 、 6~9 の要素が全て 1 、10~13 の要素が全て 2 となっています。
■ 〔ケ〕は hantei に初期値として何を代入しておくかということを考える問題です。(18)で hantei に『合格』が代入され、(19)で hantei が表示されています。(18)で hantei に『合格』が代入されるのは、(13)と(17)の条件を満たした場合です。この条件は当然「条件a)」と「条件b)」であり、その2つの条件を満たすと『合格』となる訳ですが、満たさなければ『不合格』です。条件を満たさない場合は『合格』は代入されず、(19)で『不合格』が表示されなければいけません。つまり、『合格』が代入されるまで hantei には『不合格』が格納されているということになり、〔ケ〕は『不合格』です。
■ (11)では Bunya_tokuten の特定の要素を更新します。 i が 0 から 13 まで変化するということは、 i は要素 が14ある配列の添字です。Bunya_tokuten は各分野の得点を格納するための配列ですから、要素は3つしか ありません。 Bunya_tokuten[〔コ〕] = Bunya_tokuten[〔コ〕] + Haiten[i] 正解だった場合 Haiten[0]~Haiten[5] を加算するのは Bunya_tokuten[0] で、 Haiten[6]~ Haiten[9] を加算するのは Bunya_tokuten[1]、 Haiten[10]~Haiten[13] を加算するのは Bunya_tokuten[2]です。Bunya の要素は、添字が 0~5 の間 0 で、6~9 の間が 1 、10~13 の間が 2 となります。ここで Bunya_tokuten の添字として適切なのは、その Bunya の要素ということになりますので、 〔コ〕は Bunya[i] となります。 ■ (17)の条件は「条件b)」ですので、「3つの分野のすべてが基準点以上」となります。(17)には もし i == 〔サ〕ならば: とあります。3つ分野のすべてが基準点以上であれば i == 〔サ〕 となるということです。 (14)で i には 0 が代入されています。(16)では、その i に 1 を繰返し加算しています。その繰返しの条件が、 i < 要素数(Bunya_kijun) and Bunya_tokuten[i] >= Bunya_kijun[i] の間 です。 i < 要素数(Bunya_kijun) は回数ですので、あまり気に数必要はありません。この(15)(16)は Bunya_tokuten[i] >= Bunya_kijun[i] であれば、 i に 1 を繰返し加算するとなりますので、 i は分野の基 準を(Aから連続して)クリアした回数となります。そのようなことから、〔サ〕は 3 となる選択肢を選ぶことになり ます。