[サイトマップ] [トップページ]

トップページ > 授業のページ >
コンピュータII 2025年度前期 水5


標題 更新日
追試験 8/7 Thu 15:45 8月4日(月)の期末試験を受験できなかった学生に対する追試験は,8月15日(金)3時限に第6講義室で行います。
期末試験 7/31 Thu 00:01 コンピュータIIの期末試験は 8/4(月)6時限に第2講義室で行います。
やむを得ぬ事情により受験できない受講生に対しては,成績提出と教育実習の日程を勘案して,8月15日(金)に追試験を行う予定です。
8/4(月)の試験を欠席せざるを得ない人は,やむを得ぬ事情による欠席であることがわかるものを提出してください。
また,9月卒業予定者は 8/4 の試験を受験してください。
【重要】期末試験の日程変更について 7/31 Thu 00:02 7/30, 7/31 に実施予定であったコンピュータIIと音声情報科学の期末試験を 8/1(金)2時限(コンピュータIIを予定しているが音声情報科学の可能性もあり) 8/4(月)6時限(音声情報科学を予定しているがコンピュータIIの可能性もあり) に実施したいと思います。 ついては,他の授業の受講など,どうしても都合がつかない事情があれば 明日 7/31(木)の午後1時までに連絡をください。
第15回 7/23 Wed 22:08 <授業範囲>
pp. 240 - 247
pp. 276 - 278
第14回 7/16 Wed 18:41 <授業範囲>
pp.141 - 143, 
pp.157 - 159, 
pp.164 - 169
教育実習ガイダンスに伴う欠席連絡について 7/14 Mon 16:09 該当する受講生への連絡事項です。
7月16日(水)16:00 - 17:00 に附属中学校で教育実習のガイダンスがあり欠席についた配慮願いたい旨の依頼が関係方面からありました。
このガイダンスに参加するために授業を欠席する人は,その旨,メールで知らせてください。事後でも受け付けますが,1週間以内を目途としてください。
(欠席分の学習は各自おこなってください)
期末試験 7/29 Tue 17:50 コンピュータIIの期末試験は 7/30(水)の授業時に行います(7/9の授業時に 7/31(木)としていたのは誤りです)。自筆(というのは自分で手書きしたという意味です)のメモ(A4 1枚)の持ち込みを認めます。なお,自筆メモは答案回収時に回収します。
<追記>教室を第2講義室に変更します。
第13回 7/9 Wed 18:41 <第11-12回課題>
- 11回課題 comp12-1
逆行列を求める際にエラー出るのは 0 とした。逆行列を求めるコードがなければ 0。 
- 11回課題 comp12-2
乱数発生(randint())のたびに種を設定すると,毎回乱数が初期化されて,同じ値しか出ないので本来は誤り
def throw_dice_seed(n, random_seed=10):
    np.random.seed(random_seed)
    return np.random.randint(1,7, size=n)
for i in range(6):
    b = throw_dice_seed(2)
    print(b)
    print(b.sum())

サイコロ振り1回は 0
前回注意しなかったが,自力で行っていないのが明らかなものは NA。課題を生成AIなどを使って行うことは認めない。    

- 12回課題 comp12-3
行列とベクトルの積は * でない。0
方程式を解く(移動元のベクトルを求める)問題ではない。NA

x1 = int(input())
x2 = int(input())
x = np.r_[x1, x2]
-> x = np.array([x1, x2]) と同じこと。1次元配列は,計算が可能になるように,縦・横ベクトルのどちらかとして扱われる。
明示的に縦ベクトルとするには,2行1列の二次元配列にする。

<授業範囲>
pp.219-230, Google Colaboratory の利用
第12回 7/2 Wed 20:40 <課題>comp12-3.py
乱数を使っての行列 A (2 x 2,各成分は -2 から 2 の範囲内の整数)を生成し,キーボードから与えたベクトルが行列 A によってどこに移されるかを求めるプログラムを作りなさい。
(以下,発展)
さまざまなベクトルを与えて動作を確認しなさい。そのために,乱数で生成した行列 A を再現できるように,乱数の種を指定して行列 A を生成できるようにしなさい。
<授業範囲>
 pp. 112 - 114, pp. 215 - 218
