Skip to content

Latest commit

 

History

History
132 lines (71 loc) · 9.72 KB

Learn_point.md

File metadata and controls

132 lines (71 loc) · 9.72 KB

第1周学习要点

第一周的重点是:

(1)了解什么是程序设计和程序设计语言。

(2)知道计算机语言的编译实现和解释实现。

(3)熟悉C++的编程环境。

(4)掌握C++程序的基本结构及一些术语、基本规则等入门的概念。

(5)通过几个小例子熟悉一下C++。

  这一周的内容不算难,但也可能涉及了后面的一些内容,如果搞不清楚,不要紧。环境的使用、简单的输入、输出、四则运算、基本数学函数知道怎么用,就可以了。

我们这门课,每周都有随堂测试、讨论、每周测验和每周作业。每周测验题是单选、判断等形式,系统自动批改,注意截止日期。每周作业是编程题,提交源程序,也是系统自动批改的。做编程题要特别注意输出格式,严格按要求和给出的样例设计输出,不能随意发挥,大小写、中英文符号都不能混用,空格也不能随意加减,请大家注意。如果准备获得本课程的证书,请积极参与讨论并按时完成各部分的测试和作业。

学习了本周的课程,如果觉得简单,请不要轻视它;如果觉得还有些不懂,不要畏惧它。慢慢学,可以学好。

本周我们给大家推荐了一本电子书《高质量C/C++编程指南》(林锐),请大家有时间看看,非常有利于我们养成良好的编程习惯。你会重新认识什么是好程序。

第2周学习要点

数据类型希望能够理解不同的类型到底有何不同。进一步大家可以探究数据在内存中的存储形式。

变量要注意的问题是必须先声明,后使用。特别要知道变量一经声明,系统就为其保留了存储空间,以后可以通过名称(也就是变量名)使用这个空间,在里面存数据(赋值),从里取数据。

变量在没有赋值时,其值是不确定的,特别注意不一定是0,如果这样进行运算,会得到不正确的结果。是初学时要注意的问题。

运算符要知道有哪些运算,使用什么符号表示。运算符有优先级和结合顺序。同学们应总结其中的规律。

还有不同类型数的混合运算,先向级别高的类型转换再计算。同类型的数据的运算结果还是这种类型。特别注意整型数的运算结果还是整型数。例如1/2的结果是0而不是0.5。

推荐的编程习惯:

(1)变量的声明集中放在程序的开头。

(2)不同类别、不同意义的变量分开声明。

(3)变量名使用有意义的标识符,如与所表达的意义相关的英文单词、单词组合、单词缩写、汉语拼音等。

(4)运行中不变的量定义成常量。使用符号常量,少使用字面常量。

(5)使用圆括号清楚地标明运算的优先级。

(6)不使用过长的语句。过长时可以分成多个语句来写。

(7)对程序中的主要运算、变量进行注释。

第3周学习要点

 第3周的主要内容为控制结构,即顺序、选择和循环。

程序的一般执行顺序是顺序结构,总是从上到下顺序执行的。

当有分支的时候,就会根据条件,选择不同的分支去执行。

当有循环的时候,就会重复。

对于分支和循环体,即使只有一行程序,最好也把它写在一对大括号内。!!!

分支和循环都可以嵌套,但不可交叉。

分支、循环的条件都是逻辑值。使用逻辑值注意,除true和false外,表达式的值为0就表示false;表达式的值非0就表示true。 象while(a){...}这样的循环也常见,就是当a不是0的时候循环,相当于while(a!=0){...}

while循环和do...while循环一般应保证循环能够退出,即循环条件会变为false,防止死循环。除非是有意这么做。

for循环中,圆括号中是两个分号,分隔三个表达式。三个表达式都可以没有(如for(;;;){}也是合法的循环),但不能没有分号。而且三个表达式即可以是一般的简单的表达式,也可以是等号表达式,逗号表达式或?号表达式。

使用循环,注意避免在循环条件的后面直接写分号,如

for(i=0;i<n;i++);

这是同学们常犯的错误。这样的循环体是空语句,经常会得不到我们想要的结果,除非你有意这么做。

循环中还有两个常用的语句,一是break,另一个是continue。break是终止循环,执行循环后面的语句;continue是中止本次循环,直接进入下一次循环。

