發表文章

目前顯示的是 1月, 2022的文章

CPE 一顆星選集題目說明與解答 - Java 筆記與心得分享

以下是自己的 CPE 一顆星選集 解題紀錄 (共有 49 題), 每次考試都會從一顆星選集中抽 1 提出來考, 算是比較能把握的部分,重點筆記整理如下, 內容會包含題目說明、程式碼、註解說明、解答與考古題統計, 使用的程式語言是  JAVA , 有完整的解題過程,透過逐步實作來增加自己的程式思維邏輯, 利用部落格將學習的心得與準備的過程筆記起來, 若有錯誤還請不吝指正,有問題也歡迎留言討論哦 另有提供 49 題的 pdf 檔,售價 199 元。 可將此筆記與 完整解答 帶著走,不再受網路或廣告影響, 若有需要請來信購買 greens2314@gmail.com 推薦閱讀: 建議熟讀 java 基本觀念,與使用 eclipse 練習, 等熟悉之後再到瘋狂程設考試(一定要懂如何查 JAVA API 與使用英漢字典) Java 考試常用的方法或類別 Eclipse 常用小技巧 CPE 一顆星選集: 編號 | 題目名稱 | 歷屆考古題日期 1. Vito's family (CPE10406, UVA10041)   可與第 40 題一起看 2. Hashmat the brave warrior (CPE10407, UVA10055) 3. Primary Arithmetic (CPE10404, UVA10035)  2011/05/25 4. The 3n + 1 problem (CPE10400, UVA100)  2010/06/09 5. You can say 11 (CPE10460, UVA10929)  2011/12/20 6. Bangla Numbers (CPE10414, UVA10101)  2018/12/18 7. List of Conquests (CPE21924, UVA10420)  2019/03/26   可與 第 8, 11, 43 題一起看 字元與字串 8. What's Cryptanalysis? (CPE10402, UVA10008)   可與 第 7, 11, 43 題一起看 9. Decode the Mad man (CPE10425, UVA10222)  2021/10/19 10. Problem J: Summing Di

Java 考試常用的觀念、類別與方法

圖片
 基本資料型別 Primitive Types 參考資料型別 Reference Types 基本資料型別以外的都是參考資料型別 參考資料型別可提供相關屬性或方法 就像遙控器,有提供按鈕,可操控音量或轉台 例如: 字串(String) 基本資料型別之外包類別 每個基本資料型別都有一個外包類別 ( wrapper classes) 將基本資料型別 物件化、提供多樣方法 因為 static 靜態方法,可直接呼叫方法,不需初始化物件,例如:new Integer() 字串轉數字:int number = Integer.parseInt("6"); 基本型別與外包類別 記憶體 Global全域: 存放宣告為 static 的類別變數,在java執行期間一值被維護的資料。 Stack堆疊: 存放基本型別(Primitive type)資料,可預測的記憶體配置方式。 Heap堆積: 存放參考型別(Reference type)資料,動態配置記憶體。 泛型 Stack<Integer> stack = new Stack<Integer> (); <E>  <參考資料類別> <>裡面必須放參考資料類別,第一個字母是大寫 泛化 清楚的跟 Stack 說,我們要收集 Integer 型別的資料 泛化過資料型別是安全的,只有 Integer 型別的資料可以被存放到 Stack 裡面 如果有非Integer 型別的資料,則會出現錯誤 無泛化 任何型態的資料都可以加入Stack中 但讀取時需要轉型才能使用 若有多種形態同時存入Stack中,讀取資料時,會遇到轉型的問題 常用技巧 取得使用者輸入  Scanner scanner = new Scanner(System.in); Scanner為簡易的IO工具 System.in 使用者可自行輸入資料(可自行輸入測試資料) 取得使用者輸入的數字或字串 scanner.nextInt():取得使用者輸入的整數 scanner.nextFloat():取得使用者輸入的浮點數 scanner.next():取得使用者輸入的字串,                              遇到空白字元、空白鍵、Tab鍵即截止 scanner.nextLine():取得

Eclipse 常用小技巧

圖片
 程式碼自動提示設定  快速新增Main方法 建立 class 時可勾選 public static void main(String[] args) 選項 或者是在 eclipse 打 main 會自動出現 程式碼片段, 可快速產生 main method 的結構,可大幅降低 coding 的時間與打錯字的機會 打開自動提示 若打 main 沒有出現提示的話,請調整 eclipse 的設定 Window / Preferences / Java /Editor/ Content Assist / Auto Activation  Disable insertion triggers except 'Enter' 打勾 避免 eclipse Enter 以外的按鍵造成觸發 Auto activation delay (ms) 可設定為 0 Auto activation triggers for Java 輸入 .abcdefghijklmnopqrstuvwxyz 常用 輸入 if 之後畫面會自動出現提示 或是打sysout 會自動產生System.out.println(); 註解與排版 註解 將滑鼠停留在某一行,或是反白多行 Ctrl + / 可增加 // 註解 Ctrl + / 再按一次可取消 // 註解 多行註解可參考下圖選項或快捷鍵 排版 Ctrl + Shift + F 可自動排版程式碼 Import 套件 一次 import 所有物件:Ctrl + Shift + O 使用自動提示匯入 Debug 偵錯 在紅框位置點兩下,即可新增中斷點(藍色小圓圈) 按左上角的蟲圖示即可偵錯 按左上角的紅色方形圖示即可停止偵錯 可透過 Debug 與 Variables 視窗查看訊息 按 F6 可讓程式逐行執行 快速縮放字體大小 放大 Ctrl + 縮小 Ctrl - 風格

49. Sort! Sort!! and Sort!!! (CPE11069, UVA11321) - CPE一顆星解答與說明

