首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > 小泡泡的困惑
【标  题】:小泡泡的困惑
【关键字】:
【来  源】:网络

小泡泡的困惑

编者按:这个文章转自黑客基地BBS,也许语法上不是很精确,但是里面问答者的话, 也许多少会对很多初学者有所启发~


泡泡
我现在最大的困惑是, 假如一个程序, 我可以用正确的语言叫他进行运算, 但是我自己本身不知道怎么运算的

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
臭丫头

送给正在学习C++朋友的50条:【上一篇】
程序高手的心得 写好C程序的10条秘籍:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • Focus 2000/ 2100高画质H.323会议电视终端
  • 华为隐藏命令查看CPU使用情况
  • 用动软.NET代码生成器Codematic配合Nant开发W eb三层框架
  • 谁说BT会被收购?
  • GIF Movie Gear 3.0.2pj心得 算法分析
  • 简单算法——用易图书馆管理系统 2003 V3.0 下
  • 子串生成新的数组 - sort 数组元素的排序 - splice
  • 14.9 Relational & type-testing operators
  • C3CRM开源社区发布C3CRM2.0.3升级包和手册
  • MRPII/ERP对企业经营方式转变的影响
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.