星期一, 四月 27, 2009

绘制棋盘格子

根据用户输入数据绘制一个棋盘格子,初步体验用程序接受用户输入。

绘制钟表

绘制一个钟表动画,显示当前系统时间,引发学生兴趣。

QB中类似LOGO语言的绘图方式

绘制一艘小帆船。

太极图

使用QB绘制一副黑白相间的太极图。

演奏《东方红》

可以让程序发声,激发学生兴趣。



注:这两行表示乐谱的字符串都不应有空格。

QB绘制简单图形1

绘制简单图形,激发学生兴趣。

星期日, 四月 26, 2009

c语言中的数据溢出overflow解决

在日常生活中数字是没有大小限制的,但是计算机中的变量是有限制的,不能够完全表现现实世界中的数字,因而就产生了溢出问题。

用常见的Fibonacci数列来说,第一项是0,第二项是1,后面的每一项都是它前两项之和。
0, 1, 1, 2, 3, 5, 8, 13......
这个数列的增长实际上是很快的,当超出计算机变量所能表现的类型的上限后,结果就变为了负值,发生了溢出。

通过一段代码实验Fibonacci数列溢出


这已经使用了最大的数字的数据类型long long,如果还有更大的数字怎么办?我们满手油污的去操作内存分配?
幸好有GNU项目,里面的一个名为gmp(GNU Mutiple Precision Arithmeic Library)的库为我们解决了这一棘手的问题。这个库提供了很多基础的内存分配特性。

修改后的代码:

该库在数值和字符串中做了很好的处理,使你能获得一个真正没有溢出的数值,更符合客观世界的概念。

参考文献:
  1. Full Circle #24
  2. http://gmplib.org/manual/

星期日, 四月 12, 2009

RSS地址更换,请大家重新订阅

由于一直使用FeedSky的服务,FEEDSKY类似于Feedburner,是一个RSS烧录服务。近期发现FeekSky的RSS更新很不及时,造成Blog最新文章无法发送给广大的订阅者,所以我决定启用Blogger的默认RSS地址。请大家及时更新自己阅读器中本Blog的RSS地址。
  1. 原有的FeedSky的RSS会继续保留,当FeedSky修正错误后您有可能获得及时的更新
  2. 您可以到本Blog页面上重新订阅
  3. 您也可以使用如下URL直接订阅 http://richard-ma.blogspot.com/feeds/posts/default
对此次事件给大家带来的不便博主表示抱歉,同时今后会以更加优质的文章回馈大家。