当前位置:首页 >> 其它课程 >>

00C++语言程序设计学习的特点、难点和对策


程序式计算机使用
程序是人类思想的结晶,最能反映人类的智慧和 创造性。它反映了人类解决问题的思维和方法。 程序的构造是一个动态过程,一般涉及语言、软 件模型、环境、应用体系、工程化管理等多个方面。
人(用户) 人(用户)

程序工作方式 相对于交互式工作 方式,对人的要求 更高。

SHELL处理层 程 序 (交互式交流

方式) (程序式交流方式) 系统调用接口 操作系统功能集 硬件系统
1

程序与程序设计
x=5; y=6; if(x>y) a=7; else a=8;

程序是指一组预定的工作指令 流,可以直接通过计算机执行,使 具体的现实世界中的客观问题得以 在计算机世界中智能化再现,从而 使具体问题得到解决。

程序设计(产生程序的过程)就是人类运用其逻辑思维 能力以及符号处理能力来构造一个特定的符号处理器,使 得借助于计算机这样一种设备,能够完成预定的计算。 程序的形成过程比程序本身重要得多,程序设计与构 造的涵义比程序的涵义要丰富得多。
2

递归思维的简单解析(程序设计思想举例)
递归(recursion)是计算机思维的核心思想之一。 它不仅仅是程序设计的基本思想,在程序设计技术中 占据核心地位。它也是计算机学科中的核心技术思想 之一,其本质反映的是一种跳跃性思维方法。
递归反映了事物间的规律,即整体是由局部构成的, 整体又可以充当粒度较大的局部, 对于一个问题中的整体和局部的理解,取决于看待问 题的角度和视角,而这种角度和视角是随时会改变和调整 的。这也就是所谓的“当前”的概念。

next
3

4

基本逻辑控制规则
顺序
处理1 处理 处理2 处理 处理1 处理2 处理1 处理2 处理n

分支

循环
处理 处理

递归

5

程序构造基本方法
程序构造的基本方法 = 数据组织+数据处理。 数据组织——相当于组织和提供各种素材;

数据处理——加工处理这些素材,得到最后 的成品 。
必须注意两点:
—针对同样的数据,不同的人可以有不同的 处理方法(算法),这些方法都能得到需 要的结果。 —数据组织和数据处理存在一定的思维联系。
6

C++学习的 特点、难点和对策

计算机语言的语言特性
? 计算机语言也是语言,和我们日常所用的自 然语言,例如汉语和英语有着相似的地方。 有着词法、句法(语法)和文法。 ? 使用自然语言,需要人有想象力,有形象思 维的能力。使用计算机语言,也需要人有想 象力,有形象思维的能力。

王金湘

wangjx@seu.edu.cn

8

计算机语言思维方式特性
–计算机的思维来源于数学,但是又不等同于 数学。数学的思维是抽象的,它是建立在公 理、定义、定理以及独特的推导方式上的。 例如高等数学的基础是连续,推导方式是从 现有条件出发,根据定义或定理,经过若干 步骤推导出结果。

–计算机的思维也是抽象的,但是它不依据定 义和定理,它的思维的对象也不是象数学那 么连续,它的思维是基于算法的。算法则来 自于经验和逻辑。思维对象是离散的。
王金湘 wangjx@seu.edu.cn 9

C++语言的个性 ? C++语言和其它计算机语言相比,又具 有很多自己的特点。
– – – – – 例如它有丰富的数据类型, 有连微软也说不清楚的++、--, 有强有力的指针, 有变化多端的类, 有功能强大又神秘莫测的编译器。

王金湘

wangjx@seu.edu.cn

10

C++的学习难度之1—雾太多
? C++语言和其他很多计算机语言不一样,C++ 有太多和程式逻辑息息相关的动作是编译器为 我们加上去的,使我们习惯于循序思考的工程 脑袋不知所措。
? 换句话说 C++编译器为我们「加码」。如果 不识清这一节,学习C++有如雾里看花,雾非 雾,花非花。

