#freeze
SIZE(20){プログラミング演習Iのページ}

このページは,プログラミング演習Iのページです.&br;

-担当者(問い合わせの場合は、2名両方にメールを出してください)
-- 松村敦 ([[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
----
* Crowd4U [#d78a3f24]
本ページは[[Crowd4U:http://crowd4u.org]]に協力しています.
&microtaskbutton(http://klis.tsukuba.ac.jp/klib/index.php?ProgI%2F%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B1%E9%BD%ACI){マイクロタスクをやる!};(現在IEには非対応)

*お知らせ [#vbfd88b7]
お知らせです.クラス毎のお知らせの場合は,[木][金]で区別します.何もなければ全体向けです.
- COLOR(RED){第2回レポート課題1用入力データを掲載しました。} (2014-10-23)
-- 入力データの掲載に伴って,課題1の条件を1つ追加しました.
- COLOR(RED){第2回レポート課題を改訂しました。} (2014-10-17)
-- 問題の一部にミスがありました.かならずCOLOR(RED){改訂版}とある方を使ってください.
- 第2回レポート課題を公開しました。 (2014-10-16)
- レポート提出者リストを公開しました <[[レポート>#report]]> (2018-11-12)
-- COLOR(RED){各自で必ずチェック!}
- レポート課題を掲載しました <[[レポート>#report]]>(2018-10-24)
- 第9回テキスト公開 <[[テキスト>#text]]>(2018-10-05)
- 夏休みの自由課題公開 <[[夏休みの自由課題>#summer]]>(2018-08-01)
//- レポート課題10/26修正版を掲載しました(2017-10-26)
//- レポート課題を掲載しました(2017-10-26)
//-第8回は第8回テキスト下に掲載したプリントもチェック時に使用します.印刷しておいてください.(2017-10-12)
//-第7回演習までに第6回テキストの表1をうめておいてください.この表だけをみることができる小テストを実施します.(2017-10-06)
//- 夏休みの自由課題公開 <[[夏休みの自由課題>#summer]]>(2017-08-02)
- 第6,7,8回テキスト公開 <[[テキスト>#text]]>(2018-08-01)
- 第4回までの宿題,第4回のチェック項目ヒントを掲載 <[[テキスト>#text]]>(2018-07-19)
-【重要】第1回目までにやること (2018-06-21)
-- 教科書「[[たのしいRuby第5版:http://www.amazon.co.jp/dp/4797386290/]]」を買う <[[演習支援情報>#support]]>
-- &ref(2018_prog0.pdf,left,予習テキスト);を受講前に試しておく <[[テキスト>#text]]>
-- &ref(2018check0.pdf,left,第1回目までの宿題);をやる.第1回授業時に提出してもらいます <[[テキスト>#text]]> 
-- &ref(2018_en1.pdf,left,第1,2回テキスト);の予習をする <[[テキスト>#text]]>


//- SIZE(30){COLOR(RED){レポート提出状況公開}} (2014-11-10)
//-- SIZE(30){各自確認すること!}

//- 未チェック項目がないか確認してください。


//- COLOR(RED){第2回レポート課題1用入力データを掲載しました。} (2014-10-23)
//-- 入力データの掲載に伴って,課題1の条件を1つ追加しました.
//- COLOR(RED){第2回レポート課題を改訂しました。} (2014-10-17)
//-- 問題の一部にミスがありました.かならずCOLOR(RED){改訂版}とある方を使ってください.
//- 第2回レポート課題を公開しました。 (2014-10-16)

//- 第1回レポート課題を掲載しました(2014-07-30)

//- 金曜日クラス(7/11)は、台風による筑波大学キャンパス休講のため、休講です。
//-- 金曜日クラス第2回は、7/18となります。春C間に5回演習をおこなうため、春Cの予備日となっている8/8(金)も演習を行います。

//- 予習テキストを公開しています.<[[テキスト>#text]]>
//-- COLOR(RED){第1回の演習前に一通り試してみること}
//- COLOR(RED){SIZE(30){第2回レポート課題の提出状況を公開しました}} <[[レポート>#report]] (2013-11-08)
//-- アクセスできない状況を修正しました(2013-11-10)
//- 第2回レポート課題の補足 <[[レポート>#report]]> (2013-10-23)
//- 第2回レポート課題を公開しました (2013-10-17)
//- 第1回レポート提出者リストを公開しました(2013-10-02)

//- 第6回~9回テキスト公開 (2013-09-02)
//- 第1回レポートを掲載しました。 (2013-07-31)
//- 第6回の1時間目にテスト(持ち込み不可)を実施します。
//--(木曜日クラス 10/3, 金曜日クラス 10/4)

//- 第5回テキストまで公開しました。予習をするようにしてください。
//-- チェック項目以外の問題も必ず行ってください。
//- 第1回授業スタートまでに、「第1,2回テキスト」「補足資料1:Meadowについて」「補足資料2:Rubyプログラムへの準備」を印刷しておいてください。(2013.07.04)

//- 第1回テキストアップ(2013.06.28)


* お知らせ(演習以外) [#other_announce]
- 知識情報システム主専攻オープンラボ
-- だれでも参加可能ですので,是非見にきてください.
-- http://www.slis.tsukuba.ac.jp/system/
//- COLOR(RED){卒業研究中間発表会}
//-- 10月11(水)
//-- 誰でも参加可能です.是非見学を.
//--- [[知識科学主専攻:http://klis.tsukuba.ac.jp/knowledge/index.php?lprogram20171011]]  9:30-15:30 7A208
//--- [[知識情報システム主専攻:http://klis.tsukuba.ac.jp/system/local-only/Program171011.pdf]] 9:30-17:00 ユニオン講義室
//--- [[情報資源経営主専攻:http://klis.tsukuba.ac.jp/management/index.php?program20171011]] 9:50〜16:48 7A202, 7A210
//- 知識情報システム主専攻オープンラボ
//-- だれでも参加可能ですので,是非見にきてください.
//-- http://www.slis.tsukuba.ac.jp/system/

- [[卒業生講演会 第三弾:http://klis.tsukuba.ac.jp/career_news.html]] 10/10(金) 15:15-19:00 7A205
-- 4人の卒業生を講師としてお迎えして,社会と大学とのつながりなどについてお話いただきます.


*日程 [#schedule]

|回|木曜日|金曜日|位置付け|内容(予定)|教科書との関連など|その他|
|1|7/3|7/4| 導入| 全体像,Meadow, print,代入,算術演算,gets, i=i+1, sum=sum+a[i] 様々なプログラム(Ruby/Tk, Ruby/SDL, CGI)|1章,10章 | |
|2|7/10|%%7/11%% 7/18|~|~|~|~|
|3|7/17|%%7/18%% 7/25|基礎|オブジェクト,変数,配列,ハッシュ,型変換|2,4,10章 | |
|4|7/24|%%7/25%% 8/1|基礎|条件判定,繰り返し |5,6章| |
|5|7/31|%%8/1%% 8/8|基礎|復習(配列,ハッシュ,条件判定,繰り返し)| | |
|6|10/2 |10/3|基礎 |(COLOR(RED){(テストも実施)}、紙で考える&言葉でプログラム&ファイルの扱い | | |
|7|10/9|10/10|基礎 |メソッド | | |
|8|10/16|10/24|基礎|メソッド | | |
|9|10/23|10/31|基礎 |文字列+復習 | | |
|10|10/30|11/7|基礎|総合演習 | | |
|1|7/5|7/6| 導入| 全体像,print,代入,算術演算,gets, i=i+1, sum=sum+a[i] 様々なプログラム(CGI)|1章,10章 | |
|2|7/12|7/13|~|~|~|~|
|3|7/19|7/20|基礎|オブジェクト,変数,配列,ハッシュ,型変換|2,4,10章 | |
|4|7/26|7/27|基礎|条件判定,繰り返し |5,6章| |
|5|8/2|8/3|基礎|紙で考える&言葉でプログラム&ファイルの扱い| | |
|6|10/4|10/5|基礎 |(COLOR(RED){(テストも実施)}、文字列+復習 | | |
|7|10/11|10/12|基礎 |メソッド | | |
|8|10/18|10/19|基礎|メソッド | | |
|9|10/25|10/26|基礎 |復習| | |
|10|11/1|10/31|基礎|総合演習 | | |

//|回|木曜日|金曜日|位置付け|内容(予定)|教科書との関連など|その他|
//|1| 7/4 | 7/5 | 導入| 全体像,Meadow, print,代入,算術演算,gets, i=i+1, sum=sum+a[i] 様々なプログラム(Ruby/Tk, Ruby/SDL, CGI)|1章,10章 | |
//|1| 7/4 | 7/5 | 導入| 全体像,Meadow, print,代入,算術演算,gets, i=i+1, sum=sum+a[i] 様々なプログラム(CGI)|1章,10章 | |
//|2| 7/11 | 7/12 |~|~|~|~|
//|3| 7/18 | 7/19 |基礎|オブジェクト,変数,配列,ハッシュ,型変換|2,4,10章 | |
//|4| 7/25 | 7/26 |基礎|条件判定,繰り返し |5,6章| |
//|5| 8/1| 8/2 |基礎|復習(配列,ハッシュ,条件判定,繰り返し)| | |
//|6| 10/3| 10/4 |基礎 | (COLOR(RED){(テストも実施)}、紙で考える&言葉でプログラム&ファイルの扱い | | |
//|7| 10/10| 10/11 |基礎 |メソッド | | |
//|8| 10/24| 10/18 |基礎|メソッド | | |
//|9| 10/31| 10/25 |基礎 |文字列+復習 | | |
//|10| 11/7| 11/1 |基礎|総合演習 | | |

**全学計算機システム停止等の情報 [#c7c01013]

-詳細は[[春日サテライトニュース:http://www.slis.tsukuba.ac.jp/ipc/news/]]をご覧ください.

*道具箱 [#toolbox]
- SIZE(20){Meadowのフォントがかわってしまった}
-- [Shift]キーとマウスの左ボタンを押すと、メニューが表示されます。そこでデフォルトを選択してください
//- SIZE(20){Meadowのフォントがかわってしまった}
//-- [Shift]キーとマウスの左ボタンを押すと、メニューが表示されます。そこでデフォルトを選択してください
-[[プログラムに行番号をつけるCGI:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/progI/nl.html]]
-- 提出用のプログラムに行番号をつけるプログラムです.

-[[プログラムに行番号をつけるCGI:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/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]
** 第2回 [#y5edc5bf]
-&ref(input2014.txt,,課題1用入力ファイル); (2014-10-23掲載)
-&ref(rep2_2014_rev.pdf,left,第2回レポート課題); COLOR(RED){改訂版!} (2014-10-17掲載)
-- COLOR(RED){プログラムの条件追加}(2014-10-23掲載)
--- 2の「キーボードから単語を入力し,..」の次に,以下の条件を追加
 ・単語が"."(ピリオド)であったら入力を終了する.
-〆切:2014年11月6日(木)15:00
-提出先:学務レポート提出BOX
- 補足
-- 課題1で利用するinput.txtは後ほど公開します.形式は以下のような1行1単語のファイルです.
 ぽにょ
 ぺーたぺた
 ぽにょ

 プログラミング


* プログラムと実行結果を見比べてみよう [#g659e53f]
-- [[print:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print0/temp.html]],  
[[printと代入:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print1/temp.html]], 
[[printと代入:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print/temp.html]], 
--[[配列:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/array/temp.html]],  
[[ハッシュ:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/hash0/temp.html]]
--[[if:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/if/temp.html]], 
[[繰り返し:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while6/temp.html]], 
[[繰り返し:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while0/temp.html]], 
--[[配列と繰り返し:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while-array/temp.html]], 
[[ハッシュとeach:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/hash/temp.html]]
-- [[繰り返しとif:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/while7/temp.html]]

- 課題2
課題2では,第1回テキスト演習1-13などで1行目に指定してきた 

 #encoding: Shift_JIS では正しく動きません.
*レポート [#report]
- レポート提出状況(学内のみ)(2018-11-12(紙+メール提出)掲載)
-- [[木クラス:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1_Thr2018.list]]
-- [[金クラス:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1_Fri2018.list]]

この部分を以下の通り変更してください. 

 #encoding: Windows-31J
- 表紙見本&ref(rep_cover.pdf,,表紙見本);
- &ref(rep_2018.pdf,,レポート課題); (2018-10-24掲載)
- &ref(sXXXXXXX-1_2018.rb,, 課題1用テンプレートプログラム); COLOR(RED){注:このファイルを保存してから編集してください}
- &ref(sXXXXXXX-2_2018.rb,, 課題2用テンプレートプログラム); COLOR(RED){注:このファイルを保存してから編集してください}
//-- 課題1の実行結果の出力例が間違っていましたので修正しました
//- &ref(rep1_data.txt,,課題1の実行用ファイル);
-課題2のデータ
 # 駅名配列
 eki =  
 ["新橋","汐留","竹芝","日の出","芝浦ふ頭",
 "お台場海浜公園","台場","船の科学館","テレコムセンター","青海",
 "国際展示場正門","有明","有明テニスの森","市場前","新豊洲","豊洲"]
 # 乗車時間配列
 jikan = 
 [1,2,1,1,5,1,1,1,2,2,1,1,2,1,2]
 # 施設
 shisetu =
 ["汐留シオサイト","浜離宮恩賜庭園","竹芝客船ターミナル","水上バス乗場",
 "レインボーブリッジ","虹の下水道館","メディアージュ","東京湾岸警察署",
 "日本科学未来館","パレットタウン","東京都水の科学館",
 "パナソニックセンター東京","有明コロシアム",
 "中央卸売市場","MAGIC BEACH","がすてな−にガスの科学館"]

** 第1回 [#s4bf69a4]
- 提出状況(学籍番号下三桁)
-- 木曜クス([[紙:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1_Thr_2014_list]])(学内のみ)
-- 金曜クラス([[紙:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/rep1_Fri_2014_list]])(学内のみ)

-&ref(2014_rep1.pdf,left,第1回レポート課題); (2014/07/30掲載)
 体裁:課題2はA4で3ページから5ページとする.
  課題1,2ともに片面印刷であること.フォントサイズは12ポイント.
  手書きでもよい.(ただし課題2は12ポイント程度の文字)
 〆切:2014年10月1日(水) 17:00  提出先:学務レポート提出BOX
 注意:〆切に遅れたレポートは受け取りません.
*夏休みの自由課題 [#summer]
- &ref(summer_2018.pdf,left,夏休みの自由課題); (2018-08-01掲載)
//-- COLOR(RED){(注)Chromeではブラウザ内で表示されないことがあるようです.その場合はファイルを保存してAdobe Reader等で確認してください.}


//- 表紙見本&ref(rep_cover.pdf,,表紙見本);
//** 第2回レポート [#vab30ae5]
//- 提出状況(学籍番号下三桁)
//-- 木曜クス([[紙:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/2013rep2pThr]])(学内のみ)
//-- 金曜クラス([[紙:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai/2013rep2pFri]])(学内のみ)

//※ 電子メールによる提出部分につては,未提出の人にはメールを送付しました.
//- &ref(rep2_2013.pdf,,課題);
//- &ref(rep1_input.txt,,データ(rep1_input.txt));
//- 補足
//-- 課題2では,第1回テキスト演習1-13などで1行目に指定してきた
// #encoding: Shift_JIS
//では正しく動きません.この部分を以下の通り変更してください.
// #encoding: Windows-31J

//- 〆切:11月7日(木曜日)15:00 学務レポート提出BOXと電子メールによる提出

//** 第1回レポート [#v3600eda]
//- 〆切:10月2日(水曜日)17:00 学務レポート提出BOX  COLOR(RED){(〆切厳守)}
//- 課題:&br;
//1「変数」&br;2「算術演算」&br;3「配列」&br;4「ハッシュ」&br;5「型変換」&br;6「条件判定」&br;
//7「繰り返し」&br;の全ての項目についてわかりやすく説明する。
//-条件:
//-- 各項目の説明にあたっては、第1回から第5回のテキストに掲載した例題プログラムをそれぞれ1つ以上使う。
//-- 取り上げる例題プログラムには、コメント文を追加し、行番号を付与してから本文に掲載する。
//-- 本文中では、行番号を参照しつつでわかりやすく説明する。
//-- また、図を使って用語やプログラムの流れをよりわかりやすく説明してもよい。
//- フォーマット:
//-- A4サイズの用紙で10ページ以上15ページ以内.(片面)
//-- フォントサイズ12ポイント
//-- 手書きでもよい(ただし12ポイント程度の文字)

//- レポート提出状況 [#e2ab64ba]
//-- 第1回レポート
//--- [[木曜日クラス提出者リスト:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai2/rep1_Thr2013_list]]
//(学内のみ)
//--- [[金曜日クラス提出者リスト:http://klis.tsukuba.ac.jp/klib/Subjects/ProgI/gakunai2/rep1_Fri2013_list]]
//(学内のみ)


*テキスト [#text]
チェック項目に指定した演習問題だけでは、すべて理解できたことにはなりません。
~
チェック項目以外の演習問題もすべて行うこと!
//-&ref(2013_en9.pdf,left,第9回テキスト); (2013-09-02掲載)
//-&ref(2013_en8.pdf,left,第8回テキスト); (2013-09-02掲載)
//-&ref(2013_en7.pdf,left,第7回テキスト); (2013-09-02掲載)
//-&ref(2013_en6.pdf,left,第6回テキスト); (2013-09-02掲載)
//--(訂正) 演習6-5 (1行目のringoをappleに変更してください
//--- kakaku_list = {"apple" => 100, "orange" = 50, "banana" => 80}
 
//-&ref(2013_en5.pdf,left,第5回テキスト); (2013-07-19掲載)
//-&ref(2013_en4.pdf,left,第4回テキスト); (2013-06-28掲載)
//-&ref(2013_en3.pdf,left,第3回テキスト); (2013-06-28掲載)
//--(訂正) 演習3-31
//--- 動きません.以下の通り,英語と日本語を入れ替えたプログラムに変更してください.
// jpn = {"frog" => "かえる", "bee" => "はち", "duck" => "かも", "cicada" => "せみ"}
// print("選んで入力してください(frog, bee, duck, cicada)\n")
// str = gets.chomp
// print(jpn[str], "\n")
//-&ref(2013_en1.pdf,left,第1,2回テキスト); (2013-06-28掲載)
//--(訂正) 演習1-60 (=> となっていない箇所があります。)
// 演習1-60
// tango = {"???"=>"???", "???"=>"???","???"=>"???","???"=>"???"}
//--(第1回テキストの前に、まず補足資料1を読んで Meadowの使い方を覚えよう。その後、補足資料2を読み、プログラムの実行方法を確認しよう)
//-- 補足資料1:&ref(Meadow_2013.pdf,left,Meadowについて); (2013-07-01掲載)
//-- 補足資料2:&ref(prog0_2013.pdf,left,Rubyプログラミングへの準備); (2013-07-01掲載)
//--- なお,日本語の入ったプログラムの実行は注意
//-&ref(2012_en9.pdf,left,第9回テキスト); (2012-10-15掲載)
//-&ref(2012_en8.pdf,left,第8回テキスト); (2012-10-15掲載)
//-&ref(2012_en7.pdf,left,第7回テキスト); (2012-10-15掲載)
//-&ref(2012_en6.pdf,left,第6回テキスト); (2012-10-10掲載)
//-&ref(2012_en5.pdf,left,第5回テキスト); (2012-09-24掲載)
//-&ref(2012_en4.pdf,left,第4回テキスト); (2012-09-12掲載)
//-- [訂正]演習4-29の最終行の一番後ろの括弧を一つ削除
//-&ref(2012_en3.pdf,left,第3回テキスト); (2012-08-27掲載)
//-&ref(2012_en1.pdf,left,第1,2回テキスト); (2012-08-06掲載)
 
//-&ref(2010_en0.pdf,left,演習について);(第1回演習時に配布)
~
COLOR(RED){テキストに実行結果、教科書を使って調べたことなどを記入しておくこと(チェック時に確認します)}
- &ref(2017_en9.pdf,,第9回テキスト); (2018-10-05掲載)
- &ref(2017_en8.pdf,,第8回テキスト); (2018-08-01掲載)
-- &ref(check8_2018.pdf,,演習8-6プリント);(2018-9-25掲載) <== チェック時に使用します。
- &ref(2017_en7.pdf,,第7回テキスト); (2018-08-01掲載)
- &ref(2017_en6.pdf,,第6回テキスト); (2018-08-01掲載)
- &ref(2018_en5.pdf,,第5回テキスト); (2018-07-17掲載)
//-- 訂正 p.10 [誤] program6-13.rb   [正] program5-13.rb
//-- 訂正 p.11 [誤] program6-14.rb   [正] program5-14.rb
//-- 訂正 p.11 [誤] program6-15.rb   [正] program5-14.rb 
- &ref(2016_en4.pdf,,第4回テキスト); (2018-06-21掲載) 
&ref(2018en4.pdf,,チェック項目等ヒントプリント);(2018-07-13掲載)
-- &ref(ex4_homework_2017.pdf,,宿題); COLOR(RED){第4回スタート時に提出} (2018-07-19掲載)
- &ref(2016_en3.pdf,,第3回テキスト); (2018-06-21掲載)
- &ref(2018_en1.pdf,,第1,2回テキスト); (2018-06-21掲載)

-&ref(2014_en9.pdf,left,第9回テキスト); (2014-08-05掲載)
-&ref(2014_en8.pdf,left,第8回テキスト); (2014-08-05掲載)
-&ref(2014_en7.pdf,left,第7回テキスト); (2014-08-05掲載)
-&ref(2014_en6.pdf,left,第6回テキスト); (2014-08-05掲載)
-&ref(2014_en5.pdf,left,第5回テキスト); (2014-07-14掲載)
-&ref(2014_en4.pdf,left,第4回テキスト); (2014-07-11掲載)
-&ref(2014_en3.pdf,left,第3回テキスト); (2014-07-01掲載)
-&ref(2014_en1.pdf,left,第1,2回テキスト); (2014-06-17掲載) 

- 予習テキスト2種類:COLOR(RED){第1回の受講前に一通り試してみること}
--- [[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]]
- 予習テキスト:授業前にやっておくこと
-- &ref(2018_prog0.pdf,left,Rubyプログラミングへの準備);
- 宿題:COLOR(RED){第1回の授業時に提出}
-- &ref(2018check0.pdf,left,第1回目までの宿題); 


//- Ruby modeを利用する準備
//-- 簡単コース
//+++ コマンドプロンプトを起動する.プロンプトが Z:\> であることを確認する.
//+++ 以下のコマンドを実行する
// copy C:\meadow\.emacs_rubymode .emacs
//(注)スペースはcopyの次とrubymodeの次の2カ所
//
//-- 意味を知りたいコース
//+++ Meadowを起動して z:\に.emacsという名前のファイルを開く(最初の文字は.(ピリオド)です)
//+++ .emacsファイルに以下を入力(コピー&ペースト)し,保存する
// (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t)
// (setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist))
// (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-alist))
// (autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process")
// (autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode")
// (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys)))

-プログラミング演習の作業流れ図 [[プログラムの作成と実行の流れ(コマンドプロンプトとエディタの使い方を見ることができます:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/ruby/]]
  [準備]
    * 全学計算機システムのWindows にログインする
    * コマンドプロンプト(黒色ウィンドウ)とMeadow(白色ウィンドウ)を起動する。
    * コマンドプロンプト(黒色ウィンドウ)とAtomを起動する。
  (コマンドプロンプトは、[スタート]-[プログラムとファイルの検索]の欄で cmdと入力し、[Enter]キーを押すと起動することができる。
  [(黒ウィンドウ)コマンドプロンプトで]
    * Z: と入力し、[Enter]キー でZドライブに移動することができる。
     (Z:\> とならない場合は、 cd ../ [Enter]キーを押す。
    * mkdir progIと入力し、[Enter]キーで 作業用フォルダを準備する (Zドライブの下に progIフォルダを作成)
   ↓
  [(白ウィンドウ)Meadowで]
    * 作業用フォルダの中に、プログラムを作成する。(Meadowを使う) ファイル名の例:sample.rb (拡張子は、rb) 
  [Atomで]
    * 作業用フォルダの中に、プログラムを作成する。ファイル名の例:sample.rb (拡張子は、rb) 
   ↓
  [(黒ウィンドウ)コマンドプロンプトで]
  * Zドライブにいることを確認 (Z:\>  となっているか)
    * Zドライブにいることを確認 (Z:\>  となっているか)
    * コマンドプロンプトを起動し、作業用フォルダに移動する ( cd progI )
    * プログラムを実行する (ruby ファイル名)


*チェック項目 [#check]
-COLOR(RED){チェック項目以外の演習問題もやっておいてください}
-- チェック時には、チェック項目以外の問題に対しても実行結果等を記入したテキストも持参してください。
//- COLOR(RED){未チェック項目はありませんか?チェックをすべて受けてください}
//-- [[行番号付プログラムリストと実行結果の保存:http://www.klis.tsukuba.ac.jp/klib/Subjects/ProgI/example2017/print.jpg]]

- 第9回
--演習9-4
 実行結果と行番号つきプログラムリスト
 さらに説明文を書き、上記とは別印刷
 何行目で何行目で何を行っているかを記述。
 何行目から何行目は***を行うメソッドの定義で、
 引数は**。メソッド***は引数***を受け取り、どんな処理を行うか。
 などを書いてくる。

--演習9-7
 セルフチェック
 実行結果と行番号つきプログラムリスト

- 第8回
-- 演習8-6 成績判定メソッドの作成
 配布プリントのあなうめ
-- 演習8-13 最大値を求めるメソッド
 要素数 5の配列 kazu_1を用意する
 要素数 7の配列 kazu_2を用意する
 実行結果とプログラムリスト
-- 演習8-6 掲載プリントを埋めてチェックをうける
 (ことばでプログラムの欄も丁寧に記述してください)

-- 演習8-13 最大値を求めるメソッド(実行結果とプログラムリスト)
 ☆要素数 5の配列 kazu_1を用意する
 ☆要素数 7の配列 kazu_2を用意する
 ☆プログラム中で、2回メソッドを呼ぶ

- 第7回
-- 演習7-10
 鳴く回数を引数で指定できるようにメソッドを変更する
 キーボードから回数を入力できるプログラムにする
--演習7-10 鳴く回数を引数で指定できるようにメソッドを変更する キーボードから回数 を入力できるプログラムにする
 番号つきプログラムリスト + 実行結果(複数)

-- 演習7-23(追加項目あり)
 番号つきプログラムリスト + 実行結果(複数)
 2つの文字列を引数とし、
--演習7-25 番号つきプログラムリスト + 実行結果(複数) 2つの文字列を引数とし、 
 連結した文字列を「表示する」メソッドと「返すメソッド」メソッドを作る。
 (1つのプログラム中で2つのメソッドを作成!)
 (1つのプログラム中で2つのメソッドを作成!)
 プログラムの構成(コメントを書いてからプログラムを記述してみよう。)
 #連結した文字列を表示するメソッドの定義(メソッド1) 文字列を2個受け取る
 #連結した文字列を返すメソッドの定義(メソッド2) 文字列を2個受け取る
 # 文字列を2つキーボードから入力し、変数に保存
 #メソッド1を呼ぶ (2つの変数を引数とする!)
 #メソッド2を呼び(2つの変数を引数とする!)、値を表示


- 第6回
-- 演習6-4 テキストp.3の穴埋め(提出、TAによるチェック)
-- 演習6-11 実行結果を演習時に掲示する結果で確認する。(自己チェック後、名簿に日付記入)
-- 夏の自由課題Ex.11のアレンジ問題: 単語が見つからなかった場合は、「みつかりませんでした」と表示
 行番号つきプログラムリストと実行結果(複数)を印刷し、教壇横の解答を確認(自己チェック後、名簿に日付記入)
 実行結果: 配列の要素に単語が含まれる場合,配列の要素に単語が含まれない場合

- 第5回
 追加:追加1 ]単語が見つからなかった場合は、「みつかりませんでした」と表示
 行番号つきプログラムリストと実行結果(複数)
 配列の要素に単語が含まれる場合
 配列の要素に単語が含まれない場合
 チェックプログラムが完成したら、さらに調べておこう。
    include? と  indexの使い方
--演習5-5
 コメントをプログラムに追加し、p.4で指定したキーと値を入力。
 行番号付プログラムリストと実行結果。
 チェック時にテキストp.5の表を穴埋めをして持参
--演習5-11
 実行結果のみ
 自己チェック、解答確認後日付を記入


- 第4回(演習時にチェック項目に関連した配布プリントあり)
- 第4回(プログラムにはコメントをいれましょう。)
--演習4-9
 行番号つきプログラムリストと実行結果(複数)
 テキストの流れ図も完成させて、チェック時に見せる
--- (変数名を工夫する。)
 ***
 実行例:
 年齢は? 20  <= (年齢は?と聞かれたらキーボードから入力)
 飲酒可能ですが、飲みすぎないようにしましょう。 <=(何らかのメッセージを表示)

--演習4-27
 行番号つきプログラムリストと実行結果(複数)

- 第3回(プログラムにコメント文を書いてからプログラム作成スタート)
--コメントは、行の先頭に #をつける。(コメントは一行毎でなくてよい。まとめてよい)
 # キーボード入力をうながす
 print("整数を入力してください: ")
-第3回
--演習3-29 行番号つきプログラムリスト+実行結果(複数)
 和 と 平均(小数点以下も表示する)を計算し表示する。
 和や平均は計算後、変数に値を保存し、表示する。
 コメント文も書くこと!

-- 演習3-29(行番号プログラムリスト+実行結果(複数))
--- テキストから課題追加分(和と平均(小数点以下も表示する)を計算し表示する。和や平均は計算後、変数に値を保存してから、表示する。
-- 演習3-39(行番号プログラムリスト+実行結果)
--- キー:cat 値:ねこ、キー:cat 値:犬と入力すると?
--- キー:cat 値:ねこ、キー:cat 値:nekoと入力すると?
--演習3-39 行番号つきプログラムリスト+実行結果(複数)
 キー:cat 値: ねこ   キー :dog 値:犬と入力すると?
 キー:cat 値: ねこ   キー:cat 値:nekoと入力すると?

- 第2回
-- 演習1-47(行番号プログラムリスト+実行結果)
-- 演習1-56(行番号プログラムリスト+実行結果)
-- 演習1-47:実行結果 と プログラムリスト(行番号つき)
-- 演習1-56:実行結果 と プログラムリスト(行番号つき)

- 第1回:演習1-28 (行番号プログラムリスト+実行結果)
-- ファイルへの保存、行番号をつける方法等は「道具箱」を参照。
-第1回
--演習1-28 (行番号プログラムリスト+実行結果)ファイルへの保存、行番号をつける方法等は「道具箱」を参照。


*演習支援情報 [#support]
** プログラミングRuby支援資料 [#k2c94251]
- [[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 第4版:http://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC4%E7%89%88-%E9%AB%98%E6%A9%8B-%E5%BE%81%E7%BE%A9/dp/4797372273/ref=sr_1_1?ie=UTF8&qid=1372397311&sr=8-1&keywords=%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby]]
-- [[たのしいRuby 第4版:http://www.amazon.co.jp/dp/4797372273]]

- 参考書:
--[[プログラミング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の解説

- その他
**プログラミング演習の予習、復習を自宅で行いたい! [#lc84cc72]

プログラミング演習を自宅でもやりたい!というやる気にあふれた学生のために、
その方法を紹介します。方法は2つあります。全学計算機を使う方法と自分のPCにRubyをインストールする方法です。

***(実習室以外から)全学計算機を利用する方法 [#c60a9d64]
- リモートデスクトップを使う(初心者用)&br;
自分のPC(Windows/Mac OS)から全学計算機システムのWindowsデスクトップを利用できます。全学の端末とほぼ同等の環境でRubyプログラミングができます。
詳しくは,全学計算機システムのリモートアクセスのページを参照してください。

- sshを使う(中級者以上用)&br;
簡単なプログラムだけなら、unixサーバ上のコマンドライン(Windowsでのコマンドプロンプト)だけで十分です。
プログラムの編集もコマンドラインからエディタ(Emacsでもviでも)を起動して行います。&br;
COLOR(RED){(注)}ただし、日本語が含まれるプログラムを実行するには、注意が必要です。WindowsはShift_JIS,unixはUTF-8になっていますので、この違いを吸収する文字コードの知識が必要になります。

++ ssh でicho.u.tsukuba.ac.jp または ubuntu.u.tsukuba.ac.jp に接続しログインする
++ プログラミング演習Iのディレクトリへ移動する。ホームディレクトリにprogIがあるはずです

なお、プログラムファイルを自分のPCで作成して、sftpでファイルをicho/ubuntuに転送して、実行だけ全学計算機で行うという方法も可能です。

*** 自分のPCにRuby をインストールする方法 [#pc676f41]

全学計算機システムのRubyのバージョンは 2.3.3 です。同じバージョンをインストールすることを推奨します。
- たのしいRubyのp.457ページでは下記のサイトを紹介しています。参考にしてください
-- https://www.ruby-lang.org/ja/downloads/ 
--http://rubyinstaller.org/
- Mac OS Xの場合は、最初からrubyがインストールされています。ただし、バージョンが古いなど、環境を整備する必要がある場合もあります。
-- rubyバージョン管理ツール rbenv(各自調べましょう)

** テキストエディタについて [#qfa0d423]
プログラミング演習IではAtomを使います。
プログラミングのサポートが充実しているもので、
WindowsでもUNIXでもMacでも使えるものを選定しました。

ただし、好みに応じて他のテキストエディタを使うことも可能です。

代表的なテキストエディタには以下のようなものがあります。
- OSX, Windows, Linux:クロスプラットフォーム
-- Atom(全学計算機システムにもインストール済み)
--- 入手先:https://atom.io

-- Sublime Text(全学計算機システムにもインストール済み)
--- 入手先:https://www.sublimetext.com

-- Emacs(全学計算機システムにもインストール済み)
--- 入手先:https://www.gnu.org/software/emacs/
--- 入手先(Windows用にビルドしたものNTEmacs):http://cha.la.coocan.jp/doc/NTEmacs.html

-- Vim(全学計算機システムにもインストール済み)
--- 入手先:http://www.vim.org


- Windows用
-- TeraPad(全学計算機システムにもインストール済み)
--- 入手先:http://www.forest.impress.co.jp/library/software/terapad/
--- インストール方法:http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html

-- サクラエディタ(全学計算機システムにもインストール済み)
--- 入手先:http://sakura-editor.sourceforge.net/

-- メモ帳(OS標準装備)
-- WordPad(OS標準装備)

-Mac OS用
-- mi
--- 入手先:http://www.mimikaki.net
-- CotEditor
--- 入手先:http://osdn.jp/projects/coteditor/
-- テキストエディット(OS標準装備)

** その他もろもろ [#xf783092]
-- [[筑波大学全学計算機システム:http://www.u.tsukuba.ac.jp/]]

&microtaskscript(151, 10);


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS