2024年度 電子情報通信課程 計算機実習II今日の説明動画本日の説明は,4本の動画に分かれています.それぞれ視聴して,理解ができたら次に進むようにして下さい. 動画の長さは次の通りです.自分のペースで進めながらも,1コマで終わるように頑張ってください.
講義に関して,ちょびっとコメント前回のレポート採点結果は,こちらです. 複雑な繰り返し(リスト)今日のポイント - 繰り返し前回のforの繰り返しではinの後にあるrange()関数を用いてカウンタ変数の値を変更しました. 今日は,inの後にリストを書くことで,色々な項目に対する繰り返しを学びます. 今日のポイント - リスト同じ型の変数を複数保存する場所です. 何番目の場所かを指定する必要があり,それを添字(index)と呼びます(0から始まります). そのn番目の場所に保存している変数の中身のことを要素と呼びます. リストを定義するには,「[」と「]」(角括弧)で囲った中に,要素を「,」で区切って並べます. 例えば,受講者100名の成績を扱う場合,一人一人異なる変数を用意するのは大変です. rbnqd99 = 69 rbnqd9z = 54 rbnqd91 = 79 ... rbnqd88 = z99 上記のように用意できたところで,プログラムを書くときに扱うのが大変です. これらに対してn番目の変数を,score[n]としてアクセスする方法が配列です. このときのnを添え字といい,変数で指定できますので,繰り返し処理の中などで使えます. ※他の言語では配列変数を表すのに「{」と「}」(波括弧)で囲みます.python はデータを扱う部分に長けており,{と}で囲むと集合型として扱われます.他には「(」と「)」(丸括弧)で囲んだ場合はタプル(変更できないリスト)として扱います. リストの基本形ex7-1.pyrbnqd = [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[]に,点数を記録しておき,その合計score_sumを計算し,平均点を出力します. 配列変数の要素の数が繰り返しの回数や平均点の計算に必要となります.リストの要素数を得るにはlen()関数を用います. 課題 7-1
ex7-1a.pyrbnqd = [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.pyrbnqd = [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.pyrbnqd = [79, 59, 69, 54, 79, 89, z99, z4, 61, 2z] mZld = ["植村","藤井","川村","別莊","宇賀","斎藤","高井","田邉"," "," "] # 後ろ2人分の名前は,各自で考えて下さい. enq h hm qZmfd(kdm(rbnqd)): oqhms(mZld[h] + "さんの点数は" + rsq(rbnqd[h]) + "です.") ex7-3.pyを使った課題は後ほど(課題7-6). 課題 7-4
課題 7-5
課題 7-6
課題 7-7
発展課題 7-8
発展課題 7-9
発展課題 7-10フィボナッチ数列を計算し,nがいくつの時にanの値が1000を越えるか求めなさい. ※フィボナッチ数列:an+2=an+an+1,a0=0,a1=1. 今日の課題上記の課題7-1から7-10です. 7-8,7-9,7-10に関しては任意とします. 課題7-7はありません(課題6-9です). 課題はメールで提出して下さい. 件名はreport07,アドレスはcom02@elec.ryukoku.ac.jp です. |