コンピュータ演習II 第06回 ドリル(授業中に解いて提出)¶

この問題集は、授業中に、解説を聞きながら自分の手を動かして解く 練習です。第06回の教材で学んだ for 文の基本、合計・カウント、最大値・最小値 を、各節 1〜3 問ずつ練習します。

各問は「好きな値で入力を作り、こう処理してください」という形です。入力の値は自分で自由に決めてかまいません。

進め方は次のとおりです。

  • 配布の 解答用テンプレート 2xBxxxxx_06_drill.ipynb を Colab で開き、各問題の「入力の作り方」に従って自分で入力を作り、その下に処理を書いて実行してください。
  • 各問に 入力例と出力例 を載せています。イメージがつかめないときは、まず入力例のとおりに動かしてから、自分の値に変えてください。
  • いくつかの問題には ヒントのフローチャート を載せています。まず流れをつかんでから、それを Python に翻訳して書いてください。
  • できたら、テンプレートを .py 形式でダウンロードして提出 してください。答え合わせはしません。自分で入力を決めて、思ったとおりに動くかを確かめることが目的です。
  • わからなくなったら、第06回の教材を見返してかまいません。答えを写すのではなく、書き方を思い出して自分で書く ことが大切です。

なお、この演習では Colab のコード生成(生成AI の補完)は使わないでください。自分でプログラムを書いて、読めるようになることが目的です。

1. for 文の基本¶

問題 1: for 文で計算結果を並べる¶

好きな整数 n を決めてください。for 文を使って、(i + 1) * 2 の値を i = 0 から n - 1 まで、1 行ずつ出力してください(2, 4, 6, ... と並びます)。

入力の作り方:

n = 好きな整数

入力例:

n = 4

出力例(入力例のとき):

2
4
6
8

これは例です。自分で決めた値で作ってかまいません(その場合、出力は例とは変わります)。

考えるポイント: range(0, n) の i は 0 から始まるのに、なぜ i + 1 を使っているのでしょうか。i をそのまま2 倍すると、最初の行はどうなるか確かめてください。

ヒント(フローチャート):

ヒント(フローチャート)


問題 2: リストの全要素を出力する¶

好きな値を5 個入れたリストを作ってください。for 文を使って、range(0, len(リスト)) の形で、全要素を1 行ずつ 出力してください。

入力の作り方:

好きな変数名 = [好きな値を5 個]

入力例:

numbers = [3, 8, 15, 42, 7]

出力例(入力例のとき):

3
8
15
42
7

これは例です。自分で決めた値で作ってかまいません(その場合、出力は例とは変わります)。

考えるポイント: リストの要素数を range(0, 5) のように直接書かず len を使うと、どんな利点があるでしょうか(要素を増減させて試してみましょう)。

ヒント(フローチャート):

ヒント(フローチャート)


2. 合計と個数¶

問題 3: 全要素の積を求める¶

好きな整数を5 個入れたリストを作ってください。for 文を使って、全要素の積(すべて掛け合わせた値)を出力してください。

入力の作り方:

好きな変数名 = [好きな整数を5 個]

入力例:

values = [2, 3, 1, 4, 2]

出力例(入力例のとき):

48

これは例です。自分で決めた値で作ってかまいません(その場合、出力は例とは変わります)。

考えるポイント: 合計を求めるときは total = 0 から始めますが、積を求めるときは total = 1 から始めます。なぜでしょうか(total = 0 のままだとどうなるか、試してみてください)。

ヒント(フローチャート):

ヒント(フローチャート)


問題 4: 条件に合う要素を数える¶

好きな整数を5 個入れたリストと、好きな整数 x を決めてください。for 文と if 文を使って、x より小さい要素の個数 を出力してください。

入力の作り方:

好きな変数名 = [好きな整数を5 個]
x = 好きな整数

入力例:

values = [7, 2, 9, 4, 5]
x = 6

出力例(入力例のとき):

3

これは例です。自分で決めた値で作ってかまいません(その場合、出力は例とは変わります)。

考えるポイント: 「x より小さい」という条件は < と <= のどちらで書けばよいでしょうか。境界の値(values[i] が x と等しいとき)で確かめてください。

ヒント(フローチャート):

ヒント(フローチャート)


問題 5: 条件に合う要素の合計¶

好きな整数を5 個入れたリストを作ってください。for 文と if 文を使って、偶数の要素だけの合計 を出力してください。

入力の作り方:

好きな変数名 = [好きな整数を5 個]

入力例:

values = [7, 2, 9, 4, 5]

出力例(入力例のとき):

6

これは例です。自分で決めた値で作ってかまいません(その場合、出力は例とは変わります)。

考えるポイント: 偶数かどうかは、% を使ってどんな条件式で判定できるでしょうか。

ヒント(フローチャート):

ヒント(フローチャート)


3. 最大・最小¶

問題 6: 最小値を求める¶

好きな整数を5 個入れたリストを作ってください。for 文を使って、最小値 を出力してください。教材3.4 節の最大値の求め方(先頭を暫定値にして更新する方法)を参考に、更新の向きを逆にしてください。

入力の作り方:

好きな変数名 = [好きな整数を5 個]

入力例:

values = [7, 2, 9, 4, 5]

出力例(入力例のとき):

2

これは例です。自分で決めた値で作ってかまいません(その場合、出力は例とは変わります)。

考えるポイント: 最大値を求めるときは「暫定値より大きければ更新」でしたが、最小値を求めるときはどう変えればよいでしょうか。

ヒント(フローチャート):

ヒント(フローチャート)


まとめ¶

この回のドリルでは、for 文とリストを使った代表的なパターンを練習しました。次のことを確認しておきましょう。

  • for 文の基本: for i in range(0, n): で、決まった回数だけ処理を繰り返せる。
  • リストの全要素の処理: range(0, len(リスト)) を使うと、要素数に左右されない。
  • 合計・積などの累積: 変数を1 つ用意して、繰り返しのたびに更新する。合計は 0、積は 1 から始める。
  • カウント・条件付き合計: for 文の中に if 文を入れ、条件に合ったときだけ更新する。
  • 最大値・最小値: 先頭の要素を暫定値にして、より大きい(小さい)要素が見つかったら更新する。

授業後の 課題 では、同じ要領のパターンを Flowchart Maker で組んで、.pflow ファイルを提出します。ここで図とコードの対応に慣れておきましょう。