程式解析 行數 解析 2 使用關鍵字 class 定義類別, 本類別名稱為 CCircle 3 宣告變數 radius 的資料形態為 double 宣告 CCircle 類別之建構元 2. CCircle( ), 此建構元之使用不用傳入引數 3. 將 radius 之值設為 2.7 9

Similar documents
840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

資料結構之C語言重點複習

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Microsoft Word - 投影片ch11

Microsoft PowerPoint - Class2.pptx

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft Word - ACI chapter00-1ed.docx

投影片 1

運算子多載 Operator Overloading

[Short Essay:] 1. (5 points) Use state-of-memory diagram to describe the differences between x and y declared as follows: double[] x = new double[4];

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Microsoft PowerPoint - chap3

Microsoft Word - ACG chapter00c-3ed.docx

第一章

CC213

105A 資管一程式設計實驗 06 函式定義謝明哲老師 2 程式設計實驗 6.3: 自行定義一個可以接受兩個整數並傳回其最大公因數的函式, 接著利用該函式自 行定義一個可以接受兩個整數並傳回其最小公倍數函式 // gcd_fcn.cpp int gcd(int m,

Microsoft Word - ACL chapter02-5ed.docx

Microsoft Word - 投影片ch03

電機工程系認可證照清單 /7/1

Microsoft Word 電腦軟體設計.doc

Excel VBA Excel Visual Basic for Application

Microsoft Word - _m30.doc

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

範本檔

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

台北老爺校外實地參訪結案報告

糖尿病食譜

,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,


Microsoft Word - ch03.doc

Visual C# 2005程式設計

C 語言—陣列及字串

90 課程 大綱 條件判斷 : if ( 表 示式 ) {... } [P.91] 如果表 示式成 立就... if ( 表 示式 ) {... } else {... } [P.93] 如果表 示式成 立就... 否則就.. C / C++ 的複合指定與遞增遞減運算 子 [P.96] 重複執 行

100

The Embedded computing platform

######## First set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else y <- 2 ######## Second set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else ###

Microsoft Word - 02.目錄.doc

Microsoft PowerPoint - VB14.ppt

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new


1

浮點數 Type Size 最小值最大值 float 32 bits 1.4E E38 double 64 bits 4.94E E308 法為 同樣使用 TextField 輸入浮點數, 設定 TextField 物件變數為 inputtextfield, 其值為 no

3-1 Wii ( )

Java 程式設計入門


Microsoft Word - ch04三校.doc

第1章

CC213

有你真好文山融合之愛 ( ) 孩子的另一扇門 ( 特生 / 郁絜爸爸 ) 3 82

Microsoft Word - 投影片ch12

Microsoft PowerPoint - 06_迴圈2.pptx

Microsoft PowerPoint - Class4.pptx

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

Microsoft Word - C-pgm-ws2010.doc

untitled

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

3. 反 映 : 4. 五 花 八 门 : 5. 慷 慨 : 6. 参 与 : 7. 慰 劳 : 8. 延 续 : 9. 珍 爱 : 10. 浪 漫 : 三. 找 出 下 列 每 组 词 中 的 近 义 词 或 同 义 词 : 节 日 节 气 节 令 时 节 习 俗 民 俗 仪 式 风 俗 文 献

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e


投稿類別:資訊類

The golden pins of the PCI card can be oxidized after months or years

Microsoft Word 範例試卷編號:GD docx

注意事項 一 本比賽系統採用 PC 2, 所使用的 I/O 是標準輸出輸入裝置, 所以可以使用 C 語言的 scanf ( ) printf ( ), 或是 C++ 語言上的 cin cout 來讀入及輸出資料, 比較要注意的是 : 本系統並不是用人工方式來 keyin 資料, 所以不必在意使用者界

