Wednesday, October 19, 2005
10/22照常上課!!
因為校慶運動會延期至11/19舉行, 因此10/22照常上課!!
Sunday, October 16, 2005
第四章習題補充: 第9, 10題
第9題:
本題主要是要找出 "兔子數量", "雞隻數量", "雞兔頭的總數", " 雞兔腳的總數" 四個變數之間的關係, 我們可以把他們之間的關係化成數學式如下:
令雞隻數量為chicken, 兔子數量為rabbit, 雞兔頭的總數為heads, 雞兔腳的總數為legs
則
chicken + rabbit = heads; (2 * chicken) + (4 * rabbit) = legs
整理後
=>
chicken = heads - rabbit; --------------- (a)
(4 * rabbit) = legs - (2 * chicken) ------ (b)
把 (a) 代入 (b)
=>
(4 * rabbit) = legs - [2 * (heads - rabbit)]
=>
(4 * rabbit) = legs - (2 * heads) + (2 * rabbit)
=>
(2 * rabbit) = legs - (2 * heads)
=>
rabbit = [legs - (2 * heads)] / 2
只要legs和heads已知, 就可以利用這個式子算出rabbit的值, 再把rabbit代入 (a) 就求出chicken了!
=>
chicken = heads - rabbit
轉換成Java程式如下:
import java.io.*;
public class EX4_9 {
public static void main(String[] argv) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please input total legs: ");
String str = br.readLine();
int legs = Integer.parseInt(str); // 腳的數量
System.out.print("Please input total heads: ");
str = br.readLine();
int heads = Integer.parseInt(str); // 頭的數量
int chicken; // 雞的數量
int rabbit; // 兔的數量
rabbit = (legs - (2 * heads)) / 2;
chicken = heads - rabbit;
System.out.println("雞有 " + chicken + "隻");
System.out.println("兔有 " + rabbit + "隻");
}
}
第10題:
本題主要是要練習 "條件運算子" 的用法, 還有因為停車費的計算, 根據總停車期間的長短而有所不同, 所以我們在計算停車費之前, 要先找出 "超過四小時", "超過二小時", "未超過二小時" 的時間 ".
另外, 為了方便計算時間 (時間是六十進位, 不好計算), 把時間化成分鐘較好, 程式如下:
public class EX4_10 { public static void main(String[] argv) {
int startH = 10; // 開始停車的整點
int startM = 23; // 開始停車的分鐘
int endH = 15; // 結束停車的整點
int endM = 20; // 結束停車的分鐘
int total = (endH * 60 + endM) - (startH * 60 + startM); // 停車總分鐘數
// 各時段分鐘數
int over4 = total - (4 * 60);
over4 = (over4 > 0) ? over4 : 0;
int over2 = total - over4 - (2 * 60);
over2 = (over2 > 0) ? over2 : 0;
int under2 = total - over4 - over2; // 停車費
int fee = (under2 / 30) * 30 + (over2 / 30) * 40 + (over4 / 30) * 60;
System.out.println("總共停車費:" + fee + " 元");
}
}
本題主要是要找出 "兔子數量", "雞隻數量", "雞兔頭的總數", " 雞兔腳的總數" 四個變數之間的關係, 我們可以把他們之間的關係化成數學式如下:
令雞隻數量為chicken, 兔子數量為rabbit, 雞兔頭的總數為heads, 雞兔腳的總數為legs
則
chicken + rabbit = heads; (2 * chicken) + (4 * rabbit) = legs
整理後
=>
chicken = heads - rabbit; --------------- (a)
(4 * rabbit) = legs - (2 * chicken) ------ (b)
把 (a) 代入 (b)
=>
(4 * rabbit) = legs - [2 * (heads - rabbit)]
=>
(4 * rabbit) = legs - (2 * heads) + (2 * rabbit)
=>
(2 * rabbit) = legs - (2 * heads)
=>
rabbit = [legs - (2 * heads)] / 2
只要legs和heads已知, 就可以利用這個式子算出rabbit的值, 再把rabbit代入 (a) 就求出chicken了!
=>
chicken = heads - rabbit
轉換成Java程式如下:
import java.io.*;
public class EX4_9 {
public static void main(String[] argv) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please input total legs: ");
String str = br.readLine();
int legs = Integer.parseInt(str); // 腳的數量
System.out.print("Please input total heads: ");
str = br.readLine();
int heads = Integer.parseInt(str); // 頭的數量
int chicken; // 雞的數量
int rabbit; // 兔的數量
rabbit = (legs - (2 * heads)) / 2;
chicken = heads - rabbit;
System.out.println("雞有 " + chicken + "隻");
System.out.println("兔有 " + rabbit + "隻");
}
}
第10題:
本題主要是要練習 "條件運算子" 的用法, 還有因為停車費的計算, 根據總停車期間的長短而有所不同, 所以我們在計算停車費之前, 要先找出 "超過四小時", "超過二小時", "未超過二小時" 的時間 ".
另外, 為了方便計算時間 (時間是六十進位, 不好計算), 把時間化成分鐘較好, 程式如下:
public class EX4_10 { public static void main(String[] argv) {
int startH = 10; // 開始停車的整點
int startM = 23; // 開始停車的分鐘
int endH = 15; // 結束停車的整點
int endM = 20; // 結束停車的分鐘
int total = (endH * 60 + endM) - (startH * 60 + startM); // 停車總分鐘數
// 各時段分鐘數
int over4 = total - (4 * 60);
over4 = (over4 > 0) ? over4 : 0;
int over2 = total - over4 - (2 * 60);
over2 = (over2 > 0) ? over2 : 0;
int under2 = total - over4 - over2; // 停車費
int fee = (under2 / 30) * 30 + (over2 / 30) * 40 + (over4 / 30) * 60;
System.out.println("總共停車費:" + fee + " 元");
}
}
教科書的Power Point檔: 第五章到第八章
第五章到第八章, 請需要的同學自行下載.
第五章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch05.ppt
第六章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch06.ppt
第七章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch07.ppt
第八章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch08.ppt
第五章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch05.ppt
第六章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch06.ppt
第七章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch07.ppt
第八章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch08.ppt
Sunday, October 02, 2005
教科書的Power Point檔: 第一章到第四章
先放第一章到第四章, 請需要的同學自行下載.
第一章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch01.ppt
第二章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch02.ppt
第三章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch03.ppt
第四章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch04.ppt
第一章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch01.ppt
第二章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch02.ppt
第三章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch03.ppt
第四章: http://msa.vnu.edu.tw/~gilbert/java/F5720-Ch04.ppt
Sunday, September 25, 2005
第三週:補充資料
電腦鍵盤符號的唸法:
「~」swung dash 或 curly tail
「!」exclamation mark
「@」at
「#」hash mark 或 pound sign
「^」caret
「&」and sign 或 ampersand
「_」under bar 或 under score
「<」less-than
「>」greater-than
「」pipe
「(」parenthesis
「[」angle parenthesis 或 bracket
「{」curly parenthesis 或 curly bracket
「*」asterisk 或 also bug 或 star
「$」dollar sigh
「;」semicolon
「:」colon
「,」comma
「.」period 或 full stop 或 dot
「'」quotation marks
「"」double quotation marks
科學記號表示法:
舉例如下:
1.要表示40, 可以表示成0.4E2 , (因0.4E2=0.4*10^2=40)
2.要表示0.002, 可以表示成2.0E-3 , (因為2.0E-3=2.0*10^-3=0.002)
「~」swung dash 或 curly tail
「!」exclamation mark
「@」at
「#」hash mark 或 pound sign
「^」caret
「&」and sign 或 ampersand
「_」under bar 或 under score
「<」less-than
「>」greater-than
「」pipe
「(」parenthesis
「[」angle parenthesis 或 bracket
「{」curly parenthesis 或 curly bracket
「*」asterisk 或 also bug 或 star
「$」dollar sigh
「;」semicolon
「:」colon
「,」comma
「.」period 或 full stop 或 dot
「'」quotation marks
「"」double quotation marks
科學記號表示法:
舉例如下:
1.要表示40, 可以表示成0.4E2 , (因0.4E2=0.4*10^2=40)
2.要表示0.002, 可以表示成2.0E-3 , (因為2.0E-3=2.0*10^-3=0.002)
Sunday, September 18, 2005
作業二
作業二的內容如下:
題目: 我的第一個Java程式
注意事項:
1.請繳交Compile完成的檔案. (.class檔)
2.輸出的文字請加上班級學號姓名.
3.請參照教科書或上課的投影片教材(可以在 http://lms.vnu.edu.tw下載)
4.請使用 http://lms.vnu.edu.tw 網站上傳作業
題目: 我的第一個Java程式
注意事項:
1.請繳交Compile完成的檔案. (.class檔)
2.輸出的文字請加上班級學號姓名.
3.請參照教科書或上課的投影片教材(可以在 http://lms.vnu.edu.tw下載)
4.請使用 http://lms.vnu.edu.tw 網站上傳作業
Wednesday, September 14, 2005
第二週:補充資料
第二週上課內容補充如下:
Java語言歷史網站
身為Java程式設計師, 總有一天會被問到像 "Java為什麼要叫做Java?" 之類的問題.
在強調 "人文" 與 "科技" 教育並重的時代, 我們當然不能回答不出來這樣的問題! 下列是Sun Microsystems官方提供的Java語言歷史網站:
http://java.com/en/javahistory/
網站裡面有Java語言的完整歷史, 相關報導以及Java語言發展上的關鍵人物專訪的影像檔.
Java語言特色之一: 使用Unicode
使用Unicode是Java語言的一大特色, 但是相信很多人不懂什麼是 "Unicode", 下列網頁是Unicode的官方網站關於Unicode的中文說明: (ps: 果然是Unicode官方網站, 所有語言的說明都有!) http://www.unicode.org/standard/translations/t-chinese.html
另外在 http://www.unicode.org 網站還可以免費下載Unicode字元字碼表(Code Chart), 是對Unicode有興趣的人不可不知道的網站!
Java程式開發環境:
開發Java程式需要安裝Java開發套件和程式編輯器, 如下:
- Java開發套件(Java Development Kit; JDK), 目前最新的是5.0版, 可以在http://java.sun.com/j2se/1.5.0/download.jsp 免費下載使用.
- 文字編輯器或整合開發環境(Integrated Development Environment), 如: JBuilder, Jcreator, Ultra Editor, 或記事本等, 其中JCreator (LE版)可以免費在 http://www.jcreator.com/download.htm 下載使用.
Java語言歷史網站
身為Java程式設計師, 總有一天會被問到像 "Java為什麼要叫做Java?" 之類的問題.
在強調 "人文" 與 "科技" 教育並重的時代, 我們當然不能回答不出來這樣的問題! 下列是Sun Microsystems官方提供的Java語言歷史網站:
http://java.com/en/javahistory/
網站裡面有Java語言的完整歷史, 相關報導以及Java語言發展上的關鍵人物專訪的影像檔.
Java語言特色之一: 使用Unicode
使用Unicode是Java語言的一大特色, 但是相信很多人不懂什麼是 "Unicode", 下列網頁是Unicode的官方網站關於Unicode的中文說明: (ps: 果然是Unicode官方網站, 所有語言的說明都有!) http://www.unicode.org/standard/translations/t-chinese.html
另外在 http://www.unicode.org 網站還可以免費下載Unicode字元字碼表(Code Chart), 是對Unicode有興趣的人不可不知道的網站!
Java程式開發環境:
開發Java程式需要安裝Java開發套件和程式編輯器, 如下:
- Java開發套件(Java Development Kit; JDK), 目前最新的是5.0版, 可以在http://java.sun.com/j2se/1.5.0/download.jsp 免費下載使用.
- 文字編輯器或整合開發環境(Integrated Development Environment), 如: JBuilder, Jcreator, Ultra Editor, 或記事本等, 其中JCreator (LE版)可以免費在 http://www.jcreator.com/download.htm 下載使用.
Monday, September 12, 2005
第一週: 作業一
第一週上課大概因為颱風的關係只到了20多位同學, 所以大概簡介一下課程內容之後就下課了. 還有為了測試一下 "萬能網路學院" (http://lms.vnu.edu.tw) 這個教學輔助平台的功能, 也讓同學們熟悉一下這個工具, 所以就請同學配合回家測試張貼, 當作是第一次作業.