{译}学习新编程语言的15个练习

    不得不停下来思考一下我们该如何学习一门新的编程语言。
    过去的三年里,学习了数种编程语言,特别是头两年,差不多不下十种吧。语言的学习是编程工作的第一步,是基础。除非是学习一门新类型的语言,否则编程语言的学习最多只是成为一种应用,而非真的算学习了。当然,我想达到这种境界,也是需要一定的前提的,前提应该是精通一到两门语言,有大量的编程实践,并对多种语言有所涉猎。但是如果是学习一门新的语言时候,我想情况不同了,比如从结构化的语言到面向对象,或者到函数编程,或者到逻辑编程,到脚本等等。这种跳跃性的学习确实会带来思维上的转变,因此就不能小视了。
    不管哪种语言的学习,除了哪上一本精通或者宝典之类翻看外,最好的办法我想就是写写小demo,编译运行一下,调试一下。不是么?就好比看到了一个锤子,我们不是拿着它仔细端详,而是拿它找个东西锤两下,这样上手才会更快嘛。
    今天看到一篇老外的文章叫"15 Exercises for Learning a new Programming Language",觉着挺好的,以后啥新语言,上来先一个流程走一边,我想语言就差不多能学个大概了。原文见这里:http://www.jobsnake.com/seek/articles/index.cgi?openarticle&8533,下面是我的翻译。
    (前面的话我就略过了,我就直接翻译那15个练习了,^_^)
1.用无穷循环显示一列数(1,2,3,4,5...),当按下某个键时(比如esc键),程序退出。
2.Fibonacci序列,交换两个变量,找到一列数种的最大/最小数。
3.从键盘接受数或字符序列,并对它们按升序,降序排列。
4.Reynolds number is calculated using formula (D*v*rho)/mu Where D = Diameter, V= velocity, rho = density mu = viscosity
Write a program that will accept all values in appropriate units (Don't worry about unit conversion)
If number is < 2100, display Laminar flow,
If it.s between 2100 and 4000 display 'Transient flow' and
if more than '4000', display 'Turbulent Flow' (If, else, then...)
(抱歉这个不翻了,一堆专业术语,大家自己google一下吧,反正写程序没问题,不过是几个分支,一个公式罢了)
5.修改上面的程序,当问"你想再次计算么(y/n)"时,如果选择'y',会再问参数;如果'n',程序退出。
当程序参数mu为0时,程序会发生什么?会提示除0错么?
程序会显示"Segmentation fault..core dump?"这样的信息么?如何处理这样的情况?语言本身内建支持这样的异常处理么?
6.科学计算器程序,支持加,减,乘,除,平方根,平方,立方,sin,cos, tan, Factorial, inverse, modulus。
7.以不同的格式打印输出。
8.打开一个文本文件,并将其转换为HTML文件。
9.时间与日期:获得系统时间,并将它用不同格式进行转换。
10.用日期与时间戳加名称创建文件。
11.输入为HTML表格,去掉所有的标签,并将数据存放在逗号或TAB分隔文件中。
12.从一个文件中抽取出大写单词和唯一的单词。
13.实现自动换行功能。
14.在数组的开始,中间和结尾添加/移除元素。
15.你的语言支持这些功能么:操作符重载,虚函数,引用,指针等?
你的语言支持命名空间,包,模块么?

原文地址:http://blog.csdn.net/luckheadline

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值