第11回 6/25 Wed 19:10 <課題>
- comp12-1.py
プログラム中で与えた行列やベクトルに対して、逆行列を求めることおよび連立方程式を解くことを行うプログラムを作ってください。
- comp12-2.py
二つのサイコロを使ったサイコロ振り(合計が出ればよい)を何回か行って、出た目(合計:2-12) を表示するプログラムを作ってください。乱数の種を使う場合と使わない場合を作ってください。
可能ならば、各目が何回でたかを数えて表示する部分をプログラムに追加してください。
<授業範囲>
 pp. 100 - 105, pp. 201 - 214
第10回 6/25 Wed 19:10 <課題>
p.200 で説明されている行列とベクトルの演算に関して,自身で考えた行列とベクトルで計算して表示するプログラムを作成してください。ファイル名は comp11-1.py とします。
<授業範囲> 
pp. 182 - 200

第7回 5/28 Wed 16:08 <前回課題>
- comp6-1
  - 第4回B) の関数呼び出しをすべて行っていなくても,mod6.quad が使えていれば 1 (mod6.py と同じ動作でよい)
  - モジュールを使えていなければ NA
- mod6.py
  - モジュールとして利用可能(関数 quad の定義が正しくなされている)であり,かつ単体のスクリプトとしても実行可能: 1
  - 関数定義だけがあり,スクリプトとして動かなければ NA
  - モジュールとして他のスクリプトからインポートしただけで動作が起きるのは NA
  - モジュールで quad が2回定義されている(デフォルト引数がない方の定義は不要)のはまずいが,誤りとは言えないので 1
    def quad(x, a, b, c):
        return a*x*x + b*x + c
    def quad(x, a = 1, b = 0, c = 0):
        return a*x*x + b*x + c
- comp6-2
  - sample.csv がないのは NA (動作確認できない)
  - モジュールの import はファイルの先頭で行うこと
<論理演算子><第7回課題>  ページ下部を参照

第6回 5/21 Wed 16:04 A)
第4回 B) で作成した関数 quad を含むモジュール mod6 を作成してください。
ただし,mod6.py を Python スクリプト(プログラム)として実行したときに,2*(3^2) + 1*3 + (-1) の答えを quad を使って計算し表示するように作ってください。
さらに,第4回 B) をモジュール mod6 を import して行うプログラムを作ってください。
このプログラムのファイル名は comp6-1.py とします。

B)
p.59 のファイル sample.csv を(テキストファイルとして)読みこんで,そのまま表示するだけのプログラムを comp6-2.py に作ってください。
さらに,このプログラムに,sample.csv を (csv ファイルとして)読み込んで,3 列目の合計を求めて表示するコードを追加してください。

時間に余裕がある人は,B) に関して,さらに次のことを行ってください。
- sample.csv に行や列を追加して動作を確かめる。
- 合計と積の両方を求めて表示する。
- 計算の対象を変更する(対角線など)。

第5回 5/17 Sat 19:03   <前回の補足>
  スライスの利用
  引数なしの関数の定義
  複数行からなる関数の定義

  <標準ライブラリ>
  クラスや関数などを集めて整理するのがモジュール
  クラスは関連する変数(データ属性)と関数(メソッド)を整理するためのもの
  (基本的には)クラスからオブジェクト(インスタンスともいう)を作って使う。

  datetime モジュールから複数の date オブジェクトを作って使ってみる。

  datetime モジュールには,date クラスの他に,time, datetime, timedelta クラスなどがある。
  リファレンスマニュアル: https://docs.python.org/ja/3/library/datetime.html

  datetime.date クラスのデータ属性は year, month, day
  weekday() は曜日を整数で返す(月曜日が 0)
  date オブジェクト同士の引き算で経過日数が得られる
  
  以下のものを表示するプログラム comp5-1.py を作りなさい。
  自分の誕生日は何曜日だったか
  今日は今年の何日目にあたるか
  今年はあと何日あるか
  自分は何日間生きてきたか
  
  datetime.date.today() は今日を date オブジェクトとして返すクラスメソッド
 (オブジェクトを作らずに使えるメソッド)
  
  <クラス定義>
  ex2_09.py を作成して動作を確認しなさい。
  ex2_10.py を作成して動作を確認しなさい。

  ex2_10.py を以下のとおりに変更したプログラム comp5-2.py を作成しなさい。
  Person クラスに電話番号を格納するデータ属性 phone_number を追加する。
  ( __init__ メソッドを,電話番号も設定できるように変更する。デフォルト値は ""。)
  Person クラスに phone_number を返すメソッド get_phone_number を追加する。
  Person クラスのオブジェクトを複数作って動作するプログラムにする。