王金湘

wangjx@seu.edu.cn

11

C++学习的第2个难度—思考模式的移转 ? 别说自己设计程序了,光使用别人的程 序,就都是一种思考模式和行为模式的 移转。也就是说,你不能只会使用自己 的思维模式,你需要会理解别人的思维 模式,把你的思路转移到别人的思路上 去。你不能简单的使用对待数学的方法 或者对待语文的方法来思考C++的编程。
王金湘 wangjx@seu.edu.cn 12

C++ 学习的第3个难度—学习模式的转换 ? 大学教学是启发式,跳跃式,不会什么都 讲到。尤其是计算机语言这样的课程,教 学的跨度和宽度是非常大的。这就使得刚 入大学门的学生一下子不能适应。

? 大学里学生和老师接触较少,学习的量和 质被监督的甚少。

王金湘

wangjx@seu.edu.cn

13

C++特点的结论
? 计算机语言是集数学、语文、外语和计算机的特 点于一身的东西。
? C++语言是计算机语言中一个比较难学,但是学 会了又很好使用的语言。 ? C++语言的学习,即需要象学习外语那样死记硬 背,还需要对文学作品的感受—形象思维,又需 要象学习数学那样进行严密逻辑的推理。

王金湘

wangjx@seu.edu.cn

14

C++能学好吗?

? 既然C++有这么多让我们头痛的特点, 那我们还能学好它吗? ? 我们怎样才能学好它呢?答案是肯定的。 要想学好C++,首先需要解决一些一般 性的学习问题。这就是学习形态理念。

王金湘

wangjx@seu.edu.cn

15

学习有三种形态

? 不学:无语 ? 勤学:刻苦用功 ? 好学:深知学习意义 ? 乐学:学习是一种乐趣,乐趣就在 学习之中

王金湘

wangjx@seu.edu.cn

16

学习形态的形成 ? 无论是哪一种学习形态,人都不是天生 就那样的。人需要经过后天的训练,可 能还是艰苦的训练才能适应。学习C++:
– 勤学能让你过关(及格); – 好学能让你中或良; – 乐学则可以让你优,甚至可以成为专家!

王金湘

wangjx@seu.edu.cn

17

学习C++容易产生的一些问题 ? ? ? ? ? ? 有些人勤奋 有些人懒惰 有些人浮躁 有些人始终搞不清楚C++ 有些人在讨论到底学习什么计算机语言好。 我们来看下面的一些对C++的讨论吧。

王金湘

wangjx@seu.edu.cn

18

1、不要被VC、BC、MC、TC等词汇所迷 惑—它们都是集成开发环境,而我们要学 的是一门语言; 2、不要放过任何一个看上去很简单的小编程 问题—他们往往并不那么简单,或者可以 引伸出很多知识点; 3、浮躁的人容易说:XX语言不行了,应该学 YY;—是你自己不行了吧!? 4、浮躁的人容易问:我到底该学什么;—别问, 学就对了; 5、浮躁的人容易问:XX有钱途吗;——建议 你去抢银行;
王金湘 wangjx@seu.edu.cn 19

6、浮躁的人容易说:我要中文版!我英文不 行!—不行?学呀! 7、浮躁的人容易问:XX和YY哪个好;—告诉你 吧,都好—只要你学就行;

8、浮躁的人分两种:a)只观望而不学的人;b)只 学而不坚持的人;
9、把时髦的技术挂在嘴边,还不如把过时的技 术记在心里; 10、C++不仅仅是面向对象的程序设计语言;
王金湘 wangjx@seu.edu.cn 20

11、学习编程最好的方法之一就是阅读源代码;
12、在任何时刻都不要认为自己手中的书已经 足够了; 13、看得懂的书,请仔细看;看不懂的书,请 硬着头皮看;

