プログラミング入門II 演習課題 2024.07.17

Back to text page


  1. ファイル読み込み

    リンク先のデータは10個の乱数をスペースで区切ったテキストです.このテキストを読み込んで,画面に表示するプログラムを作成しましょう.

    39 36 37 53 19 41 23 83 37 50
    

    解答例

  2. ファイルへの書き込み

    2桁の正の整数を10個乱数により発生させ,それらをカンマで区切ったものを data.csv というファイル名で保存するプログラムを作成しましょう.

    解答例

  3. 読み込んだデータの使用

    設問 ii. で書き込んだデータを読み出して,それら値の平均値を求めるプログラムを作成しましょう.

    98 85 72 31 41 17 95 81 59 54
    Mean of above numbers: 63.3
    

    CSVファイルを読み込むと自動的に2次元のリストとして扱うので,今回のように1行しか無い場合でも2次元配列として添字が2つ必要になります.
    解答例

  4. 複数行の書き込み

    5月8日の演習問題 i. を改造して,生成したテストデータの平均値以外の部分の結果を画面に表示させるのではなく,CSVデータに書き込むプログラムを作成しましょう.データを作った後でEXCELで読み込めることも確認してください.

    なお,Windows では複数行のリストを読み込む際に,そのままリストにすると空行が入るようです.そのため,open 関数の引数に newline='' を入れておかないといけないようです.詳しくは解答例を参考にしてください.

    一番上の行の科目名などもデータに書き込みます.

    解答例では行の先頭の学生の番号は後から insert() を使用して追加しています.
    解答例

  5. Maxプーリング

    5月1日の演習問題 vi. で行ったMaxプーリングについて,再度プログラミングしてみましょう.まず,元のデータを作ってそれをCSVファイルとして保存するプログラムを作成します.次に,そのデータを読み込んでプーリングした結果の行列を作成して保存する作業を行うプログラムを作りましょう.

    データ作成解答例

    Maxプーリング解答例

  6. 時間データの書き込み

    実際に実験でデータを記録する場合には,時間も同時に記録することがあります.その練習をしてみましょう.

    time クラスを import すると,時間に関するデータを扱えるようになりますが,今回は一番簡単な関数 time を使用して経過時間と乱数データをCSVファイルに書き込むことを行ってみます.

    now = time.time()
    

    上のスクリプトは1970年1月1日からの秒数を取得するものです.つぎつぎに時間を計測して引き算すると経過時間が計算できます.

    ということで,0から9までの範囲の整数を乱数で10回発生させますが,その際に sleep 関数で 0.1 秒ずつ遅延させて発生させ,その経過時間と乱数を記録するプログラムを作成しましょう.

    time.sleep(0.1)
    

    保存した結果は以下のようになるものとします.

    0.0006084442138671875,9
    0.10099434852600098,5
    0.20117568969726562,8
    0.3014204502105713,8
    0.40181446075439453,8
    0.5022222995758057,9
    0.6024816036224365,3
    0.7028846740722656,9
    0.8030643463134766,7
    0.9034678936004639,8
    

    with 文でファイルを書き込みする部分に for 文を入れて逐次データを書き込む方法で実現しています.
    解答例


Back to text page