免費開始練習
高考申論題 109年 [資訊處理] 程式設計

第 一 題

請使用 Java、C#、C++或Python等物件導向程式語言,建立矩陣相關運算的系統,系統一共有三個類別,分別為抽象類別 Matrix,實作類別 MatrixMultiply及MatrixAdd,其中:(30分) *抽象類別 Matrix 中所有的變數跟方法皆為protected,主要包含了: • matrix1, matrix2, resultM 三個實數值二維 matrices 資料 ·一個抽象的 checkDimension()方法,用來檢查 matrix1跟 matrix2是否適合做所指定的運算 ·一個抽象的matrixOperation()方法,用來對 matrix1跟 matrix2進行運算 ·一個 setMatrix()方法,可以將所傳入的兩個 matrices 複製到 matrix1, matrix2 ·改寫物件的toString()方法,可以顯示 matrix1, matrix2及 resultM 的內容 *類別 MatrixMultiply,繼承類別 Matrix: ·實作 Matrix 中的兩個抽象方法,分別可以實現父類別內 matrix1及 matrix2進行乘法時的維度檢查及乘法運算,進行運算前會主動呼叫 checkDimension(),確定是否可以進行相關運算,如無法運算, resultM 會被設定為 null 並回傳,否則進行運算,結果存於父類別的 resultM 並回傳 ·一個空建構子及一個可以接受兩個二維 matrices 的建構子,建構子中呼叫父類別的 setMatrix()方法,設定 matrix1及 matrix2(空建構子會將 matrix1及 matrix2設為null) *類別 MatrixAdd,同 MatrixMultiply,僅實作抽象方法時,是以 matrices 加法為對象,進行維度的檢查及運算
📝 此題為申論題

思路引導 VIP

這題測驗物件導向核心概念(抽象類別、繼承與封裝)以及基本演算法(矩陣加法與乘法)的掌握。解題時應先建立抽象類別並嚴格遵守存取修飾子要求(留意 Java 中 override Object 的 toString() 必須為 public 的語言特性);接著實作子類別的建構子與運算邏輯,特別注意矩陣運算的維度檢查規則(加法需兩者維度完全一致,乘法需左矩陣的行數等於右矩陣的列數)以及空值防護。

🤖
AI 詳解 AI 專屬家教

【解題思路】本題選用 Java 語言實作。使用 abstract 關鍵字宣告父類別,並定義 protected 層級的變數與方法。特別注意:因 Java 繼承機制限制,子類別改寫 (Override) 父類別 ObjecttoString() 時不可縮小存取範圍,故 toString() 必須為 public,其餘皆依題目要求設為 protected。矩陣賦值考量資料封裝,實作了深拷貝 (Deep Copy) 以避免外部修改影響內部狀態。 【程式碼實作】

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 109年[資訊處理] 程式設計 全題

升級 VIP 解鎖