写给下一代电脑工程师小保尔3–小海龟Turtle归来

“有些事情是人类永远也无法改变的”米开朗基罗
  比如圆周率……(–
Baoba

小保尔:这一次的开始我就想要你知道四个人的名字哦,他们是:
·  达芬奇Leonardo
·  拉斐尔 Raphael
·  多朗太罗[1](Donatello
·  米开朗基罗 Michaelangelo

他们是意大利文艺复兴时期的四位杰出人物(艺术家)吗?

答案是:

是……(Baoba)No,

不是……(Baoba)No

正确答案应该是:“Not Given”(条件不足!)

—-因为条件不足,答案就不确定、不唯一。(记住这句话了吗?)

以上题目的答案应该是:它们()是四只宠物乌龟的名字哦“Teenage Mutant Ninja Turtles”直译为少年变异忍者龟,因为它们四个原本为宠物龟(不要虐待宠物哦!),后被遗弃便被冲到下水道,并受到核电厂辐射的影响而产生异变成为人形。这四只“忍者神龟”的命名分别为李昂纳多.达芬奇”LEONARDO)、拉菲尔RAPHAEL多納太罗DONATELLO米开朗基罗MICHELANGELO,都是文艺复兴时期的著名艺术家的名字哦。呵呵,这才是Baoba要的标准答案哦。

小保尔,如果你有兴趣就到互联网(InterNet)上去下载电影《忍者神龟》来看看吧。告诉你哦,小保尔,因特网(InterNet)上不但可以找到好看的电影和好听的歌曲,还可以用来学习非常有用的知识,上一次为了给你制作柯西(Koch又译柯克)雪花,我在InterNet上用搜索引擎(Google.com)查Basic资料的时候发现了一个另我欣喜的事,我的一位好朋友“小海龟”(Mr.Turtle)回来了。

小海龟是我们学生时代使用的计算机语言Logo的呢称呢。它现在有了新名字,叫Small BasicTurtle(中译:海龟/乌龟)

你看,“小海龟”在绘制柯西雪花呢。

                 小海龟在画柯西雪花

     图片url: http://dongren.cn/NextProgramers/smallbasic/smallbasic_256koch.gif

就象你知道的,我们所生活的人类社会,在不同的国家和地区人们使用各种各样的语言或方言,比如在中国(北京等地区)大家通常说汉语(普通话),而在北美(美国和加拿大)等地区大家通常说英语;我们通常不能笼统地说哪种语言好,哪种语言不好。

我们今天要介绍的新朋友就是微软公司为小朋友(主要是中、小学生)制作的编程序语言:Small Basic (中译:小Basic 儿童Basic)。官方公布的软件和资料在这里:http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx

Computer Programming is defined as the process of creating computer software using programming languages.  Just like we speak and understand English or Spanish or French, computers can understand programs written in certain languages.  These are called programming languages.  In the beginning there were just a few programming languages and they were really easy to learn and comprehend.  But as computers and software became more and more sophisticated, programming languages evolved fast, gathering more complex concepts along the way.  As a result most modern programming languages and their concepts are pretty challenging to grasp by a beginner.  This fact has started discouraging people from learning or attempting computer programming.

      因为网上的资料都是英文的,鉴于你的英文基础所以我再多介绍几句。
       ……随着计算机硬件和软件种类的日益庞杂(复杂多样),程序语言的发展也呈现加速状态,随之带来的就是概念越来越复杂。结果就导致对初学者越难以驾驭和掌握。……
       Basic的出现就是为了推翻横亘在初学者(包括小朋友)和(高级的)计算机编程语言之间的樊篱(bring down the barrier)……还为了(学习者和工程师们)能重拾编程的快乐,小Basic(SmallBasic)项目就是致力于计算机学习和应用的简单(SmallSimple)、趣味(Funny)和激情(Active)的回归。

小保尔,我们今天认识了忍者神龟和我的朋友Mr.Turtle(海龟先生);在下面的编程例题中我们还得认识一位中国古代的科学家,祖充之。因为我们上次画柯西雪花的时候用到的π(读做Pai四声)的近似值355/113(“密率”),是祖充之(公元429公元500)老师发现的。
     并且祖冲之在他的儿子祖暅的协助下利用“割圆”的方法算出
π的值在3.1415926 3.1415927之间。这个π的记忆方法请见新语丝网的另一篇博客《圆周率》:http://xysblogs.org/drkevin/archives/4056,“山巅一寺一壶酒,尔乐,苦煞吾,把酒吃,酒杀尔,杀不死,乐尔乐……”你只要记住前几位就已经足够了。如果你实在记不住这么一大串数字,那也没什么关系,因为我们还可以查资料,或者干脆让计算机帮我们“计算”出来吧。

下面一段程序的例子就是让我们在“小海龟”的帮助下,还原和重复 祖充之父子的“割圆”法计算圆周率π的方法:

你看:小海龟在不知道疲倦地“割圆”不止呢……

小海龟在用“割圆”法求PI的近似值

算法思路:

如果设圆的半径为1;

显然的:图中A(红线)既对角线长度为 squareroot(2) (2的算术平方根)
则有 a(小写-蓝色线重合的部分)长度为:
a
=squareroot(2)-1         ‘: squareroot是求平方根的函数, a=2的平方根 -1
又因为:b*b+b*b=a*a           ‘这里根据勾股定理–“几何既勾股”这个我们有单独讲过哦……
所以:b=squareroot(a*a/2)

–这又是一个迭代调用的算法哦,下略。

小海龟割圆后给出的答案如下:

PI在内接正四边形(正方形)的时候,粗略等于2.8284271247462
       PI
在内接正八边形的时候粗略等于:3.06147458920712

……

      当用内接正262割圆时,PI的值约等于3.1415 9265 3589 7932 3846 2643 3832 7950 288

     “割圆法”算π值人类从祖冲之所在的公元5世纪到1630年,才得出(小数点后)39位数字(因为那时候没有计算机的帮助哦)。值得一提的是德国数学家德耳夫全力以赴的计算π值,几乎用了他毕生的精力,据说德耳夫在1610年的一天夜里,终于用圆的内接正262边形求得π的小数点后35位数字,并且写到了草稿纸上。人们在第二天早晨的时候发现德耳夫已经去世了,并且发现了这个π的近似值(他毕生的成果……)。于是大家决定,为数学家德耳夫树立了一块巨大的墓碑,上面写上了德耳夫计算的这个π的近似值:

    Π = 3.1415 9265 3589 7932 3846 2643 3832 7950 288

小保尔,现在你知道科学是一件严肃的事情,有些人(比如数学家)会用毕生的精力去探询她的足迹、揭示她的奥秘。

学习(科学)同时也会伴随着不少快乐的事哦,比如:小Basic就是为了让小朋友们学得快乐,让程序员们重拾编程的乐趣才组织开发的项目哦,如果有兴趣,大家就多到支持论坛去查询、了解或学习它的用法吧:http://community.winsupersite.com/blogs/paul/archive/2008/11/18/microsoft-small-basic.aspx

      比起汽车、火车和飞机,小Basic简单得象拉菲尔(神龟之一)和小孩子们喜欢的滑板……简单、趣味,学习起来好上手;成人、孩子、业余程序员和专业工程师都会喜欢上它。

小保尔:神龟拉菲尔擅长玩滑板,米开朗基罗精于使用双截棍,……小保尔,你有什么兴趣和爱好,要注意至少要培养一两个哦。

小保尔,Mr.Turtle(海龟)先生真的很神奇、很有趣(funny)吧?它不但能帮助你获得以前科学家花费毕生精力才揭示的数学和科学奥秘,而且还能和你一起玩哦。

最后附送一个小游戏:“接球游戏”给你玩,边学边玩,希望你学得起劲儿、玩的愉快。游戏源码放在网上,拷贝下来不但可以玩,还可以修改哦。

接球游戏:(Baoba改进版—-这个比Small Basic 手册上的有些改进)
http://smallbasic.com/program/?FHT926

用“割圆法”求π值的程序也放在这里:
http://smallbasic.com/program/?TJB740


Donatello^ 1987年《忍者神龟》在中国大陆播出时被改名为另一位伟大人物的名字爱因斯坦

忍者神龟:它的英文名“Teenage Mutant Ninja Turtles”直译为是少年变异忍者龟,因为它们原本为宠物龟,后被遗弃便被冲到下水道,并受到核电厂辐射的影响而产生异变成为人形。这四只忍者神龟的命名分别为李昂纳多.达芬奇”LEONARDO)、拉菲尔RAPHAEL多納太罗DONATELLO米开朗基罗MICHELANGELO,都是文艺复兴时期的著名艺术家名称。