第4回 5/7 Wed 17:21 A) タプル,辞書,集合のすべてを含んだプログラム comp4-1.py を作りなさい。 各データ構造に格納するデータは各自で考えることとするが,作成したデータに対する種々の操作を行った結果を表示するようなプログラムとすること。各データ構造について,その特徴がわかるような操作を必ず一つ以上含めること。 また,内包表記の利用も試すのが望ましい。

B) 下記の指示に従い,comp4-2.py というファイル名で python プログラム(スクリプト)を作成し,実行しなさい。

1. 二次関数 a*x^2 + b*x + c の値を計算する関数 quad を定義しなさい。
ここで ^ はべき乗を表すものとする(^ は python で使える演算子ではない)。
関数 quad は 4 つの引数を持つこととし,最初の引数は x の値を受け取り,2番目以降の引数で a, b, c を受け取るものとする。
さらに,quad の引数 a, b, c はデフォルト値を持たせることによって,引数を一つだけ与えると
x^2 の計算結果を返すこととする。

2. quad を以下のように呼び出して結果を表示する部分を加えなさい。実行結果が正しいことを確認しなさい。(ファイルにプログラムを保存するので,値の出力には print を使う必要がある)

quad(3)
9
quad(3,2)
18
quad(3,2,1)
21
quad(3,2,1,-1)
20

3. (発展:できるだけやってください)関数 quad を使って,1, 2.5, 3, 4.5, 5 の各数の 2 乗を求めて表示するコードを加えなさい。
繰り返しの構文 (for) を使うこと。
第3回 4/23 Wed 20:29 1. 1 から 10 までの数の平方根を求めて表示するプログラムを作りなさい。
ファイル名は comp3-1.py としてください。
補足: for を使ってください。
プログラムをファイルに保存して実行する場合,式だけを書いても値は表示されず,
値の出力には print を使う必要があることに注意してください。

2. 以下はファイル名 comp3-2.py で作成してください。
2-1. 文字列 s を
s = 'abcdefghijklmnopqrstuvwxyz'
とする。文字列 s から 'student' という文字列を作り,それを str1 という名前で定義し,その内容を表示しなさい。

2-2. 次に,文字列 s から 'stu' と 'hak' の二つの文字列を作り,これらを要素とする(二つの要素からなる)リスト list1 を定義して,その内容を表示しなさい。
['stu', 'hak']

2-3. 更に,append メソッドを使って,list1 に 'hak' を追加し,list1 の内容を表示しなさい。
['stu', 'hak', 'hak']

2-4. 最後に,list1 の二つの 'hak' の間の要素として 'grad' を挿入した後,最後の要素を 'sap' に変更した上で,,list1 の内容を表示しなさい。
['stu', 'hak', 'grad', 'sap']

以上,正しく動くことを確認して submit コマンドで提出してください。次回授業の前日までです。
第2回 4/16 Wed 17:50 課題:次回授業日の前日までに行ってください。
1. ex2_02.py を作って実行しなさい。
[2. ex2_05.py を作って実行しなさい。]
作ったファイルは提出してください。
submit ファイル名
で提出します。提出済みファイルの確認は
submit -l (submitスペース・ハイフン・エル)
です。

標題 形式 更新日 サイズ コメント
第7回課題 application/pdf 5/28 Wed 16:10 50458
論理演算子 application/pdf 5/28 Wed 15:52 180582
シラバス application/pdf 4/9 Wed 14:49 199380


[サイトマップ] [トップページ]