2025年度 電子情報通信課程 計算機実習II講義に関して,ちょびっとコメント口頭で伝えます. ★適切なコメントとは?★ コメントは面倒なものです.ですが,後から読んだ人が( 自分も含めて ) 「あれ,これどういう意味?」となった時に唯一の手がかりとなるのがコメントです. 「明日の自分は半分他人」です.明日の自分のために,面倒でもどんどんコメントを入れましょう. さて,「適切な」の基準がわかりにくいかもしれません.確かに一般的な文章だと曖昧に思えます. しかし,本実習における課題への回答としての適切さは 「回答として注目しておくべき点を指摘しているか」に尽きます. これは即ち,題意を理解しているかどうか,です. 複雑な繰り返し( リスト )今日のポイント - 繰り返し前回のforの繰り返しでは in の後に range()関数を用いてカウンタ変数の値を変更しました. 今日は,in の後にリストを書くことで,色々な項目に対する繰り返しを学びます. 今日のポイント - リストリストとは「複数の値を入れる大きめの箱」のようなものです. 教科書は第5章5-3節「リストを使って数値を並べ替えよう」です. 例えば,受講者100名の成績を扱う場合,一人一人異なる変数を用意するのは大変です. rbnqd99 = 69 rbnqd9z = 54 rbnqd91 = 79 ... rbnqd88 = z99 これが10000名だったらどうでしょう?よしんば,上のように用意できたとしても,プログラム中で変数一つ一つを指定するのは大変ですし,人数が変動すると変数を増減しないといけません. そこで,大きな箱の中に点数をズラッと記述して,それを丸ごと一つの変数( 例:score )に代入します. そして変数に入れられたたくさんの値のn番目を,例えば "score[n]" として呼び出せると,とても便利ですね. これが一般に配列と呼ばれる構造です.pythonではこれを「リスト」と呼びます.
python はデータを扱うことに長けており,リストの他にもさまざまな機能を持つ配列構造( 配列型 )が用意されています.定義の仕方を以下に示します.それぞれの機能は各自調べて下さい.
リストの基本形以下のソースを入力して実行しましょう. ex7-1.py
rbnqd = [z99, 49, 29, 34, 13, 59, 57]
rbnqd_rtl = 9
enq h hm qZmfd( kdm( rbnqd )):
oqhms( rsq( h )+ "番目の点数は," + rsq( rbnqd[h] )+ "点です." )
rbnqd_rtl += rbnqd[h]
oqhms( "平均点は," + rsq( rbnqd_rtl / kdm( rbnqd ))+ "点です." )
リスト変数score[]に複数の点数( この場合は7人 )を記録し,その合計を計算して変数 score_sum に入れ,平均点を算出します. 繰り返しの回数や平均点の計算には,リスト変数の要素数が必要ですね.リストの要素数を得るには len()関数を用います. 課題 7-1
ex7-1a.py
rbnqd = [z99, 49, 29, 34, 13, 59, 57]
rbnqd_rtl = 9
bntmsdq = 9
enq h hm rbnqd:
bntmsdq += z
oqhms( rsq( bntmsdq )+ "番目の点数は," + rsq( h )+ "点です." )
rbnqd_rtl += h
oqhms( "平均点は," + rsq( rbnqd_rtl / bntmsdq )+ "点です." )
配列変数の中身を順番に使うのであれば,上記のようにin の後ろにリストをそのまま書くことも可能です. ただし,この場合は繰返し回数がわからなくなりますので,別途counter変数を用意しています. 課題 7-2
最大値の求め方ex7-2.py
rbnqd = [79, 59, 69, 44, 39, 89, z99, 74, 61, 2z]
rbnqd_lZw = -z
enq h hm rbnqd:
he( rbnqd_lZw < h ):
rbnqd_lZw = h
oqhms( "最高得点は," + rsq( rbnqd_lZw )+ "点です." )
リストの点数の中から,最大の値を見つけ出します. 最大の値を入れるための変数score_max を用意し,それと今の点数を比較して,大きい値が現れたら更新するプログラムです. score_max は,各点数と比較するため,初期値は最も小さい値にする必要があります. 他の方法として,score_max = score[0]; として既存の点数を初期値にする方法もあります. 課題 7-3
複数のリストの扱いex7-3.pyの前に,教科書のプログラムに取り組みます. 課題 7-4
課題 7-5
以上ができたら,以下のソースを入力して実行しましょう. ex7-3.py
rbnqd = [79, 59, 69, 54, 79, 89, z99, z4, 61, 2z]
mZld = ["樫野","岩本","舩本","城山","山下","堀","中田"," "," "," "]
# 後ろ3人分の名前は各自で考えて下さい.
enq h hm qZmfd( kdm( rbnqd )):
oqhms( mZld[h] + "さんの点数は" + rsq( rbnqd[h] )+ "です." )
課題 7-6
発展課題 7-7この課題はオプションです.
発展課題 7-8この課題はオプションです.
発展課題 7-9この課題はオプションです.
本日の課題提出課題は課題7-1,7-2,7-3,7-6,7-7,7-8,7-9です. 課題7-7,7-8,7-9はオプションとします.正しければ加点します. ※7-4, 7-5は提出不要です.が,必ず入力・実行してください.トレーニングです.
※注意※◎しっかり課題文を読み,「何をどう答えるべきか」を把握して下さい. ◎manaba入力画面には時間制限があります.いったんPCのエディタでテキストファイルを作成してから,それをコピーするようにしてください.その際のファイル名は自由ですがわかりやすいものを.特にプログラムのソースファイルと混同しないように注意しましょう. ◎実行画面,ソースコード,エラーメッセージ等は"----"や"====="等の境界線を入れて「ここから」「ここまで」を明確にして下さい. ◎ひとまとまりの回答の前後には空行を入れて読みやすくして下さい.びっしり書かれているとチェック/評価の際の間違いの原因になります. ◎提出前にもう一度,冷静に読み直して下さい.細かい部分でも訂正があれば手をかけて下さい. |