泡泡
我现在最大的困惑是, 假如一个程序, 我可以用正确的语言叫他进行运算, 但是我自己本身不知道怎么运算的
Teaks
你不知道怎么算的怎么可能用程序表达出来?
泡泡
我是说, 假如有个问题是1+2+3......+100
我可以通过看书知道该怎么写这个程序, 但是现实中, 我不知道它怎么算的
Teaks
呵呵,你的“看书知道”指的是抄程序吧
泡泡
是的啊
Teaks
这不算“知道”怎么写
只能算“看过”怎么写
泡泡
我明白了
那我要想写正确的程序, 一定要知道正确的运算方法和过程吗 ?
Teaks
一般来说是的。你写程序其实就是把你的思想用程序设计语言表达出来,就算你的表达能力再强,语言功底再深,要是思想本身就错了,程序自然不对。比如我让你计算PI值,你晕头,用计算log2的方法来算了,就算你的代码漂亮的能拿奖,程序本身也是错误的。
泡泡
那数学不好的就学不了C了?
Teaks
错
学C跟数学没关系,数学不好最多影响你今后写程序的能力,不会影响你的C语言水平,就好比刚才那个答案里说的。虽然你的程序错了,但你毕竟写出了漂亮的代码。
注意,正确的算法属于数学领域,C语言只掌管代码好坏
泡泡
那假如我用笔都不能计算出1+2+3+.....100, 我能写出正确的代码以及得到正确的答案吗
Teaks
这是有可能的,你笔算不出,不代表你不会算,比如,你知道PI的计算方法,可是笔算实在太麻烦,你要么算好长时间只得到几位,要么一马虎算错了,这是正常的,而你只要知道PI的计算方法,加上深厚的C语言功底,就能写出正确的代码,而且很可能是漂亮的代码。当然,要是你不知道计算方法,那就很难得到正确的答案了。
泡泡
哈, 你可以把我们今天说的话去发个帖, 然后就这个写点感想
Teaks
感想应该你这个学生写
泡泡
好的
那,一个程序是不是有很多种方法可以写, 我是说, 用不同的表达方式都可以表达出来. 但是怎么去确定某个代码写的更漂亮呢
Teaks
嗯,这个问题有力度,你自己想到的还是看到的?
泡泡
我自己想到的. 因为你说数学学不好的人也有可能写出漂亮的代码, 我就想, 什么叫漂亮的代码呢
Teaks
呵呵,你这个学生我收了。
一个程序的写法何止很多种,首先,一个功能可以用不同的算法实现,这本身就是同一程序的不同写法;然后,同一种算法又可以用不同的表达方式写出来,自然也可以算作同一程序的不同写法。
对于代码漂亮的理解,也可以分两个方面。狭义上说,就是指纯粹的代码漂亮,比如有很好的风格(很好的命名,很好的结构,很好的注释,很好的空白等),对语言元素恰到好处的使用。广义上则还要包括很Cool的算法,一般评论算法多是在正确完成任务的前提下,越简单易懂越好,越容易用计算机实现越好,速度越快,空间占用越小越好。当然,IOCCC那帮家伙除外,他们是代码越花哨越乱越好:P
泡泡
什么样的人更有可能写出漂亮的代码呢
Teaks
完全领悟了语言和算法精髓的人
泡泡
看来我要做的事还很多
Teaks
呵呵,代码漂亮是一个境界,你现在初学,只要做到代码清晰,功能正常就可以了
泡泡
我要努力!
Teaks
刚才还有一个问题没有回答你呢
“我是用的tc, 经常会出现有时候语言正确却无法显示运算结果的问题”
现在你自己知道答案了么?
泡泡
不知道
Teaks
笨笨噢,刚才不是还说:即使能写出漂亮的代码,也不一定能写出正确的程序嘛。你所说的“语言正确”应该是指代码编译通过了,这只能证明你的代码语法上没有错误,不代表逻辑上正确,一个程序要想得到正确的结果,语法正确是大前提,但逻辑正确才是关键。
泡泡
对对, 可能就事这个原因, 我就一直弄不明白为什么呢
Teaks
不是可能,是“就是”
泡泡
:P
Teaks
一般这种情况,你都要检查程序的逻辑,因为肯定是逻辑错误,要么是方法压根不对(方法不对不能出现正确结果的哦),要么是逻辑上有些问题。后者多数是对C语言了解不够造成的,比如不了解运算符优先级,不了解C语言逻辑表达式的快速执行等
泡泡
我明白了,你一说我真是拨云见日啊
Teaks
呵呵,初学者都这样,还是有个人指点一下学得比较快,当然,只限于指点噢,真正的功夫还是自己学出来的,不要指望有人握着你的手一点一点教,那样很难领悟的。
泡泡
是的了, 我有时候这些原理的小问题我就不明白,问别人,别人好多知道怎么写怎么做, 可为什么我没有运算结果, 别人就不明白了
Teaks
那说明你问的人也没有领悟程序设计的精髓。
泡泡
嘘, 鬼子进村了....
Teaks
怎么?
泡泡
要扁你的人估计一群了, 因为我问了n个人了..
Teaks
呵呵,你都问了什么档次的人了?举例说明
泡泡
不能说不能说, 打死我也不说
Teaks
刚才让你写的感想呢?
泡泡
昨天你在超市闲逛,看到了一个有自动显示价格的出售机,于是你把你的手伸进去,上面显示:猪蹄一只,8元。你看后觉得很奇怪,于是把头探进去想知道是怎么回事,结果上面显示:猪头一个,25元
Teaks
臭丫头