以后问题会稍微复杂一点,同学们遇到的问题不仅是语法错误,更多的是逻辑错误,就是程序能运行,但结果不正确。本周视频的最后是两个重要的调试技巧,是同学们务必观看,务必掌握的:

一个是加输出语句,另一个是单步跟踪。

无论你用什么编译器,这两段视频都对你非常有益。

第4周学习要点

 第4周的内容。

本周学习的内容主要与复杂信息的表示有关,包括数组、结构体和枚举,这些表示方式都是为了能够表示事物特征之间的关系。

对于数组,需要大家重点掌握一维和二维数组的静态定义方法、初始化方法、使用方法和存储方式,同时也对多维数组的定义有所了解。

 学习数组注意:

(1)定义数组时,数组的大小是常量表达式。如果初始化时给出了所有数据,大小可以省略。二维数组的列大小不能省略。

(2)操作数组时,下标不要越界,就是不能超出范围。大小是n的一维数组,下标范围是0~n-1,超出这个范围就是下标越界。

(3)数组元素不能整体输入和输出,应使用循环。

字符数组的元素本是一个字符,相当于带单引号的一个字符。但一维字符数组可以存放字符串(末尾是'\0'),二维字符数组可以存放多个字符串。每行表示一个字符串。存放字符串的一维字符数组或二维字符数组的一行可以整体输入、输出,但不能整体赋值。可以通过字符串处理库函数实现赋值、复制、比较、大小写转换等操作(包含头文件cstring),但这些功能作为编程的基本功,同学们要能自己编写这样的处理程序,也确实有时这些函数不能奏效,这时就需要对字符的处理比较清楚。

 字符串和字符数组是不同的概念。在字符数组中存放字符串,应在字符串末尾存放结束符'\0'。整体输入时,自动存放了结束符。自己编程操作字符串(字符数组)时,需要自己放结束符。如果忘记放结束符,可能会得到不正确的结果!!!

结构体和枚举是两种自定义类型,需要掌握它们的定义方式以及属于该类型变量的定义和使用方法,特别要注意它们的使用规则。例如结构体变量不能整体输入、输出,但同类型变量可以直接赋值;枚举变量不能赋整数值等。

第5周学习要点

各位同学:

“计算机程序设计(C++)”课程第5周的内容即将发布。

第5周的内容为函数。

函数其实也是一段程序,我们给这段程序起一个名字,以后可以通过这个名字使用这段程序,这时,这段程序就是函数。函数的使用,称为函数的调用。

使用函数,可以将复杂的程序分成不同的部分来写,通过各个函数的调用,来完成整个程序的功能。

使用函数完成一项功能,通常需要提供一些数据,这就是参数;函数中的程序执行完后,通常会有一个计算结果,这就是函数的返回值。

有了函数,我们的程序可以更简洁,更清晰,调试和维护更容易,特别是复杂的程序更是离不开函数。编写的函数还可以在多个程序、多个软件中使用。

祝同学们学习进步。

第6周学习要点

各位同学:

“计算机程序设计(C++)”课程第6周的学习内容将于2019年3月18日发布。

第6周的内容是函数进一步的特性,包括递归、内联函数、函数的重载以及变量的作用域和生存期。

递归,是函数直接或间接调用自己的一种机制。非常象数学上的递推。使用递归关键要把握两点:一是递推关系,第k步可以使用第k-1步及以前的结果;二是终止条件,倒推到n=0步,问题的解是确定的,不再需要递推。这样n=0的问题解决了,n=1的问题就解决了,...,第k步的问题就解决了。递归使得有些问题的编程显得非常简单。

内联,实际就是代码的替换。在计算机中,函数的调用是需要时间和空间的,就是需要代价的。如果函数的程序很短,将函数说明成内联函数,编译时会将函数的调用直接用代码替代,执行时就省去了调用过程,从而提高执行效率。

重载是C++中多个函数共用一个名字的机制。一项功能,当处理的对象不同时,需要编写不同的程序。如果函数不能同名,当然就需要多个名字不同的函数,这样在使用这些函数时,就要清楚处理的对象是什么,使用哪个函数,给使用函数的人增加负担。使用重载,不管处理的是哪类对象,都可以使用同一个“函数名”(使用的人,不需记住那么多函数名了)。

变量的作用域是指变量起作用的范围。变量的生存期指变量存在的时期。声明一个变量,我们应知道它在何时何处是有效的。

想让自己写的程序显得“高大上”吗?好好学习第6周的内容吧。