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

楼主: ryuchenchang (陈仓)   2013-03-26 00:06:06
(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。金牌请小心使用
,一但使用,不可追回。
金牌用完了怎么办? 你可以尝试拿着一个木牌,开始在醉月湖旁边绕,直到你不小心跌倒
,让木牌掉入湖中。然后开始对湖中女神诚实地喇赛。
作者: buefox (foxyrex)   2013-03-26 00:30:00
小光每次最后一句应该可以变成系列文了
作者: weareworld (Hello!World)   2013-03-26 01:35:00
用心推
作者: CalvinyhChen (村长王)   2013-03-26 07:56:00
推女神XDD
作者: kevin830222 (恺恺)   2013-03-26 11:58:00
推木牌 XDDDD
作者: BoyoChen (BoyoChen)   2013-03-27 14:39:00
最后有够摆烂XD
作者: lsc36 (lsc36)   2013-03-30 01:17:00
字节

Links booklink

Contact Us: admin [ a t ] ucptt.com