14、别指望看第一遍书就能记住和掌握什么— 请看第二遍、第三遍;
15、和别人一起讨论有意义的C++知识点,而不 是争吵XX行不行或者YY与ZZ哪个好;
王金湘 wangjx@seu.edu.cn 21

编程的秘诀 1、学习编程的秘诀是:编程,编程,再编程;

2、请把书上的程序例子亲手输入到电脑上 实践,即使配套光盘中有源代码;
3、把在书中看到的有意义的例子扩充; 4、经常回顾自己以前写过的程序,并尝试 重写,把自己学到的新知识运用进去;

5、不要漏掉书中任何一个练习题——请全 部做完并记录下解题思路;
王金湘 wangjx@seu.edu.cn 22

学习C++的技术层面 ? 当你已经解除了浮躁心理,已经了解 C++的特点了,当你已经决心要学好 C++了,一句话,你已经解决了主观问 题了,我们就可以开始讨论学习的技术 层面的问题了。

王金湘

wangjx@seu.edu.cn

23

C++语言基础部分的重要性 ? 学习任何一门计算机语言,首先都要学 习其词法和句法。这是学好C++的基础。 ? 这一部分首先需要的是死记硬背。然后 才是理解。记住了就是懂! ? C++的语法贯穿于C++的全部内容。 ? C++大部分的语法都是一种硬性的规定, 似乎不是一种连贯性的系列。

王金湘

wangjx@seu.edu.cn

24

C++语言的类型系统 ? 一门语言的最本质的东西就是其类型系 统,C++也是如此。任何语言都有自己 的独特的类型系统,学习C++的首要任 务就是学习它的类型系统。首先需要彻 底明白数据类型这个概念。这样你的思 路就清楚了,你就从每一种C++支持的 数据类型入手学习。

王金湘

wangjx@seu.edu.cn

25

学习C++语言终极成果
? 学习C++语言,最终的结果是编制程序, 最大的收获是思维模式的转换。 ? 学习C++编程,最重要的都是要掌握其设 计理念和设计思想。概念上的东西永远是 决定一切的,就像我们在作系统设计时, 最重要和最困难的部分总是整体概念设计 一样,有了理念上的基础,实现起来则是 水到渠成。

王金湘

wangjx@seu.edu.cn

26

学好C++ 的技术措施

1、重视词法、句法的记忆和理解。要深 入理解C++的数据类型以及使用。 2、记忆素材。需要记住许多经典的程序 段,例如选择排序或者改良了的选择排 序。这些是你编程的基本素材。为此, 你需要学习并记忆大量的程序代码。学 习是要用脑子来进行的,而不仅仅是用 眼睛。要想记住这些程序段,靠死记硬 背用处是不大的。只有在强制思维的基 础上才能记住。
王金湘 wangjx@seu.edu.cn 27

学好C++ 的技术措施
3、善于模仿。对于一个要编程的问题,首先你 可以从你所记忆的素材中搜索,找到与此问 题类似的素材,并加以改造以适应该问题。 4、灵感和创新。并不是所有的编程问题都有素 材储备的。此时要靠我们的灵感了。在很多 时候都过于依赖灵感,特别是在创新的时候。 我们在书本上或者网页中游走,看着方方面 面的文章,哪儿能够碰撞出火花,就在哪儿 更新。没有灵感也不意味着就可以放松。人 更多的时候是靠积累,厚积薄发,为突破做 准备。
王金湘 wangjx@seu.edu.cn 28

学好C++的技术措施
5、在上课前请认真预习C++,没有预习你不要 指望能学好C++。 6、课堂要认真听课,不能看书或做别的。因 为听老师的讲解是任何其他学习方式所不能 代替的。 7、课后的作业如何完成非常重要。要在弄懂 的基础上写作业。如需学习他人的作业,则 必须遵循“看时不写,写时不看”的准则。

王金湘