圖片
    👉   CPE 一顆星選集列表(49題) 題目說明與解答 CPE一顆星49題解答  - pdf 電子檔 ,售價 199 元, 購買電子檔可將筆記與完整解答帶著走, 坐車、上課時皆可隨時複習, 不受網路或廣告影響, 若有需要請來信購買 greens2314@gmail.com 題目 將題目給的數字除以 M 取餘數的結果由小至大排序 奇數們要排在偶數們前面,其中: 奇數 由大至小排列 偶數 由小至大排列 題目的 除數 M 會給負數 例如除數是 3,因題目會給負數,則餘數可能為 -2,-1, 0, 1, 2 輸入說明 第一行有兩個數字 數字 N:接下來有 N 行,數字有 N 筆 數字 M :除數 最後一行 0 0 表示結束計算 輸出說明 輸出數字 N 與數字 M 印出根據餘數 由小至大 的排序結果 要留意題目描述: 奇數由大至小 排列 偶數由小至大 排列 解題技巧 負數的奇數偶數判斷 除法 串列排序 解題過程 取得輸入 偵測是否有整數輸入 取得數字的筆數 取得除數 根據數字筆數取得數字 印出數字筆數與除數 判斷是否結束計算 宣告用來儲存數字的串列變數 將數字存入串列中 呼叫 List 類別提供的 add() 方法 將列串中的數字由小至大排序 呼叫 Collections 類別提供的 sort() 方法 根據數字取餘數的結果由小至大排列數字 題目給數字可能會是負數 使用 for 迴圈產生可能的餘數,初始值為最小的負數餘數 最小的負數餘數=  0 – 餘數 + 1 例如:除數是 3,則可能的餘數為  -2, -1, 0, 1, 2 逐一開始檢查數字除以除數,取餘數的結果是否等於 for 當前的餘數 先處理 奇數數字 的排序並印出 使用 for 迴圈產生 由大至小 的索引,即可讀取串列中 由大至小 的數值 取得數字,呼叫 List 類別提供的 get() 方法 判斷數字使否為 奇數 , 除以 2 餘數為 1 因數字可能為負數,所以先取絕對值,呼叫 Math.abs() 方法 判斷數字除以除數,其餘數是否等於當前的餘數 若符合上述兩個條件,則將數字印出 再處理 偶數數字 的排序並印出,邏輯與上述步驟相似 使用 for 迴圈產生 由小至大 的索引,即可讀取串列中 由小至大 的數值 取得數字,呼叫 List 類別提供的 get() 方法 判斷數字使否為 偶數 , 除

48. Cola (CPE11067, UVA11150) - CPE一顆星解答與說明

圖片
    👉   CPE 一顆星選集列表(49題) 題目說明與解答 CPE一顆星49題解答  - pdf 電子檔 ,售價 199 元, 購買電子檔可將筆記與完整解答帶著走, 坐車、上課時皆可隨時複習, 不受網路或廣告影響, 若有需要請來信購買 greens2314@gmail.com

47. Mutant Flatworld Explorers (CPE23641, UVA118) - CPE一顆星解答與說明

圖片
    👉   CPE 一顆星選集列表(49題) 題目說明與解答 CPE一顆星49題解答  - pdf 電子檔 ,售價 199 元, 購買電子檔可將筆記與完整解答帶著走, 坐車、上課時皆可隨時複習, 不受網路或廣告影響, 若有需要請來信購買 greens2314@gmail.com 題目 計算出機器人執行指令後最後的 (x, y) 座標在哪裡 方向: E東、W西、S南、N北 指令: Left:原地左轉 90 度 Right :原地右轉 90 度 Forward :朝面對的方位,往前走一格 北方的定義:從 (x, y) 往 (x, y+1) 判斷機器人是否消失 紀錄消失的地點,預防其他機器人再次消失,若遇到有其他器人掉落時,則留在掉落之前的位置 輸入說明 第一行有兩個整數,為地圖的右上角頂點座標,左下角為 (0, 0) 每兩行為一筆機器人資料 第一行:機器人的初始位座標與方位,方位有:N北、S南 、 E東 、 W西 第二行:機器人要執行的指令,指令有:L(向左轉) 、 R(向右轉) 、 F(向前走) 輸出說明 根據每個機器人,印出最後在地圖上的 座標位置 與 方位 若機器人在移動過程中超過地圖邊界,則印出 消失前的位置 與 方位 ,並印出 LOST 字串 解題技巧 座標判斷 方位判斷 讀取字串中的字元 判斷資料是否存在 解題過程 取得輸入 取得地圖右上角的頂點 偵測是否有整數輸入,準備讀取機器人資料 讀取機器人初始座標與方位 方位只有一個字,可讀取第一個位置將方位變成字元,方便後續操作,若不轉成字元也可以 讀取指令字串 取得指定字串中的每個指令 使用 for 迴圈,讀取字串中的字元,呼叫 String 提供的 charAt()  方法 宣告移動過程中產生新的 x 座標與 y 座標的變數 判斷指令是否為前進 F,否則是旋轉 R 跟 L 執行前進 1 格的指令 根據機器人的方位來決定要改變 x 軸或 y 軸座標 若為 東西向 ,則影響 x 軸 東:往東走一格,將目前的 x 座標 + 1 西:往西走一格,將目前的 x 座標 - 1  若為 南北向 ,則影響 y 軸 南:往南走一格,將目前的 y 座標 - 1 北:往北走一格,將目前的 y 座標 + 1  判斷移動最後的位置是否落在地圖 內 若在地圖內 ,則更新機器人的位置 判斷移動最後的位置是否落在地圖 外 宣告串列變