liupengty liupengty
关注数: 5 粉丝数: 72 发帖数: 3,342 关注贴吧数: 25
从量变到质变------------学习的必由之路       说起《windows程序设计》(Charles Petzold)第5版,全世界人们都知道,这本书是很好的,也知道是很繁杂的,没有人能在短时间内完成它的学习和研究。我有感啊,说2句,      每一门科学,都是曾经沧海,历经寒暑,千锤百炼,博大精深。我们学习的只是沧海一粟而已,而且从小,我们从最简单的1+1学起,从a、o、e开始。经过若干时间,基础打好了,继续向前进,有的就没有继续,高深知识的学习是需要基础的,因此他们在学习的道路上倒下了,打基础是一个漫长的过程,要有耐心,在4岁女儿学习5以内的加法的过程中,我深有体会;从2岁开始认识数字,到现在半个小时做400道加法题(当然是对的),2年的时间,期间我一直在教她,努力呀努力,一直不见起色,就在上个星期的一个晚上,突然间,好像灵感来了,她用5分钟做完了30道5以内的加法题,我很欣喜,更让人惊讶的是,在其后的几天时间,她做30道题目,从5分钟缩短到了1分钟多一点,包括爷爷奶奶在内的人都惊诧不已,当然也许你会说,那有什么,我那会儿就这么这么这么来着。但我还是很高兴,在此之后,我们探讨这个突然的变化时,肯定了一点,经过2年的积累,在这个星期,她,我的女儿数学思维上发生了质的飞跃,这也许就是所谓的量的积累达到一定程度就会有质的飞跃,也就是从量变到质变吧。      我无意与讨论幼儿教育,但从中我们看到量的积累的重要,学习都是一样的,我在和我的学生讨论学习态度时,曾经给了他们一个量变的具体的衡量手段,很实际,你不妨也试下,我拿起我的教科书,让他们也都拿出来他们自己的书,我叫一位拿着看看我的书,书是合住的,他能立刻知道我课背到哪里了,因为,我备一章课往往要看10遍20遍,书被翻过的地方早已变黑(不是俺不洗手哦,哈哈),然后我让他们举起自己的书,看看,而后再相互看看,至少,我这里的学生,和我一样,已经养成了洗手的好习惯,毕竟都是大学生了嘛,这里书上的黑色印记,使学习量的一个积累的典型证明(马上,台下有人拿起书,开始在地上磨开了,哈哈)      哲学上的从量变到质变的理论,不是孔穴来风的,《windows程序设计》是你检验从量变到质变的哲学原理的很好的试验场,去吧,我的朋友,勇敢前进,实现你人生的质变。
戏说变量生存期     角色可以在某特定的时刻创建,或在剧情不再需要时被删除。创建和删除之间所经过的时间,我们不妨称为角色的生存期。角色只有在生存期中才被分配(占用)舞台或银幕,这意味着,只要角色存在,角色的扮演者就存在,除非导演使用手段更新了角色的扮演者。当角色被删除之后,他在舞台或银屏上的位置就空闲出来了,供在创建其他角色时再次使用,这保证了舞台或银屏的有效使用。      我的理解中,角色可以具有3种生存期中的一种:      ·静态生存期:只要剧情开始,这种生存期的角色就在舞台或银屏上出现,直到整个剧本结束,这种角色的生存期和剧本的演出期相同.这种角色就是主角.      ·局部生存期:这种角色的生存期开始于剧本的某一集或某段故事的开始处,而结束于本集尾或本段故事尾.      ·动态生存期:这种角色可以随时创建,随时删除,比如一些群众演员.      如果说程序是一个剧本的话,变量就是角色,而内存就是舞台.程序在内存中开始运行,在此过程中,作为角色的变量在内存中表演着,他的一举一动由程序语句决定.      变量可以在某特定的时刻被创建,或在不再需要时被删除.在创建和删除之间所经过的时间,被称为变量的生存期。变量只有在生存期中才被分配(占用)内存,这意味着,只要变量存在着,在变量中存储的值就存在(不会丢失),除非程序员使用操作更新了变量的值。当变量被删除之后,他所占用的内存单元被标记为空闲,供在建立其他变量时再次使用,这保证了内存空间的有效使用。      标准C中,变量可以具有3种生存期中的一种:      ·静态生存期:只要程序开始运行,这种生存期的变量就被分配了内存,这种变量的生存期和程序的运行期相同.      ·局部生存期:这种变量的生存期开始于程序执行经过其声明点时,而结束于命名它的标识符所在的作用域尾.      ·动态生存期:这种变量可以随时创建,随时删除,创建和删除是程序员用内存操作函数进行的;迄今为止,我们还没有使用过这种变量.      我们看到,作为程序运行中的角色.变量也有静态生存期,局部生存期,动态生存期的概念.C中的变量:extern和static是静态生存期,auto是局部生存期,而对于标准C程序员,可以用内存操作函数创建和删除动态生存期的变量.      存储类和生存期的概念相对抽象,同时和其他知识联系颇多,初学者无必要深究.戏说一下,有个粗略的了解即可.
我的c历程     C程序设计从基础字符模式到windows的窗口模式编程的转变是一个痛苦的过程,历史上的程序员是这样,我经历了这个过程,曾经极其痛苦,各位现在学习编程也许同样是这样,如何缩短这个分娩的过程,是很值得思考的问题,现代计算机教育大师们,做了很多对其进行普及的有益尝试,尤其是MICROSOFT的大师们,Charles Petzold就是典型的代表;近年来,国内也有一些好的教材,为实现这种平滑过度,做出了贡献;这些年,我的学习和教学经验,有一些使用的书籍,按照学习过程简单的推荐如下:1、《C程序设计》(谭浩强)第2版(含有C++的进阶介绍)    在字符模式下,学习程序设计的基本概念。    一开始就编写WINDOWS程序并不是一个好的想法,应该在细节较少的字符模式中学习一些基本概念,诸如:数据类型、3大程序结构、数组、函数、结构和指针,同时从中了解面向过程程序设计的一些概念。2、《Visual Basic6.0程序设计》(王天华)(中国铁道出版社)    一本极其简单的VB入门级读本,有人会认为我推荐这本书很可笑,因为,它实在是太简单了.但从中,你很快就可以预览windows程序设计的一些基本概念,很快!3、《C++程序设计》(谭浩强)    了解一些C++的基本语法,同时了解面向对象的一些关键的概念,    这本书,讲解C++不一定是最好的,但这本书是在他的《c程序设计》的基础上,一脉相承的引出了c++,过度比较平滑,也较通俗易懂。    虽然Charles Petzold在其《windows程序设计》中提出,不需要有c++和面向对象的概念就可以直接学习他的教程,但是这将或多或少的阻碍你理解windows本身的面向对象的程序设计中的一些特性,还是对c++和面向对象的概念应有一些基本了解为好.4、数据结构    有许多书籍,但是自学的话,是有相当难度的,至今我没有见到一本可以供自学的书,因此就不好推荐了.但在对c++和面向对象的概念有了初步了解后,却是应该学习数据结构,这样可以强化以前的知识,特别是强化结构和指针的概念,    结构和指针对学习windows程序设计至关重要。5、《windows程序设计》(Charles Petzold)第5版    一本至今无人能出其右的作品,隆重推荐,是从dos过度到windows的极好的读本。详细的极其通俗的介绍了windows程序设计需要的几乎全部基础细节,很少有纰漏,唯一的缺点也就在这里,简直太全了,你要有足够的耐心和毅力6、《MFC windows应用程序设计》(任哲)    在学习《windows程序设计》(Charles Petzold)第5版的过程中,甚至是在其上册前5章学习完毕后,就可以用《MFC windows应用程序设计》学习MFC的程序设计了,这样你很快能使用MFC来设计功能强大的windows程序。    当然程序设计是一个复杂的东西,它不是孤立的编码过程,需要你了解诸如数学、微机原理、操作系统,计算机网络等等知识,因此,你要想进入程序设计的高级阶段,就要强化你的计算机方方面面的知识,也就是我们常说的知识要广博,专业要精深当你回首来时路.........................
和大中专初学者谈:数学、英语等在编程学习中的地位和作用    最近吧里又有不少帖子是关于数学、英语需要吗等等问题,看来有必要重新阐明下了:   大专、高中、中专、技校及至初中的学生, 由于数学、英语、计算机基础知识的不足,C语言教学或自学均比较困难。谭浩强教授的《C程序设计》历年已久, 且经久不衰, 大量的本科初学者被引导入门,那么象高中初中生他们能不能用谭浩强教授的《C程序设计》作为课本呢?实践证明完全可以,不过时间上要大于100个课时,而且讲解中必须降低数学、英语、计算机基础知识的使用量。同时引导部分也就是前8章内容的讲解时间要相对长些。回答几个初学者常见的问题:   一、有些人用谭浩强教授的《c程序设计》很容易入门,但有些认为太难,为什么??????    可能与以下几个公共基础知识或能力的具备程度有关:   1、 数学基础:数列(自然数列)及其递推公式、变量函数、方程、科学计数、归纳法和穷举法、指数和对数、应用题求解,这些是高一及以下的数学知识。    详细的,一些数学知识和C的大略关系如下:             .数列相关知识(特别的自然数列用于理解循环语句)            .常量、变量、指数对数(起码在第3章数据类型,要用到吧)            .函数(特别的分段函数用于理解分支语句、且C语言本身就是函数式的)            .应用题及方程求解(既然是计算机程序设计,就难免遇到简单数学问题的求解)    不过在标准C的入门阶段,再高的数学知识就用不着了, 但是注意, 说高中数学基础,是指入门的标准C本身。在进一步学习数据结构、离散数学等课程以及将来设计大型计算程序、游戏程序或专用的程序时会遇到高深的数学知识,因此,想成为一个程序设计方面的高手,一定要学习高等数学呀!     2、 英语水平较好:用在编译器的界面和错误提示方面。即使界面再进行汉化,一些诸如错误提示、帮助,仍然是英文的。    3、 基础的DOS操作(即windows的command/cmd命令行操作): 可以更好的理解接受C语言中关于字符模式的输入、输出的内容。     4、 少许硬件基础知识:一定的微机原理的知识和各种进制的计算。诸如基本类型、指针、位运算等等都会或多或少的用到这方面的知识。    5、 数字化抽象思维能力:善于将现实世界数字化。    6、 学习能力强:自学能力和方法。     7、 好领路人:高师指点。     注意:前6个条件是参考,有第7个条件就足够了,即第7条是学好使用本书的充分必要条件。 
五子棋的源程序     ,上学期大专班学习C时,学生边学边做,老师边提示,30个人最后有一半做出,贴出较好的给大家分享,适合初学者哦。教师最初的参考出处,好像是一张C教学光盘上的..........,该光盘学生是没有的。/**********************************************************//* 本程序在Win-TC下编译通过 *//**********************************************************//**********************************************************//* 程序中用到的库函数所在头文件应用 #include 命令包含进来 */#include #include #include #include #include /**********************************************************//* 定义符号常量 *//*定义画棋盘所需的制表符*/#define CROSSRU 0xbf /*右上角点*/#define CROSSLU 0xda /*左上角点*/#define CROSSLD 0xc0 /*左下角点*/#define CROSSRD 0xd9 /*右下角点*/#define CROSSL 0xc3 /*左边*/#define CROSSR 0xb4 /*右边*/#define CROSSU 0xc2 /*上边*/#define CROSSD 0xc1 /*下边*/#define CROSS 0xc5 /*十字交叉点*//*定义棋盘左上角点在屏幕上的位置*/#define MAPXOFT 5#define MAPYOFT 2/*定义1号玩家的操作键键码*/#define PLAY1UP 0x1157/*上移--'W'*/#define PLAY1DOWN 0x1f53/*下移--'S'*/#define PLAY1LEFT 0x1e41/*左移--'A'*/#define PLAY1RIGHT 0x2044/*右移--'D'*/#define PLAY1DO 0x3920/*落子--空格键*//*定义2号玩家的操作键键码*/#define PLAY2UP 0x4800/*上移--方向键up*/#define PLAY2DOWN 0x5000/*下移--方向键down*/#define PLAY2LEFT 0x4b00/*左移--方向键left*/#define PLAY2RIGHT 0x4d00/*右移--方向键right*/#define PLAY2DO 0x1c0d/*落子--回车键Enter*//*若想在游戏中途退出, 可按 Esc 键*/#define ESCAPE 0x011b/*定义棋盘上交叉点的状态, 即该点有无棋子 *//*若有棋子, 还应能指出是哪个玩家的棋子 */#define CHESSNULL 0 /*没有棋子*/#define CHESS1 'O' /*一号玩家的棋子*/#define CHESS2 'X' /*二号玩家的棋子*//*定义按键类别*/#define KEYEXIT 0 /*退出键*/#define KEYFALLCHESS 1 /*落子键*/#define KEYMOVECURSOR 2 /*光标移动键*/#define KEYINVALID 3 /*无效键*//*定义符号常量: 真, 假 --- 真为1, 假为0 */#define TRUE 1#define FALSE 0/**********************************************************//* 定义数据结构 *//*棋盘交叉点坐标的数据结构*/struct point{ int x,y;};/**********************************************************//*自定义函数原型说明 */void Init(void);int GetKey(void);int CheckKey(int press);int ChangeOrder(void);int ChessGo(int Order,struct point Cursor);void DoError(void);void DoOK(void);void DoWin(int Order);void MoveCursor(int Order,int press);void DrawCross(int x,int y);void DrawMap(void);int JudgeWin(int Order,struct point Cursor);int JudgeWinLine(int Order,struct point Cursor,int direction);void ShowOrderMsg(int Order);void EndGame(void);/**********************************************************//**********************************************************//* 定义全局变量 */int gPlayOrder; /*指示当前行棋方 */struct point gCursor; /*光标在棋盘上的位置 */char gChessBoard[19][19];/*用于记录棋盘上各点的状态*//**********************************************************/
首页 1 2 下一页