wangjx@seu.edu.cn

29

学好C++的技术措施
8、实验是学习C++至关重要的一个环节。实验 的目的一是调试自己编写的程序,二是通过 设计程序段或修改一个程序段,来深入理解 (了解)C++语法(或算法)的特征和规律。 严格实验步骤可以让人得到极大的收获。 严格的实验步骤指的是:
①实验(编程)的第一步就是全面正确理解题目; ②在理解题目的基础上写出程序草稿; ③在电脑上调试编写好的程序草稿,找出错误 (或改进算法),使得程序能够完成预期的工 ④对实验的过程和结果进行小结,提炼出本次实 验的收获。
王金湘 wangjx@seu.edu.cn 30

学好C++的技术措施 9、周期性进行自我总结,做做笔记,很 多明白的知识长时间不用也会忘记的。 10、请对自己有个学习的方向性,注意自 己的开发编程思想 11、请不断和别人进行交流,封闭的人是 容易落后的。

王金湘

wangjx@seu.edu.cn

31

C++考核方式 平时成绩10% 项目(预计第八周以后安排)40% 期末考试(笔试+上机考试)50%

王金湘

wangjx@seu.edu.cn

32

王金湘 wangjx@seu.edu.cn

33


相关文章:
C语言程序设计学习中的问题与对策
C 语言程序设计学习中的问题与对策 摘要:通过问卷调查的方式,对大学生在 C 程序设计课程学习过程中存在的主 要问题进行了总结和分析。在教学过程中,以提高大学生...
《C语言程序设计》(江宝钏著)实验三答案
结合程序掌握一些简单的算法,学习调试程序 实验 4 学时 二、实验内容 1.程序...(100.00)= 0.1 ( x ≠ 100) 输入输出示例 2(改正后程序的运行结果) ...
北京理工大学2013级C程序设计非信息类答案part2
00 折扣 0.8 折扣时间 2014 年 06 月 8 日 ...(c=a+1;c<=n;c++) {for(b=c-a+1;b<n;...C语言程序设计—北京理工... 43页 免费 北京理工...
北京理工大学2013级C程序设计非信息类答案part1
00 折扣 0.8 折扣时间 2014 年 03 月 18 日 ...11 日 星期五 23:55 小明在中学学习了什么是素数...学了 C 语言以后,你决定编写一个程序,帮助你的...
经典C语言笔试编程100例(含答案)
经典C语言笔试编程100例(含答案)_IT/计算机_专业资料.../*分解出千位*/ c=x 00/100;/*分解出百位*/ ...(b);c++) if(b%c==0) break; if(c>sqrt(b...
keil c语言编程常见错误分析
c++语言中有很多地方要用到 extern,但是如果没有真正的了解它的意义,会 给编程...固定指前面 0x00-0x7f 的 128 个 RAM,可以用 acc 直接读写的,速度最快,生...
C语言经典算法100例
(b);c++) if(b%c==0) break; if(c>sqrt(b...[2]=a 00/100; aa[3]=a/1000; for(i=0;i...C语言程序设计(第三版)-... 822页 免费 ©...
00 好的 C++学习线路图
00 好的 C++学习线路图_IT/计算机_专业资料。C++学习...其实学习计算机的基础课程是非常重要的,离散数 学,...因为那样非常的损失效率, 而这点违背了 C 语言设计...
拉格朗日插值法C语言的实现(实验报告)
语言程序设计 printf("x=%f,y=%f\n",xx,yy); getch(); } 运行结果: 运行结果: 已知当 x=-2.00,2.00,5.00 时 f(x)=0.00,3.00,6.00,求 f...
单片机习题(指令与编程及答案)
2003H 25. 程序设计的方法一般有( D ) A.1 种...12. 在 R7 初值为 00H 的情况下,DJNZ R7,rel ...的计算机指令就是它的___汇编___语言。 29. SJMP...
更多相关标签: