[[ProgI/プログラミング演習I/2011年度]] SIZE(20){2011年度 プログラミング演習Iのページ} このページは,プログラミング演習Iのページです.&br; -担当者 -- 松村敦 ([[Webページ:http://www.slis.tsukuba.ac.jp/~matsumur/]], Email: matsumura.atsushi.ga あっと u.tsukuba.ac.jp) --- 研究室: 研究棟 2F 212 -- 時井真紀 (Email: tokii.maki.ga あっと u.tsukuba.ac.jp) --- 研究室: 研究棟 2F 203 ---- #contents ---- *お知らせ [#vbfd88b7] お知らせです.クラス毎のお知らせの場合は,[木][金]で区別します.何もなければ全体向けです. - COLOR(RED){レポート提出者一覧} <[[レポート>#report]]> (2011-11-25) - レポートさらに補足 <[[レポート>#report]]> (2011-11-18) - レポートさらに補足の訂正 <[[レポート>#report]]> (2011-11-18) - レポートさらに補足 <[[レポート>#report]]> (2011-11-18) - レポート訂正,補足 <[[レポート>#report]]> (2011-11-17) - レポート実行結果用データ公開 <[[レポート>#report]]> (2011-11-17) - レポート問答追加 <[[レポート>#report]]> (2011-11-15) - レポート問答 <[[レポート>#report]]> (2011-11-11) - 第2回レポート課題公開 <[[レポート>#report]]> (2011-11-10) - 第1回レポート ファイル提出に関して(2011-11-08)} -- プログラムファイルの提出に不備があった方には、レポート提出先アドレスからメールを送信しました。(問題がなかった方には、メールは送信していません。) - 中テスト日程 (2011-11-02) -- 11/17(木),11/18(金)に実施します. - レポート提出者一覧 <[[レポート>#report]]> (2011-10-26) - レポート問答 <[[レポート>#report]]> (2011-10-21) - レポートサポート会開催!!!! (2011-10-20) -- レポートの質問に担当教員,TAが答えます! -- 日時:10/21(金) 17:00-18:00 -- 場所:実習室II (7C103) - 第1回レポート課題訂正 <[[レポート>#report]]> (2011-10-19) - 第1回レポート課題公開 <[[レポート>#report]]> (2011-10-12) - 第8回テキスト公開 <[[テキスト>#text]]> (2011-10-12) - 第7回テキスト公開 <[[テキスト>#text]]> (2011-10-12) - 第6回テキスト公開 <[[テキスト>#text]]> (2011-10-12) - 第5回テキスト公開 <[[テキスト>#text]]> (2011-10-12) - 第4回テキスト公開 <[[テキスト>#text]]> (2011-09-09) - 第3回テキスト公開 <[[テキスト>#text]]> (2011-09-07) - 第2回テキスト公開 <[[テキスト>#text]]> (2011-08-30) - 第1回テキスト公開 <[[テキスト>#text]]> (2011-08-30) - 教科書 [[たのしいRuby 第3版:http://www.amazon.co.jp/dp/4797357401]] -- 書籍部に入荷しました。(2011-06-20) //- 演習について 掲載<[[テキスト>#text]]> (2009-08-24) //- 夏休みの宿題 締切訂正 <[[テキスト>#text]]> (2009-06-24) //- COLOR(RED){夏休みの宿題締切掲載} <[[テキスト>#text]]> (2010-06-23) //- 夏休みの宿題公開 <[[テキスト>#text]]> (2010-06-01) //- 教科書について (2010-06-01) //-- [[たのしいRuby:http://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC2%E7%89%88-Ruby%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%B0%97%E8%BB%BD%E3%81%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E9%AB%98%E6%A9%8B-%E5%BE%81%E7%BE%A9/dp/4797336617]] //-- 必ず入手してください. //-- 書籍売店には1学期中に入荷予定です. * お知らせ(演習以外) [#other_announce] *日程 [#schedule] |回|木曜日|金曜日|位置付け|内容(予定)|教科書との関連など|その他| |1|9/15|9/16|導入|全体像,Meadow, print,代入,算術演算,gets, i=i+1, sum=sum+a[i]&br;様々なプログラム(Ruby/Tk, Ruby/SDL, CGI)|1章,10章|| |2|9/29|9/30|基礎|オブジェクト,変数,配列,ハッシュ,型変換|2,4,10章|| |3|10/06|10/07|基礎|条件判定,繰り返し|5,6章|| |4|10/13|10/14|基礎|復習(配列,ハッシュ,条件判定,繰り返し)||| |5|10/20|10/21|基礎|紙で考える&言葉でプログラム&ファイルの扱い||| |6|10/27|10/28|基礎|メソッド,スコープ|7章|| |7|11/10|11/04|基礎|メソッド, 配列の受け渡し|7章|| |8|11/17|11/11|基礎|文字列+復習(配列,ハッシュ,条件判定,繰り返し)|12章|| |9|11/24|11/18|基礎|総合演習||| **全学計算機システム停止等の情報 [#c7c01013] -詳細は[[春日サテライトニュース:http://www.slis.tsukuba.ac.jp/ipc/news/]]をご覧ください. *道具箱 [#toolbox] - SIZE(20){Meadowのフォントがかわってしまった} -- [Shift]キーとマウスの左ボタンを押すと、メニューが表示されます。そこでデフォルトを選択してください -[[プログラムに行番号をつけるCGI:http://www.u.tsukuba.ac.jp/~tokii.maki.ga/progI/nl.html]] -- 提出用のプログラムに行番号をつけるプログラムです. -[[プログラムに行番号をつけるCGI:http://www.u.tsukuba.ac.jp/~tokii.maki.ga/progI/nl2.html]] -- 提出用のプログラムに行番号をつけるプログラムです.(学籍No,名前も出力) -[[コマンドプロンプトで日本語入力を行う:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/toolbox/cmd.html]] -[[実行結果をファイルに保存する方法:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/toolbox/file.html]] -[[プログラミング演習版 Ruby コーディング規約:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/toolbox/kiyaku.html]] *レポート [#report] - &ref(rep_cover.pdf,, レポート表紙); ** 第2回レポート課題 [#s6e6ebb0] - (印刷物)COLOR(RED){提出者リスト} (学内のみ) -- [[木曜日 rep2-1:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep2-1_Thr2011_list]] -- [[金曜日 rep2-1:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep2-1_Fri2011_list]] - (プログラムファイル)提出者については,後日メールにて連絡します. - 〆切 2011年11月25日(金曜日) 15時 -&ref(rep2_2011.pdf,left,第2回レポート課題); (2011-11-10掲載) -&ref(character.txt,left,第2回レポート実行結果用ファイル); (2011-11-17掲載) -- 上記ファイルを yuruyuru.txt として保存してから使用してください. -- 参照:[[図書館キャラクター -Lifo-wiki:http://www.lifo-club.org/index.php?%BF%DE%BD%F1%B4%DB%A5%AD%A5%E3%A5%E9%A5%AF%A5%BF%A1%BC]] -- なお,本ファイルに設定されている,図書館愛,インパクト,ゆるさの各値はフィクションです. - 訂正,補足 -- COLOR(BLUE){1回の対決における攻撃は,勝敗が決まっても決まらなくても1度だけです.}COLOR(RED){%%対決は勝敗が決まっても決まらなくても1回です.%%} (2011-11-18) --- かわいそうだから何回も戦わせないでください. -- COLOR(BLUE){既に,1回の対戦で何度も戦わせるプログラムを作ってしまっている場合} (2011-11-18) --- 1回の攻撃に関して問題文にあるルールに沿っていれば減点はしません. -- 実行結果は印刷版には不要です. -- 実行結果をファイル (sXXXXXXX.txt) に保存して,プログラムファイルと一緒にメールにて提出してください. -- 実行結果の作り方 Z:\progI\rep2> ruby -Ks sXXXXXXX-1.rb < yuruyuru.txt > sXXXXXXX.txt - 問答 -- Q. 配列を値とするハッシュって? -- A. 以下のようなものが配列を値とするハッシュの例です. kore = {"a" => [1, 2, 3, 4], "b" => [3, 4, 9, 10], "c" => [99, 3, 7, 32]} kore["a"][0]などとすると,配列の一つ一つの要素を使うことができます. -- Q. 作り方は? -- A. 調べてください.ヒント「配列はハッシュのキー1つ1つに対して作成する」 -- Q. えーーー! -- A. あとでもうちょっとヒント出します. -- Q. えーーーーーーーーーーー! -- A. ヒントはラーニングコモンズへ!!! --- [[ラーニングコモンジャーのブログ 11/11の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-326.html]] --- [[ラーニングコモンジャーのブログ 11/14の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-327.html]] --- [[ラーニングコモンジャーのブログ 11/15の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-328.html]] --- [[ラーニングコモンジャーのブログ 11/16の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-329.html]] --- [[ラーニングコモンジャーのブログ 11/17の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-330.html]] --- [[ラーニングコモンジャーのブログ 11/18の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-331.html]] --- [[ラーニングコモンジャーのブログ 11/21の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-332.html]] --- [[ラーニングコモンジャーのブログ 11/22の業務報告:http://tsukubalc.blog6.fc2.com/blog-entry-333.html]] ** 第1回レポート課題 [#y6bfed3c] - (印刷物)提出者リスト (学内のみ) -- rep1-1とrep1-2の二つのリストがあるので,両方チェックすること. --- [[木曜日 rep1-1:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1-1_Thr2011_list]] --- [[木曜日 rep1-2:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1-2_Thr2011_list]] --- [[金曜日 rep1-1:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1-1_Fri2011_list]] --- [[金曜日 rep1-2:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1-1_Fri2011_list]] - (プログラムファイル)提出者については,明日以降メールにて連絡します. - 問答 -- Q. 課題2の条件1と2の意味がわからないのですが. -- A. 1はあらかじめ寿司ネタと値段の対応をハッシュに保存しておく処理です.2は実際に食べた数を入力して,1で作った対応からお会計を計算する部分です. -- Q. 課題2の条件1の6番目「上書き」の意味がわからないのですが. -- A. それまでに入っていた値段を変更することです.たとえば,まぐろ190と入力しハッシュに保存した後で,まぐろと入力すると,違う値段を入力できるようにするか,変更しないかを選択できるようにします.違う値段を入力することを選択した場合,次に入力した値段,例えば250,でハッシュの中身を変更します.この場合,まぐろ250がハッシュに保存されます. -- Q. 課題2の条件1の7番目「全ての寿司ネタと値段」の意味がわからないのですが. -- A. 「その時点でハッシュに保存されている全ての寿司ネタと値段」という意味です. - 訂正 -- p.4 課題2 プログラムの条件1の1つ目 (誤)値段をハッシュとし (正)値段を値とし - 〆切 2011年10月26日(水曜日) 15時 -&ref(2011_rep1.pdf,left,第1回レポート課題); (2011-10-12掲載) - 第1回 設問1で使用するデータ ["東京", "有楽町", "新橋", "浜松町", "田町", "品川", "大崎", "五反田", "目黒", "恵比寿", "渋谷", "原宿", "代々木", "新宿", "新大久保", "高田馬場", "目白", "池袋", "大塚", "巣鴨", "駒込", "田端", "西日暮里", "日暮里", "鶯谷", "上野", "御徒町", "秋葉原", "神田"] [2, 2, 2, 2, 3, 2, 2, 2, 3, 2, 3, 2, 2, 2, 3, 1, 3, 3, 1, 2, 3, 1, 2, 1, 2, 2, 2, 2, 2] *テキスト [#text] //SIZE(20){COLOR(RED){チェック項目に指定した演習問題だけでは、すべて理解できたことにはなりません。}}&br; //SIZE(20){COLOR(RED){チェック項目以外の演習問題もすべて行うこと!}} //- &ref(2010_en9.pdf,left,第9回テキスト); //- &ref(2010_en8.pdf,left,第8回テキスト); //- &ref(2010_en7.pdf,left,第7回テキスト); //-&ref(2010_en6.pdf,,第6回テキスト); -&ref(2011_en8.pdf,left,第8回テキスト); (2011-10-12掲載) -&ref(2011_en7.pdf,left,第7回テキスト); (2011-10-12掲載) -&ref(2011_en6.pdf,left,第6回テキスト); (2011-10-12掲載) -&ref(2011_en5.pdf,left,第5回テキスト); (2011-10-12掲載) -- 補足:p.8 演習5-9 --- fruit.rb というのはp.7で入力したプログラムのことです.ex5-9.rbとして作っている人もいるかもしれません.その場合は, Z:\progI> ruby ex5-9.rb < fruit_list.txt と読み替えてください. -&ref(2011_ex4.pdf,left,第4回テキスト); (2011-09-09掲載) -&ref(2011_en3.pdf,left,第3回テキスト); (2011-09-07掲載) -&ref(2011_en2.pdf,left,第2回テキスト); (2011-08-30掲載) -&ref(2011_en1.pdf,left,第1回テキスト); (2011-08-30掲載) //-&ref(2010_en0.pdf,left,演習について);(第1回演習時に配布) - Rubyプログラム作成方法(詳細は、"Rubyプログラミングへの準備" p.1- p.4参照) --- [[Meadowについて:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/text/2011_Meadow.pdf]] --- [[Rubyプログラミングへの準備:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/text/2011_prog0.pdf]] * 全学計算機システムのWindows にログインする * コマンドプロンプト(黒色ウィンドウ)とMeadow(黄色ウィンドウ) [コマンドプロンプトで] * 作業用フォルダを準備する (Zドライブの下に progIフォルダを作成) [Meadowで] * 作業用フォルダの中に、プログラムを作成する。(Meadowを使う) ファイル名の例:sample.rb (拡張子は、rb) [コマンドプロンプトで] * コマンドプロンプトを起動し、作業用フォルダに移動する ( cd progI ) * プログラムを実行する (ruby ファイル名) * 夏休みの宿題 [#t4ec9336] -夏休みの宿題 -- 課題:教科書「たのしいRuby」の第6章までを読んでまとめる -- 内容(以下のa, bの両方をやる) +++ 理解できた部分を選択し,プログラミング初心者向けの説明としてまとめる +++ 理解できなかったことを,TAに対する質問としてまとめる --体裁 --- 学籍番号,氏名などレポートとして最低限のことは必須 --- 内容のa, b あわせてA4用紙2ページ --- それ以外の形式は自由 -- 締切:9月14日(水)15:00 -- 提出先:学務前提出BOX - 参考資料(去年の宿題) -- [[Meadowについて:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/text/Meadow2010.pdf]] -- [[Rubyプログラミングへの準備:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/text/prog0_2010.pdf]] *チェック項目 [#check] SIZE(15){COLOR(RED){チェック項目に指定した演習問題だけでは、すべて理解できたことにはなりません。}} COLOR(RED){チェック項目以外の演習問題もすべて行うこと!} - 第8回チェック項目 - 演習8-16 表のあなうめ (提出後、対面式クイズ) -- たのしいRubyの参照ページも書くこと - 第7回チェック項目 -- 配布プリントの穴埋め -- 演習7-15 - 第6回チェック項目 -- チェック1 演習6-10 行番号つきプログラムリスト+実行結果(複数) -- チェック2 演習6-23 (追加項目あり) 行番号つきプログラムリスト+実行結果(複数) 2つの文字列を引数とし、 連結した文字列を「表示する」メソッドと「返すメソッド」メソッドを 作ってみよう。(1つのプログラム中で2つのメソッドを作成!) - 第5回チェック項目 -- 配布プリントの穴埋め - 第4回チェック項目 -- チェック1: 演習4-8 行番号つきプログラムリスト+実行結果(複数) (追加) 見つからなかった場合は、見つからなかったと表示する (追加) 調べてみよう。 配列におけるinclude?とindexの使い方。 - 第3回チェック項目 -- チェック1: 演習3-27 行番号つきプログラムリスト+実行結果(複数) (追加) 負の値が入力された場合は、足さない(入力回数にはカウントする) (テキスト訂正) 誤 sum 正 goukei - 第2回チェック項目 -- チェック1: 演習2-29 行番号つきプログラムリスト+実行結果(複数) 和 と 平均(小数点以下も表示する)を計算し表示する。<== テキストの演習項目に「平均」を追加 和や平均は計算後、変数に値を保存し、表示すること。 -- チェック2: 演習2-42 行番号つきプログラムリスト+実行結果(複数) - 第1回チェック項目 -- チェック1: 演習1-28 の実行結果 学籍番号:**** 氏名:******(ふりがな) 演習1-28実行結果 Z:\progI> ruby ex1-28.rb **** **** ***** Z:\progI> -- チェック2: 演習1-61 プログラムリスト(行番号つき)、出力ファイル(行番号つき) 実行方法 ruby ex1-61.rb > ex1-61.html プログラムリスト(ex1-61.rb), 出力ファイル(ex1-61.html) // SIZE(15){COLOR(RED){未チェック項目がないか演習中に名簿をみて確かめておこう}} *演習支援情報 [#support] - [[FAQのページ:http://klis.tsukuba.ac.jp/klib/index.php?ProgI%2FFAQ%A4%CE%A5%DA%A1%BC%A5%B8]] //- [[TAのページ:http://klis.tsukuba.ac.jp/klib/index.php?ProgI%2FTA%A4%CE%A5%DA%A1%BC%A5%B8]] - 教科書: -- [[たのしいRuby 第3版:http://www.amazon.co.jp/dp/4797357401]] - 参考書: --[[プログラミングRuby 第2版 言語編:http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Ruby-%E7%AC%AC2%E7%89%88-%E8%A8%80%E8%AA%9E%E7%B7%A8-Dave-Thomas/dp/4274066428]] --[[プログラミングRuby 第2版 ライブラリ編:http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Ruby-%E7%AC%AC2%E7%89%88-%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E7%B7%A8-Dave-Thomas/dp/4274066436]] - 参考Webページ -- [[オブジェクト指向スクリプト言語Ruby:http://www.ruby-lang.org/ja/]] --- Rubyのおおもとです. -- [[Rubyリファレンスマニュアル:http://www.ruby-lang.org/ja/man/]] --- リファレンスマニュアルです.辞書として使えます. --- たとえば,「組み込みライブラリ」の「組み込みクラス」のあたりを見ると,各クラスに定義されたメソッドの一覧と定義・使い方等を調べることができます.便利なメソッドがたくさんあるので,ぜひ調べてみてください. -- [[日本Rubyの会 公式Wiki:http://jp.rubyist.net/]] --- Rubyのユーザグループ -- [[Ruby - Wikipedia:http://ja.wikipedia.org/wiki/Ruby]] --- WikipediaによるRubyの解説 - その他 -- [[筑波大学全学計算機システム:http://www.u.tsukuba.ac.jp/]]