2. S 輸入一個整數 n, 求出從 1 ~ n 所有可以被 3 整除及又可以被 7 整除所有 的數字的總和的程式 ( 請上傳 Sum_3_7.py 檔 ) Sum_3_7.py 程式樣版 n = int(input()

踏出C++的第一步

Microsoft Word - AEL0124-CH05

Microsoft PowerPoint - SAGE 2010

untitled

Microsoft PowerPoint - 07-overloaded.ppt

2

Microsoft Word - Chap05.doc

第二章 簡介類別


09 F9 128 peer to peer, P2P file transfer protocol bittorrent 10 P2P P2P GNU/ Linux P2P CC 單機版的智慧財產權 vs. 人權戰爭 1980 DVD content

Scott Effective C++ C++ C++ Roger Orr OR/2 ISO C++ Effective Modern C++ C++ C++ Scoot 42 Bart Vandewoestyne C++ C++ Scott Effective Modern C++ Damien

投影片 1

PowerPoint Presentation

Transcription:

每一單元教材及投影片目錄 : 0. 教學目標 : 亂數與數學類別使用 1. 前言 : 學會 Random 函數使用 開根號函式 絕對值函式 次方數函式類別介紹 : A. 類別宣告方式 class 類別名稱 { } 類別宣告的關鍵字為 class 關鍵字 class 後面則擺放類別名稱 { } 內則為該類別之定義 B. 類別中的定義可包含 變數 (variable) 函數 (function) 建構元 (constructor) 特殊函數 建構元可幫助新建立的物件設定初始值 建構元名稱須與所屬類別名稱相同 建構元不能有回傳值, 且建構元定義時不使用關鍵字 void 建構元可多載 C. 類別宣告

程式解析 行數 解析 2 使用關鍵字 class 定義類別, 本類別名稱為 CCircle 3 宣告變數 radius 的資料形態為 double 5-7 1. 宣告 CCircle 類別之建構元 2. CCircle( ), 此建構元之使用不用傳入引數 3. 將 radius 之值設為 2.7 9-12 1. 宣告 CCircle 類別之建構元 2. CCircle(double r), 此建構元之使用須傳入資料形態為倍精度浮點數之引數 3. 將傳入建構元的引數值設給 r 變數 4. 再將 r 變數的值設給 radius 變數 14-17 1. 宣告函數, 函數名稱為 show 2. show( ), 顯示此函數之使用不用傳入引數 3. 此函數印出變數 radius 的值 多載指同一類別中, 具有一個以上的建構元, 建構元名稱相同, 但傳入之引數 (1) 可個數相同但資料形態度同或 (2) 傳入之引數 個數不同 D. 類別使用

程式解析 行數 解析 23 1. 等號右邊 : 呼叫建構元 CCircle( ) 對屬於 CCircle 類別的物件設定初值 本例子將變數 radius 值設為 2.7 2. 等號左邊 : 將設定好初值之物件, 存放屬於 CCircle 類別之變數 cc1 中 3. cc1 被視為儲存 CCircle 類別之物件變數 24 1. 呼叫 cc1 物件中的 show 函數使用 2. show 函數功能為印出變數 radius 的值 3. 輸出結果為 radius=2.7 26 1. 等號右邊 : 呼叫建構元 CCircle(double r) 對屬於 CCircle 類別的物件設定初值 本例子將建構元中的變數 r 值設為 3.8, 再將變數 radius 值設為 r 2. 等號左邊 : 將設定好初值之物件, 存放屬於 CCircle 類別之變數 cc2 中 3. cc2 被視為儲存 CCircle 類別之物件變數 27 1. 呼叫 cc2 物件中的 show 函數使用

輸出結果 2. show 函數功能為印出變數 radius 的值 3. 輸出結果為 radius=3.8 E. 定義好之類別引用 有許多類別已經被 Java 程式設計師所撰寫完成, 因此 Java 把 功能相近的類別歸類到相近的類別庫中, 一旦要引用某類別庫 中的類別, 只要匯入該類別即可 類別引用語法 import java.util.scanner; import: 引用的關鍵字 java.util.scanner: 被引用的類別 2. 題目 : 亂數選號程式題目說明 : 請設計一樂透亂數選號程式, 由 1~42 中選出 6 個不重覆的數字組合並輸出 請使用已下方式 : Random randnum = new Random(); randnum.setseed(23323456); setseed 就是設定亂數種子, 可以使每次跑出的亂數序列, 都會是一樣的輸入說明 : 輸入 seed 輸出說明 : 由 1~42 中選出 6 個不重覆的數字組合並輸出, 數字間請以 tab 作為間格, 最後必須有換行字元 範例 : Sample Input: Sample Output: 23323456 34 40 41 18 24 33

解題邏輯 : a. 考慮需使用到的類別甲 鍵盤輸入值 :Scanner 類別乙 亂數產生 :Random 類別 b. 輸入整數值作為亂數的 seed c. 隨機產生 6 個介於 1~42 之間的整數甲 使用 for 迴圈執行六次亂數取值乙 利用亂數物件中的 nextint( ) 函數, 產生 1~42 之間的值程式碼 : 程式解析 : 行數 解析 1-3 多行注釋 6 引用 Random 類別 7 引用 Scanner 類別 10 建構物件設給物件變數 1. 等號右邊 : 呼叫建構元 Scanner( ) 2. 等號左邊 : 將建構好之物件, 存放屬於 Scanner 類 別之變數 scn 中 3. scn 被視為儲存 Scanner 類別之物件變數 11 宣告整數變數 seed 與 i 12 螢幕輸出, 提醒使用者從鍵盤輸入亂數 seed 值

13 等號右邊 : 使用物件 scn 中的 nextint( ) 函數, 將鍵盤中輸入的整數設給等號左邊的變數 seed 14 印出 seed 變數中的值於螢幕上 16 建構物件設給物件變數 1. 等號右邊 : 呼叫建構元 Random( ) 2. 等號左邊 : 將建構好之物件, 存放屬於 Random 類別之變數 rand 中 3. rand 被視為儲存 Random 類別之物件變數 17 使用物件 rand 中 setseed( ) 函數, 將變數 seed 值設為亂數種子 19-21 for 迴圈的使用 19 行 :for 迴圈執行條件設訂 20 行 :rand.nextint(42) 使用物件 rand 中 nextint( ) 函數, 將小括號中的值設為 42, 則會隨機產生 0-41 之間的整數值 故須把 rand.nextint(42)+1, 則產生出的亂數則介於 1-42 之間 變數間須用 tab 鍵隔開, 故須印出 \t 22 印出程式結束後的換行符號 3. 題目 : 電腦猜數字 ( 時間限制兩秒 ) 題目說明 : 設計一猜數字程式, 由電腦隨機產生一亂數 (1~100) 讓使用者來猜 每猜一次程式必須回應使用者 < 答對 > < 太大 > 或 < 太小 >, 一直到猜對才結束程式 Random randnum = new Random(); randnum.setseed(23323456); setseed 就是設定亂數種子, 可以使每次跑出的亂數序列, 都會是一樣的輸入說明 : 輸入 seed 及輸入猜測數字 (1~100) 輸出說明 : 輸出判斷結果, 直到數字正確 (true) 為止, 最後必須有換行字元 答對輸出 true 太小輸出 small 太大輸出 big

範例 : Sample Input: 23323456 10 13 11 1723 21 Sample Output: small big true true 6101 small 88 true 95 解題邏輯 : a. 考慮需使用到的類別甲 鍵盤輸入值 : 鍵盤中輸入 seed 與猜數字 Scanner 類別乙 亂數產生 : 隨機產生 1-100 間的整數值為答案 Random 類別 b. 輸入整數值作為亂數的 seed c. 隨機產生介於 1~100 間的整數作為答案 d. 使用迴圈, 讓使用者可多次輸入猜測值, 直到猜測值與答案相同 e. 使用者輸入 1~100 間的整數值並與正確答案作比較甲 輸入值 < 正確答案 : 輸出 small 乙 輸入值 > 正確答案 : 輸出 big 丙 輸入值 == 正確答案 : 輸出 true+ 換行符號程式碼 :

程式解析 : 行數解析 1-3 多行注釋 4 引用 Random 類別 5 引用 Scanner 類別 9 建構物件設給物件變數 4. 等號右邊 : 呼叫建構元 Scanner( ) 5. 等號左邊 : 將建構好之物件, 存放屬於 Scanner 類別之變數 scn 中 6. scn 被視為儲存 Scanner 類別之物件變數 10 宣告整數變數 seed,answer 與 guess seed 變數 : 儲存使用者設定之亂數種子 answer 變數 : 儲存隨機產生之 1~100 間數值 guess 變數 : 儲存使用者猜測之數值 11 螢幕輸出, 提醒使用者從鍵盤輸入亂數 seed 值

12 等號右邊 : 使用物件 scn 中的 nextint( ) 函數, 將鍵盤中輸入的整數設給等號左邊的變數 seed 13 建構物件設給物件變數 4. 等號右邊 : 呼叫建構元 Random( ) 5. 等號左邊 : 將建構好之物件, 存放屬於 Random 類別之變數 rand 中 6. rand 被視為儲存 Random 類別之物件變數 14 使用物件 rand 中 setseed( ) 函數, 將變數 seed 值設為亂數種子 15 等號右邊 : 隨機產生 1~100 間的數值並設給等號左邊的 answer 變數 29-29 do{ }while( ) 迴圈的使用 : 先執行迴圈內容一次, 再於 while 處判斷迴圈條件是否為 true( 猜的值與答案不一致 ) 繼續執行, 或 false( 猜的值與答案一致 ) 停止執行 16 行 :do 迴圈的起始處 17 行 : 提醒使用者猜測 1~100 間的數值 18 行 : 等號右邊 : 將猜測出來的數值設給 guess 變數 19 行 : 判斷 guess 的值是否大於 answer, 若為 true, 則於 20 行印出 big, 讓使用者知道猜測的值大於答案 22 行 : 判斷 guess 的值是否小於 answer, 若為 true, 則於 23 行印出 small, 讓使用者知道猜測的值小於答案 25 行 : 判斷 guess 的值是否等於 answer, 若為 true, 則於 26 行印出 true, 讓使用者知道猜對了 29 行 :while(guess!=answer); while 處判斷迴圈條件是否為 true true( 猜的值與答案不一致 ): 程式碼繼續從第 16 行開始執行 false( 猜的值與答案一致 ): 程式碼則繼續從第 8 行開始執行, 進行下一輪的 seed 值 answer 值的產生與使用者重新猜測數值

5. 作業一 : 比大小題目說明 : 設計一猜大小程式, 使用者須輸入進行 n 次比大小活動, 再由電腦隨機產生 n 個亂數 (2~49), 每個亂數搭配隨機產生 0 或 1 的值以決定該數字是要比大或比小 (0 代表比小 1 代表比大 ), 讓使用者來猜 每猜一次 ( 猜測數值介於 1~50) 必須回應使用者猜測值 x( 大於 等於或小於 ) 亂數 :< 猜對 > 或 < 猜錯 >, 一直到 n 個亂數猜完為止 Random randnum = new Random(); randnum.setseed(23323456); setseed 就是設定亂數種子, 可以使每次跑出的亂數序列, 都會是一樣的輸入說明 : 輸入 seed 及輸入猜測多少輪 (n) 比大小活動 輸出說明 : 輸出猜大小結果, 直到 n 個亂數猜完為止 每輪猜對輸出 true 猜錯輸出 false 總結猜了 n 次, 猜對 y 次, 猜對率為 y/n*100% 範例 : Sample Input: seed>23323456 n>3 guess 1 >17 guess 2 >33 guess 3 >50 Sample Output: Round1:34 17<34: 猜對 Round2:40 33<40: 猜錯 Round3:41 50>41: 猜對 ============ 共猜了 3 次, 猜對 2 次猜對率為 66.7% 6. 作業二 : 終極密碼題目說明 : 設計一猜密碼遊戲, 一開始使用者須猜測介於 1~100 之間的數值, 電腦回應所猜測的數值是否正確, 若正確即猜對 ; 若不正確, 電腦會回應密碼介於多少之間, 再由使用者從當中猜測數值, 直到猜對為止 Random randnum = new Random();

randnum.setseed(23323456); setseed 就是設定亂數種子, 可以使每次跑出的亂數序列, 都會是一樣的輸入說明 : 輸入 seed 及輸入猜測於一定範圍內的數值 輸出說明 : 輸出猜大小結果, 直到猜測數值正確為止 第一次猜測的值介於 1~100 之間 猜對 : 遊戲結束 猜錯 : 電腦回應猜測數值介於一定範圍內 若猜測的值沒有介於該範圍內, 提醒使用者輸入值介於該範圍內, 再次輸入 範例 : Sample Input: seed>23323456 guess>3 guess>50 guess>60 guess>11 guess>10 Sample Output: Remind:3~100 之間 Remind:3~50 之間 Remind: 請輸入 3~50 之間的數值 Remind:3~11 之間 Bingo 猜對了