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

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


標題 更新日
第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回課題 5/28 Wed 16:10 50458 application/pdf
論理演算子 5/28 Wed 15:52 180582 application/pdf
シラバス 4/9 Wed 14:49 199380 application/pdf


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