个人项目的基本要求:将10-20道四则运算题目写入文档,程序读取并输出题目,同时计算出正确结果。使用者对每道题目计算答案,答对进行提示,答错输出正确结果。分别记录回答正确、错误的数目并输出。
四则运算题目基本要求:
1.加减乘除四种运算全部出现
四则运算题目基本要求:
1.加减乘除四种运算全部出现
2.算式中要出现括号
3.出现真分数和假分数的运算
4.最少出现一个长度为10的四则运算(10个数字的混合运算)
3.出现真分数和假分数的运算
4.最少出现一个长度为10的四则运算(10个数字的混合运算)
题目要求中需要算式中包含分数,而分数的表示和除法的表示是一样的,所以表示上有时会存在二义性。比如在表示4除以2分之3时,正常的书写是4÷2/3,结果为6。但由于“÷”在编程时也表示为“/”,所以该式会变成4/2/3,而4/2/3结果为2分之3。分数与除法无法区分会导致结果的错误。为此我只能在分数两边加上括号才能区分,即4/(2/3),而直接在分数两边加括号实际上又是不符合习惯的。题目中还要求最少出现一个长度为10的四则运算。那4/(2/3)究竟应该算是3个数的运算还是2个数的运算也是怎么理解都可以的。我的理解是当作题目中的“/”全是除以的意思,即算数题的题干中不包括分数,只是整数运算,结果中可以包含分数(必须最简)。
一开始做这个项目的时候我发现有的式子输入正确的结果发聩是错误,输出答案后发现实际上答案的计算也是没有错的,但是在负分数的表示上不规范。输入结果时按照习惯负分数的负号是在前面的,形如-a/b,但是计算结果的储存可能为负号在分母前,形如a/-b,导致程序出错。后来统一了标准,判断分母前是否有负号,若有则分子分母同时取负,消除分母上的负号,使结果符合习惯表示。
通过这次个人项目,我学到了很多,我对算法实现的能力也得到加强了,但也存在问题需要改进,比如考虑问题一开始总是不够全面。
希望老师以后出的项目要求能够明确,不要出现二义性,这次的项目要求我看着比较纠结。