[閒聊] 大概是田班hw3的Big-5版本?

看板b01902HW作者 (陳倉)時間11年前 (2013/03/26 00:06), 編輯推噓6(600)
留言6則, 6人參與, 最新討論串1/1
(5) 3.2 在這個題目中,你要實作兩個計算機: 一個(四位元組)整數計算機,包含算術運算以及(C語 言支援的)位元運算、一個矩陣計算機,支援(四位元組)整數的矩陣運算,以及MATLAB中的 一些功能。 (1)實作一個(有號)整數計算機(檔名hw3_2_1.{c,cpp})。你可以假設輸入只包含數字和運 算子,其他(包含空白)的字元都可以被忽略。實作必須包含以下的運算功能,並有正確的 優先順序。 -乘* 除/ 模% -兩數相加+ 相減- -位元且& 互斥或^ 或| 左移<< 右移>> -括弧() -正+ 負-(這邊翻義不確定) -位元補數(翻義也不確定) 你的程式也要符合以下條件: -讓使用者可以輸入一串包含以上運算子的中序運算序列(由stdin;長度<=1,000,000), 直到EOF。 -顯示你的堆疊如何將中序改為後序排列。 -顯示對應的後序序列 -顯示計算結果,必須與C語言內的計算結果相同。 你可以假設所有的輸入都是有意義的、沒有矛盾、也跟原來C的表示法沒有衝突。舉例 j++-i就不會出現在測試的輸入中。 #重要#請準備3個輸入,讓助教可以測試以上的要求;並將你的程式的輸出印在紙本作業 上。 (2) 讓你的整數計算機進化,可以支援變數給值(=)的運算,並讓這些變數支援以上的運算功 能。你可以假設變數只有a~z,26個字母。並在計算機開始時都被初始化為0。 #重要#請準備3個輸入,讓助教可以測試以上的要求;並將你的程式的輸出印在紙本作業 上。 (3)MATLAB是一個處理矩陣運算的商業軟體。MATLAB中的矩陣由下列語法宣告: [1 2 3; 4 5 6; 7 8 9; 10 11 12] ,表示一個4乘3 的矩陣。 你可以假設矩陣只包含整數,亦可以假設輸入只包含數字、運算子、以及宣告矩陣所需要 的字元。矩陣內也不會包含正負號以外的運算子。其他字元你都可以忽略。實作必須包含 以下的運算功能,並有正確的優先順序。 並注意,MATLAB中,運算由左向右。 運算子的優先度可以從這個網址得到: http://www.mathworks.com/help/matlab/matlab_prog/operators.html#f0-38155 -括弧()表示最高優先度 -轉置';[1 2 0; 3 4 1]' =[1 3; 2 4; 0 1]。備註:MATLAB中會用共軛複數的轉置,但 是因為我們處理整數,共軛轉置和一班的轉置是沒有分別的。 -把每一個元素都次方(.^) 舉例[1 2; 3 4] .^2 =[1 4; 9 16] -正號+;舉例 +[1 2; 3 4] =[1 2; 3 4] -負號-;舉例 -[1 2; 3 4] =[-1 -2; -3 -4] -把相同形狀的兩個矩陣中,每一個元素都相乘(.*)。舉例[1 2; 3 4] .*[5 6; 7 8] =[5 12; 21 32] -矩陣相乘(*)(高中課本有定義), 舉例[1 2; 3 4; 0 1] * [5 6; 7 8]=[19 22; 43 50; 7 8]。相同一個運算子也用於將矩陣乘以一個整數。舉例[1 2; 3 4] * 3=[3 6; 9 12] -矩陣相加/相減(+/-):把相同形狀的兩個矩陣的每一個元素都相加/相減。 -冒號運算子(:) 讀入 開頭:公差:結尾,會建構一個一維矩陣。舉例 1:3:11 => [1 4 7 10]。可以假設中間的整數為正。 你的程式也要符合以下條件: -讓使用者可以輸入一串包含以上運算子的MATLAB中序運算序列(由stdin;長度 <=1,000,000),直到EOF。 -顯示計算結果,必須與MATLAB的格式和計算結果相同。 你可以假設所有的輸入都有效、沒有矛盾 #重要#請準備3個輸入,讓助教可以測試以上的要求;並將你的程式的輸出印在紙本作業 上。 所有問題,你都要以以下格式輸出: 整數運算機: RESULT: 1126 矩陣計算機: RESULT: [5 5 6 6; 1 2 3 4] 顯示堆疊過程以及後序序列的格式你可以自由決定,並在其他行輸出。 請將你的程式壓縮為一個zip檔(學號.zip),在4/9/2013下午3:30前上傳ceiba。包含以下 內容: -原始碼 -Makefile;助教會用make來編譯你的程式,然後用make run1測試作業2.2(1);make run2測試作業2.2(3)。在Makefile中,請將stdin導向到./input作為輸入、stdout導向到 ./output作為輸出 -選擇性的README,給助教在打分數前看的一封信 其他手寫部分作業,請在死線前把紙本交到課堂上、或CSIE R217。 金牌使用方法:在手寫的作業封面上寫你要用幾面。ex. use 2 metals。金牌請小心使用 ,一但使用,不可追回。 金牌用完了怎麼辦? 你可以嘗試拿著一個木牌,開始在醉月湖旁邊繞,直到你不小心跌倒 ,讓木牌掉入湖中。然後開始對湖中女神誠實地喇賽。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.164.20.134 ※ 編輯: ryuchenchang 來自: 1.164.20.134 (03/26 00:07)

03/26 00:30, , 1F
小光每次最後一句應該可以變成系列文了
03/26 00:30, 1F

03/26 01:35, , 2F
用心推
03/26 01:35, 2F

03/26 07:56, , 3F
推女神XDD
03/26 07:56, 3F

03/26 11:58, , 4F
推木牌 XDDDD
03/26 11:58, 4F

03/27 14:39, , 5F
最後有夠擺爛XD
03/27 14:39, 5F

03/30 01:17, , 6F
位元組
03/30 01:17, 6F
※ 編輯: ryuchenchang 來自: 111.240.193.44 (03/30 13:27)
文章代碼(AID): #1HK7NnOU (b01902HW)