Mar 23
前面已经学习过1.3节,现在来学习1.4节,《运行C语言的步骤与方法》,也是第一章最后一节。以下是学习心得。
1、谭师傅说,“所谓程序,就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。”,后面紧接着又说“计算机…不能识别和执行高级语言写的指令”。
心得:由第一句对程序的定义和后面紧接着的这句话,我恍然大悟:原来C语言写的那不叫程序啊,不对,这本书明明叫做《C程序设计》的,我晕了。
2、谭师傅教导我们说,要“上机运行”一个C语言程序,必须先“在纸上写好一个程序后“,再…
心得:天啊,这难道是学英语时单词写得不够多的报应?
3、谭师傅说,“目前使用的大多数C编译系统都是集成环境(IDE)的”。
心得:谭师傅这一句话漏了自己的底:对UNIX是七窍通了六窍。当然,后面还有其它的心得可以佐证。
4、谭师傅又教导我们说,“不应当只会使用一种编译系统,而对其他的一无所知。“
心得:结合上一条心得,我心里那个汗哪。
5、谭师傅用的文件名都是诸如c1.c、c2.c、f.exe等等。
心得:够简洁、够有力,够雷人。
6、谭师傅说,“Turbo C++…也能编译以.c为后缀的C源程序(按照Turbo C++的语法规定进行编译)”。
心得:莫非Borland公司自己创造了一套C语言语法?还是谭师傅在为 (a=3*5)=3*4 这样的“谭氏表达式”作伏笔?
7、谭师傅在第一章结束的题目中,要求学生“根据自己的认识,写出C语言的主要特点“。又问,“C语言的主要用途是什么?它和其它高级语言有什么异同?“
心得:我若是谭师傅的学生,一定会不知所措。还没学会呢,哪来的什么”认识“?如果原来没学过什么其它高级语言,又哪里来的什么异同?原来学C语言也是背书?
好了,第一章学习完毕,以后接看学。
2009年3月23日 at 6:12 pm
关于第6条,我觉得好象没有错。我觉得原意是说,Turbo C++(其实应该是Borland C++)默认是编译以 .cpp 为后缀的C++源程序。如果文件后缀写成 .c 也可以编译——而文件中的源码语句可以是c,也可以是c++,BC内部会智能识别并进行编译吧。
这样讲当然也讲得通。不过我觉得这就是为什么会在这本书里出现 (a=3*5)=3*4 这样表达式的原因:在C++里这是合法的,所以TC++可以编译通过,然后就被当成是C的语法教给学生。作为一个C语言教材,应该清楚地讲明白其中的区别。当然,那是在作者自己也明白的前提下。另外,的确有Turbor C++ 3.0这样一个软件的。
2009年3月24日 at 4:26 pm
谭师傅又教导我们说,“不应当只会使用一种编译系统,而对其他的一无所知。” -不过我只教Turbo C,因为我也不会使用其他的编译系统。
我倒想看看他怎么 develop some code in other environment.
2009年5月27日 at 12:58 pm
【今天有空,逗你玩玩,以后你自己慢慢玩去吧】
读•读谭师傅的书(4)
继续学习eng的学习心得。不得不承认,eng的搞笑本领还是林人眼界大开的。
【哪里哪里,我搞笑的本事怎么比得上你呢】
1) 抬杠本来是很多自命不凡的人的惯用伎俩,倒也不值得惊讶。到了eng这里确实发挥到了极致。为了抬杠,竟然把原文中关键的文字摘除,拼凑出一个假想敌来攻击。原文是说“实际上,计算机只能识别和执行由0和1组正的二进制指令,而不能识别和执行用高级语言写的指令。”因而需要编译器来译。
然把0和1那半句删掉,读者就看不明白了。这种人工制造假想敌来进攻的招数,却是不是很多人屑于使用。
【好吧,那你告诉我,计算机到底能不能识别和执行高级语言写的指令?C语言是不是高级语言?C语言写的程序是不是程序?】
2) 在原文前后找了找,“必须”这个词是没有看到的。使用了删除法人工制造假想敌,又来试试添加法。谭老师的这本书成书的时候大概eng还没有学习C的打算。当年学生不像现在宿舍里就有笔记本,上课,做作业,还真的需要把程序先写在纸上。即使现在恐怕在条件不好的地区,依然有学生需要等带上机时间。在纸上写程序,不知道哪个编译器会因此报错。是笑话穷人呀?还是显摆自己年纪小没见过最便宜的计算机价格是几十万美金的时候呀?
【谭师傅有教导我们第二种上机的方法吗?谭师傅的书出到第三版已经2005年了,你用的是火星计算机啊?】
3) 咳,学会拼U N I X了?也许是没搞清楚自己读的是C语言程序设计,不是Unix系统设计,不知道为什么eng总觉得不走题拼写一些与主题无关的操作系统名,编程语言名,就是值得攻击的目标。C语言与Unix的共同发展确实起到了相辅相成的作用,但是现在C语言写的运行于非Unix的程序数量远远大于Unix的数量。
最可笑的是eng从使用IDE得出了不懂Unix的结论。看来eng确信Unix没有IDE,只有这样,逻辑才能把IDE和非Unix联系起来的呢?这么说eng不知道emacs了?也不知道Xcode了?
把IDE和Unix对立起来,这还真是极少听到的高论。通常不知道Unix上也有IDE的人不愿意冒充权威发表评论。
【emacs是IDE?你要把全世界的emacs粉丝都逗笑了。Xcode能代表大多数?你把全世界的Unix粉丝都逗笑了。】
4) 心得:不知所云,还要结合一下eng不知道Unix上也有IDE的一条。是学不会C的某个编译系统心里冒汗呀?还是学不会Unix心里冒汗呀?
【我想想谭师傅要来用emacs和xcode我心里就替他冒汗啊】
5) 心得:eng的心理承受能力比较异于常人,或者对文件名有无以名状的感情。C1.exe就觉得雷了。莫非文件名一定要符合eng标准才能用来命名C程序?
【莫非你把谭师傅降到连我都不如的水平?】
6) 心得:莫非eng不知道各个公司的C编译器都有自己的特定“扩展”?并非所有编译器都强制执行ANSI C标准。很多编译器是允许用户选择标准的执行程度的。Turbo C++(虽然N年没碰过了,但是应当还是记得)就允许C与C++语法共存。
【请问谭师傅写的这本书是在讲C还是讲C++呀?】
7) 原来ENG也是怕考试的一类,和我一样呀?这一点心得我倒是没有意见。学C语言干吗还要问问题呀?会写程序不就行了吗?呦,对了,咬文嚼字的事情,好像eng很喜欢呀?像我们这中只会写程序,不爱玩文字游戏的,一般不跳出来把别人的文字拆散开来讽刺挖苦 。
把别人的文字拆开从新拼装以后再攻击挑错,这都是当年,学生年代最糟糕的老师的作为-水平差,还要显示权威,特爱考试,考了就没事找事。
心得:己所不欲勿施于人。既然声称不喜欢教科书问文字问题,却用文字游戏来冒充权威。
【你的文字游戏玩得差点,是不是跟着谭师傅没学好?】
2009年5月27日 at 4:52 pm
必须承认eng搞笑的本事比不上gne,但我为什么还是同情gne呢?
2009年6月1日 at 8:29 am
能把C语言整得这么好玩,你们也算高人了。在下自愧不如。
就以下问题班门弄斧一下:
【emacs是IDE?你要把全世界的emacs粉丝都逗笑了。Xcode能代表大多数?你把全世界的Unix粉丝都逗笑了。】
google 了一下好像很多人用emacs做IDE。emacs最早是作为程序编辑器开发的。但是因为他早就有了集成编译器的能力,所以进而很多人(比如linux发烧友门)是用emacs做IDE的。
Xcode是苹果公司的开发工具,是基于GCC的。其界面不输Visual系列的微软开发工具。从使用量,应用程序数量和开发人员角度看,苹果公司Mac OS X好像都比任何一个其它的Unix系统用户多,应用程序多,开发人员多(苹果的操作系统-Mac 和 iPhone在美国占了大于10%的市场份额,相比之下,Linux只占略大于1%)。
所以虽然苹果公司不是积极的宣传他的系统其实是Unix系统,但是从数量角度讲,其他Unix系统好像很少有望其项背者。
也许在中国MacOS确实不流行吧。在美国,说Xcode是Unix上C语言开发工具中比较普及的IDE,是很平常的,其他Unix平台的开发人员也极少批评Xcode用户量少,倒是微软阵营常笑话Xcode用户基数少,这也对,相对Xcode,微软的开发工具系列的用户确实是多很多呀。
2009年6月2日 at 11:06 am
1.在教材中,为了使初学者容易学,文件名用简单的名字c1.c,c2.c,f.exe有什么不可?要知道这是初学者的教材,不是专业人士开发的应用程序。难道要求初学者也像外国人一样用几十个字母组成的变量名和文件名吗?你去问学生,他们容易接受什么?看来eng没有当过老师,不懂教学特点,而又自以为是,凡是他不懂的或不按照他的主观想法做的,不管对不对,都要胡乱批判一通。
2.难道谭老师要求学生“不应当只会使用一种编译系统,而对其他的一无所知”不对吗?譬如以前用DOS环境下的Turbo C 2.0,现在改用Windows环境下的VC++ 6.0。目前多数人习惯用的是Windows环境,对初学者来说暂时不会用Unix。
你提的几个问题实在是没水平。纯粹在炒作。
2009年7月23日 at 1:41 am
谭师傅用的文件名都是诸如c1.c、c2.c、f.exe等等
补充
变量名也是这样
除了a1、a2就是c1、c2
最搞笑的是求素数的代码里出现了leap