一、计算机语言学习目的
计算机语言学习的唯一目的是编写程序,运行得到结果,以解决实际问题。
二、C语言学什么?
C语言课程包含的要点有:C语言语法、算法设计、算法的计算机表达。
1.算法是核心
90%的老师都只讲授了C语言的语法,99%的初学者只注重C语言语法的学习。实际上C语言的语法是为了实现算法而设计的。
比如:为了实现数值运算,C规定了数值类型及加减乘除运算法则…再比如:为了实现非数值处理,C规定了字符类型及运算法则…
再比如:为了批量处理相同类型数据,C定义了数组类型,循环…再比如:为了把复杂问题简单化,实现问题的分解,C规定了函数…
结论1:学习计算机语言要从实现算法的角度理解语法,而不能从语法的角度理解算法!前者事半功倍,后者事倍功半!
2.语法是工具
语法是工具,语法是说明书。学习C语言应侧重语法的使用而不是语法本身。比如:锄头、耙头、揪都是工具,什么时候使用什么工具是根据实际问题和经验来选择的。
结论2:解决实际问题必须根据算法选择语法,单纯学习、背诵语法毫无意义!
学习计算机语言必须进行实际问题表达为数学问题的训练、常见数学问题的算法训练、常用算法表达为程序的训练。积累什么时候用循环、什么时候用分支,什么时候用指针,什么时候用结构……的经
验。
3.面向过程是特点
什么是面向过程?面向过程就是面对要解决的实际问题,从问题出发,设计解决问题的步骤(称为设计算法),而任何算法有可以通过3种结构(顺序结构、分支机构、循环结构)来实现。因此面向过程的程序有称为结构化程序。
举例:非线性方程f(x)=0的求根x^3-2x+1=0
1)、搜素法
2)、二分法
3)、牛顿迭代法
三、C++学什么?
1、面向过程与面向对象
面向过程是面对要解决的实际问题,根据问题设计算法,进一步用程序来实现,这是一种简单的思维模式,即:就事论事。
面向对象是另一种思维模式,即:注重参与问题解决的对象。
面向过程用锄头平地、用耙头翻土、用揪开沟。面向问题-具体化。
面向对象先不考虑问题细节,先考虑参与问题的对象即:人、工具、土地。人能使用工具,工具能耕作土地,土地能种植庄稼。面向对象-抽象化。
()c语言是啥问题:
A.光考虑对象能解决实际问题吗?可以!把具体的实际问题作为该对象的一种能力来处理。
B.是不是把问题搞复杂了?如果只是一个程序,是增加了代码量,但类一旦设计好,其他程序可以使用,如果还需特殊的具体功能,可以在原有基础上增加(派生)。实现代码重用。
2、设计算法与设计类
面向过程的重点是设计算法
面向对象的重点是设计类,当然在类的某些功能上要设计算法。
3、C++的主要内容
面向对象的重点是设计类,所以C++是围绕类的而设计语法的,当然在类的某些功能上要算法的实现仍使用C的语法规则。
注意:几乎所有教材或参考书看起来都是介绍语法,也就是如何实现类。但面向对象的本质、核心是设计类!
要站在设计类的高度来学习,积累体验和经验。