[情報基礎演習[全学向]  >  情報基礎演習[全学向](2025・前期・月4/月5) 課題 >  [課題10] プログラミング ー スタートアップ]

[課題10] プログラミング ー スタートアップ

課題

以下の説明を順に読んでプログラミング演習の準備をした上で,末尾の問題に答えてください.解答はPandAで提出してください.

目次

  1. プログラムとプログラミングの概要
  2. プログラミング環境のチェック
    1. IDLEを起動する
    2. サンプルプログラム(turtle_sample.py)の実行
    3. サンプルプログラム(collatz.py)の実行
  3. タートルグラフィクスの学習
  4. 問題

プログラムとプログラミングの概要

情報基礎演習教科書2025の第16章の最初から16.3まで(p.xxx-yyy)を読んで,コンピュータのプログラムとは何か,プログラミングとは何かについて,その概要を確認してください. 情報基礎演習教科書2025には,PandAのリソースからアクセスできます.

プログラミング環境のチェック

この演習では,プログラミング言語としてPythonを利用します. プログラミングの作業ではMiniconda3に付属している「IDLE」というシンプルな「IDE」(統合開発環境)を利用します. またタートルグラフィクスというプログラムで絵を描くためのフレームワークを用います. そこでPythonでのプログラミングを始めるにあたって,まずはIDLEとタートルグラフィクスを試してみることにします.

Pythonのプログラムを作成して実行するためのツールはIDLEだけではありません.

IDLEを起動する

まず次の手順でIDLEを起動してください.

  1. 端末ツールを起動
    Windows:Miniconda3 > Anaconda Prompt (miniconda3)
    Mac:アプリケーション > ユーティリティ > ターミナル
  2. 端末ツールからIDLEを起動
    • Windows: Anaconda Promptに次を入力
      idle 
      
      Mac: ターミナルに次を入力
      idle3 
      

これでIDLEの「Shell」が起動します.

サンプルプログラム(turtle_sample.py)の実行

次にIDLEを用いて,タートルグラフィクスのサンプルプログラム「turtle_sample.py」を実行してみることにします. なおタートルグラフィクスとは,プログラムを通じてタートル(亀)を動かして,亀の動きに合わせて絵を描くフレームワークです. 亀の動きをプログラムで指示することでさまざまな絵を描くことができます.

さて「turtle_sample.py」は,EDAの演習のときに利用したパッケージ「ExBasicInfo.zip」に同梱して配布しています. そこで次のようにして実行できるはずです.

  1. IDLEのShellからサンプルプログラム「turtle_sample.py」を開く
    まずShellのメニューの[File]>[Open]を選びます. ファイル選択のウインドウが開きますので, ExBasicInfo.zipを展開したフォルダ(ExBasicInfo)から次のように辿って,サンプルファイルを探してください.
      ExBasicInfo > Programming > turtle_sample.py
    
    「turtle_sample.py」をダブルクリックするか,ファイル選択ウインドウの[Open]を押すと, IDLEの「Editor」ウインドウでファイルが開きます. Editorの画面にはプログラム「turtle_sample.py」の内容が表示されます.

  2. サンプルプログラム「turtle_sample.py」を実行する
    Editorのメニューの[Run]>[Run Module]を選ぶとプログラムが実行されます. 「Python Turtle Graphics」というウインドウが開くはずです(ウインドウは,サンプルプログラムでタートルグラフィクスの機能を使って開いています). 次に描画開始の合図を出すことで,「Python Turtle Graphics」ウインドウをキャンバスとして,(プログラムの指示にしたがって)絵が描かれていきます.

  3. 描画を開始する
    「Python Turtle Graphics」のウインドウをクリックかウインドウ内で[Enter]を押下すると描画が開始されます(クリックが描画開始の合図となっています). このサンプルプログラム「turtle_sample.py」では,タートルグラフィクスのさまざまな機能を用いて図形を描くようにしています(鑑賞に値する「絵」を描くようにはなっていません...).

  4. タートルグラフィクスのウインドウを閉じる(プログラムの実行を終了する)
    ウインドウ内の矢印(亀)が消えたら描画完了です. 描画が完了したら「Python Turtle Graphics」のウインドウをクリックするか, ウインドウ内で[Enter]を押下すると, ウインドウが閉じてプログラムの実行が終了します.