“写给下一代电脑工程师小保尔3–小海龟Turtle归来”有17篇评论

  1. baoer 评论道:

    为了给小孩子写东西行文方便,又为了突出祖冲之和“密率”,在原文中没有提及割圆术是另一位中国古代科学家刘徽发明、发现的……想想不应该,还是应该说明。把割圆术的资料补充一些在这里:
    ———————————————————–
    一般认为,祖冲之采用的是刘徽割圆术分割到24576边形,又用刘徽圆周率不等式得祖冲之著名的圆周率不等式:3.1415926 < π < 3.1415927。
    祖冲之的这一结果精确到小数点后第7位,直到一千多年后才由15世纪的阿拉伯数学家阿尔·卡西以17位有效数字打破此记录[1]。
    按照当时计算使用分数的习惯,祖冲之还采用了两个分数值的圆周率:“约率”(或称之为“疏率”)以及“密率”。在分母<16600的所有整分数中,密率的比值最接近圆周率[2]。祖冲之可能利用何承天的调日法求得圆周率的约率和密率[3]。数学家华罗庚曾认为密率的求得,说明祖冲之可能已经掌握了连分数的概念。日本数学家三上义夫说,“疏率,无非是几百年前希腊数学家阿基米德已经得到的数值,但是 这个分数,却是翻遍古希腊,古印度和阿拉伯的数学文献都找不到的分数,希腊人肯定不知道它;在欧洲直到1586年才由荷兰人安托尼斯宗(Adriaan Anthoniszoon)求出了这个比值。因此,中国人掌握这个非凡的圆周率分数比欧洲早出整整一千年之久”。为纪念这位伟大的中国古代数学家,三上义夫要求把密率又称为“祖率”。

     

  2. 评论道:

    能不能把行间距弄小一点

  3. baoer 评论道:

    # 契 评论道:
    2009年4月6日于8:25 pm e

    能不能把行间距弄小一点
    —————————
    能,我在试编辑。
    原文是从Word版直接拷贝下来的,我还得习惯一下Lyceum这个博客系统的编辑器。
    欢迎多提宝贵意见!

  4. baoer 评论道:

    留3个C++改错的题目给大家做:

    1、第1个简单且经典:

    #include<iostream>’发现lyceum博客系统把include 后面尖括号和里面的内容给屏蔽了,所以只好换成“全角”的尖括号,大家输入程序的时候注意替换成半角。<iostream>
    void main(void) {
       std::cout<<”Hello world!\n”;
    }
    算上两个括号一共5行程序,但有个错误,大家有兴趣挑挑吧……

    2、再来一个”Hello world2″
    #include<iostream>
    int main()
    { std::count<<”Hello world2/n”;

    return (0);}

    3、最后一个: “Hello world3″
    //此例为Linux&Unix系统调用
    #include<stdio.h>
    #include<unistd.h>
    #include<stdlib.h>
    int main()
    { printf(”Hello world3″);
    fork();//此函数为Linux&Unix系统调用
    printf(”\n”);
    exit(0); }

  5. guru 评论道:

    >>> 算上两个括号一共5行程序,但有个错误,大家有兴趣挑挑吧……

    不止“有个错误”吧?

  6. baoer 评论道:

    # guru 评论道:
    2009年4月7日于1:58 pm e
    >>> ……
    不止“有个错误”吧?
    ——————————–
    是有个错误,尖括号和尖括号里面的头文件名被博客系统给“屏蔽了”,原来是有的……
    当然三个题目就不止“有个错误”了。

    提示:
    1、第1段程序能在VS(如VS2008)系列的编译器上运行通过,但它确实有错……因为这段程序不标准。
    想想这段程序返回经操作系统的到底是什么呢?
    2、第2段程序没啥说的,是个低级错误,“/n”对吗?
    3、第3段程序里有个”高级“错误,首先它打印一次Hello但却执行两次换行;而且一定有某些不对。
    fork系统调用产生了带内存复制的进程复制,这也包括已经分配了缓冲区的print函数……

    就到这里吧,有答对其中1、2题的再公布最终答案吧。:)

  7. eng 评论道:

    第一段程序能在VC上通过?不可思议。
    1、main 应该返回 int
    2、std:cout 应为 std::cout
    3、语句最后没有分号
    这都能通过,我实在没话说。

  8. baoer 评论道:

    eng 评论道:
    2009年4月7日于10:27 pm e

    第一段程序能在VC上通过?不可思议。
    1、main 应该返回 int
    2、std:cout 应为 std::cout
    3、语句最后没有分号
    ———————–
    挑错挑得对呀!
    很好,很厉害。
    上面的错误有些是原题带的,少个冒号和分号是我录入时遗漏的;
    少头文件名是系统给我“忽略”的……
    但我确实在编译器上调试过啊……
    这是通过后的源码:
    // Hello1world1.cpp : 定义控制台应用程序的入口点。
    //

    #include “stdafx.h”
    #include <iostream>

    void _tmain(int argc, _TCHAR* argv[])
    {
    std::cout<<”Hello world1\n”;
    // return 0;
    }//函数和过程后不需要“;”而结构和Class(类)后需要“;”

    环境是Visual Studio 2008(Visual C++ Win32控制台应用程序)
    系统也没出什么警告之类的……
    有时间我再在别的系统试试吧,其实只是想强调C++ 的main返回个整数;
    0为正常
    其它为出错……

    感谢参与!
    可以继续吗……?

  9. guru 评论道:

    >>> 少个冒号和分号是我录入时遗漏的
    所以问你‘不止“有个错误”吧?’

    友情提示:尽管你修改了几次,你那三小段程序中还有typo。

    使劲找!找到了,赶快改。LOL

  10. baoer 评论道:

    呵呵,以后我会吸取教训;
    编译通过一下再复制上来……
    这是编译正常的第二段程序:
    #include “stdafx.h”
    #include <iostream>
    int main()
    {
    std::cout<<”Hello world2\n”;
    //char *a[10];//这个放键盘字符缓冲
    //scanf(”%s”,a);//按任意键继续,或//cin.get();
    return (0);
    }
    还是在VS2008下……也没有什么警告。
    感谢!还可以继续吗?

  11. guru 评论道:

    友情再提示:你那三小段程序中还有typo。LOL

  12. 储亦非 评论道:

    想教我学LOGE?也是,我技术不好。

  13. JimmyBean 评论道:

    I don’t know If I said it already but …Great site…keep up the good work. :) I read a lot of blogs on a daily basis and for the most part, people lack substance but, I just wanted to make a quick comment to say I’m glad I found your blog. Thanks, :)

    A definite great read..Jim Bean

  14. BloggerDude 评论道:

    I don’t know If I said it already but …This blog rocks! I gotta say, that I read a lot of blogs on a daily basis and for the most part, people lack substance but, I just wanted to make a quick comment to say I’m glad I found your blog. Thanks, :)

    A definite great read….

  15. Savannah 评论道:

    Awesome blog!

    I thought about starting my own blog too but I’m just too lazy so, I guess Ill just have to keep checking yours out.
    LOL,

  16. property management atlanta ga 评论道:

    I don’t know If I said it already but …I’m so glad I found this site…Keep up the good work I read a lot of blogs on a daily basis and for the most part, people lack substance but, I just wanted to make a quick comment to say GREAT blog. Thanks, :)

    A definite great read…

  17. actiliacquind 评论道:

    Fur Reversibles are in style. Reversible coats withSable and Chinchilla. Fur coat remodeling is huge. Old coats are recycled into glamorous styles. The average age of a garment that isrestyled into modern style is 5 years.

发表评论

CAPTCHA Image
*