怎样编程--也算对有些朋友的一个回复

也算对有些朋友的一个回复。(视频教程已发至zeq126.56.com,下面是结论。) 15楼 biosman 2011-09-16 23:51发表 [回复] [引用] [举报] [删除]
楼主的整理的确是一个重要的一环——基础。但是,我认为我认为还有一环——应用能力,更重要。试想,当我们熟知了C语言了的规则了以后,却还是连一个使用的程序都写不出来,甚至不能看懂别人写的一个播放器程序,那么这些关于c规则的学习又有什么意义呢。所以要用,一定要在用的过程中专研。所以不要动不动谈语言的特性和语法规则。比如,我们经常说c语言数组越界问题。这算是一种语法规则(或者漏洞)还是一种可以利用的特性。据我所知,有一种病毒就是利用这个特性来越过系统的密码的。所以我们千万不能单独谈语言本身及其特性。

 

 程序从哪里来的?

怎样编写程序呢?

初学者应该对这些问题有所体会,只有思考了这些问题,才能在“理论”的指导下学习编程。

编写程序的过程为:先用超级计算机“我们的大脑”分析问题,找出解决问题的步骤,再翻译成C语言程序,最后再调试执行对比分析。

编程的关键在于明白一个道理:“C程序只是模拟了我们解决问题的过程”。

一定要自己分析问题,找到解决问题的方法,才能动手写代码,通过调试执行程序应该是体会“程序如何模拟了手工解决问题的过程。”

解决问题的步骤就是算法。

问题的解法可能有多种,行之有效的方法通常与欲使用的工具相关,也就是说,必须结合工具的特点思考问题的解法。

计算机解决问题主要靠循环!毫不夸张地说,思考问题的解法就是考虑“如何构造循环”。

循环是有条件的重复,是“螺旋式上升”,是“波浪式前进”。

综上所述,编程就是分析问题,找出问题解决步骤中的重复,把重复构造成循环,最后通过调试执行程序,体会程序如何模拟了手工解决问题的过程。

下面用实例分析的过程省略!

总结:

C程序只是模拟了我们解决问题的过程!

思考问题的解法就是考虑“如何找出重复,如何构造循环”!

解决复杂问题要注意思维的层次,即“自顶向下,逐步求精”!

一写复杂问题的解法可用“递归算法”,即“更高级的循环”!

初学者的编程主要为:构造循环;写递归函数。

注意:

这里讨论的是何谓编程。对于计算机专业的学生,还有一门称为“算法”的专业课程,以及ACM竞赛等等。

“算法”课程只是总结了解决问题时一些常用的行之有效的做法,当然了这些问题通常都有一定的难度;对于同一个问题的不同做法,也会分析比较它们之间的差异。因此,算法只是编程经验的总结,“算法”也只是我们手工解决问题的过程的模拟。程序有大小之分,本质上没有什么区别。

在学习C语言时掌握了编码的实质,体会到了“自顶向下,逐步求精”,体会到了“递归算法”,“算法”课程也不过尔尔。

在此,我还想强调:

知识的关键不在于你是否知道,而在于你是如何获得的。知识只是能力的载体,只了解了知识,没有体会到其中的能力,只能是舍本逐末!

对于教育(学习),效率是个关键!我们不能通过“研究”获得别人已经创造出的知识,这样做效果最佳,但效率太差;可我们也不能为了学习效率只是获得答案,如何“研究性”地学习知识,既有效果又有效率,考验我们每个人的教学(学习)能力。

融“创造”于“学习”,何愁自己没有“创造性”。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值