サンプルプログラム(collatz.py)の実行

タートルグラフィクスを用いないプログラムも扱ってみることにします. まず次のファイルをダウンロードしてください. ダウンロードしたファイルをIDLEで開きますので,ダウンロード先は適切に選んでください.(collatz.pyはタートルグラフィクスを利用しませんが)「turtle_sample.py」と同じフォルダにダウンロードすると,分かりやすいでしょう.

ファイルをダウンロードするには,上のリンクを右クリックして,メニューから「名前を付けてリンク先を保存」に相当する項目を選びます(Macでは[Control]を押しながらクリックするか,指2本でクリックすると右クリックと判定されます).

ダウンロードできたら,さきほどと同様にIDLEで開いてみてください. Shell,Editorのどちらからでも[File]>[Open]で開くことができます.

このcollatz.pyは「コラッツ予想」を試してみるプログラムです(教科書第16章の16.4にも同様のプログラムを掲載しています).

コラッツ予想(未解決問題)
任意の正の整数nから始めて,偶数なら2で割る,奇数なら3倍して1を加えることを繰り返すといつかは必ず1になる.

collatz.pyは次のように実行します.

  1. collatz.pyを開いている「Editor」のメニューの[Run]>[Run Module]を選ぶ(実行が開始される).

  2. IDLEの「Shell」に次のように表示されるので,適当なnの値を指定する. 最後に[Enter]を押下するとnの値が確定される.次の例では「27」を指定している.
    n? 27 ⏎
    
  3. コラッツ予想の計算過程が表示されて,(おそらく)最終的に1になって終了する.

大きな整数も扱えますので,いろいろな値で試してみるとよいでしょう. プログラムを再度実行するには,[Run]>[Run Module]を選びます.

n?  2732894629576389649857129⏎
[補足] IDLEのShellでは計算過程を表示すると実行がかなり遅くなるようです. collatz.pyの7行目の「print(n,end=" -> ")」を削除するか, 「print」の前に「#」を追加して保存([File] > [Save])すると, 計算過程の表示が省略されて,(おそらく)実行がすぐに終了するようになります.

タートルグラフィクスの学習

この演習では,タートルグラフィクスのプログラムを作成していきます. 次のページの説明を読んで,タートルグラフィクスを用いたプログラムの作成の仕方について,次の資料で学習してください.

上の資料「タートルグラフィクス」のページでも説明しているとおり, この演習で作成するタートルグラフィクスのプログラムを実行するには,(設定の都合上)さきほどの「turtle_sample.py」および「pyturtle.py」と同じフォルダにプログラムを保存してください.

  ExBasicInfo > Programming

問題

以上の学習を終えた後,次の問題に答えてください.

次のプログラムでは赤色で正三角形の3辺を描くことを想定しています(三角形の内部は塗りつぶしません.線の幅は「2」とします). しかしこのプログラムは想定しているようには動作しません. 想定通りに動かすために必要となる修正事項をすべて指摘してください.

なお各行の左端に示している0102,...,12は行の番号です. これらはプログラムには含まれません. 課題での修正事項の説明にはこれらの行番号を含めて,修正箇所が明確になるようにしてください.

01from pyturtle import
02
03def draw():
04line_color(100,0.0)
05line_width(2)
06forward(100)
07turn(120)
08foward(100)
09turn(120)
10forward(100)
11
12launch(draw)

解答はPandAの課題ページの解答欄に記入して提出してください. なお修正点を見つけるために,同じプログラムを作成して,実行してみても構いません. その際には次のページも適宜参照するとよいでしょう.

[情報基礎演習[全学向]  >  情報基礎演習[全学向](2025・前期・月4/月5) 課題 >  [課題10] プログラミング ー スタートアップ]