学习《C++程序设计》(第二版) 谭浩强 主编
第三章 程序设计初步
3.1 基于过程的程序设计和算法3.1 基于过程的程序设计和算法
3.2 C++的程序结构和C++语句
3.3 赋值操作
C++既可以用来进行基于过程的程序设计,也可以用来进行面向对象的程序设计。
基于过程的程序设计又称为过程化的程序设计
它的特点是:程序必须告诉计算机应当具体“怎样做”,也就是要给出计算机全部操作的具体过程。执行完这个过程,就实现了问题的求解。
基于过程的程序设计反映的是事物在计算机中的实现方式,而不是事物在现实生活中的实现方式
在基于过程的程序设计中,程序设计者必须指定数据在计算机中的表现形式,以及怎样对数据进行操作,以得到预期的结果
程序设计者不仅要考虑程序要“做什么”,还要解决“怎么做”的问题
要根据程序要“做什么”的要求,具体设计出计算机执行的每一个具体的步骤,写出一个个语句,安排好它们执行的顺序
怎样设计这些步骤,怎样保证它的正确性和具有较高的效率,这就是算法需要解决的问题
3.1.1算法的概念
一个基于过程的程序应包括以下两个方面内容:
1.对数据的描述,也就是数据结构
2.对操作的描述,也就是算法
总结起来,基于过程的程序可以用如下公式表示:
程序=算法+数据结构
计算机算法可以分为两大类:数值算法和非数值算法
无论基于过程的还是面向对象的程序设计,都离不开算法设计
在面向对象的程序设计中,在一个类中既有对数据的描述,又有对操作的描述,函数就是用来实现对数据操作的
数据时操作的对象,操作的目的是对数据进行加工处理
在考虑操作的过程中,任然要用过程化的方法,因此,必须学习和掌握一些常用的suanfa
对于不熟悉计算机算法的人来说,可以只使用别人已设计好的现成算法,只需要根据算法的要求给以必要的输入,就能得到输出的结果
对他们来说,算法如同一个“黑箱子”一样,他们可以不了解“黑箱子”中的结构,只是从外部特性上去了解算法的作用,即可方便地使用算法
但对程序设计人员来说,应当学会设计一些简单的算法,并且根据算法编写程序
3.1.2 算法的表示
常用的有4中:
1.自然语言
2.流程图
用图的形式表示算法,比较形象直观,但修改算法时不方便,对比较大的、复杂的程序,画流程图的工作量很大,专业人员一般不用流程图表示算法,而喜欢用伪代码表示算法
3.伪代码
4.用计算机语言表示算法
3.2 C++的程序结构和C++语句
一个程序包含一个或者多个程序单位
每一个程序单位由以下3个部分组成:
1. 预处理指令:如#include指令和#define指令
2. 全局声明:在函数外对数据结构、函数以及变量的声明和定义
3. 函数:包括函数首部和函数体
如果一个变量在函数之外进行声明,此变量是全局变量,它的有效范围是从该行开始到本程序单位结束
如果一个变量在函数之内进行声明,此变量是局部变量,它的有效范围是从该行开始到本函数结束
C++程序最小的独立单位是语句(statement)
C++ 语句一般用分号结束,复合语句用右花括号结束
C++语句可以分为以下4种:
1.声明语句
在C中,只有产生实际操作的才称作语句,对变量的定义不作为语句,而且要求对变量的定义必须出现在本块中所有程序语句之前
在C++中,对变量以及其他对象的定义被认为是一条语句
2.执行语句
通知计算机完成一定的操作。共包括:
1.控制语句,共9种:
2.函数和流对象调用语句1. if( )~else~ 条件选择
2. for( ) ~
3. while( ) ~
4. do ~ while( )
5 continue 结束本次循环语句
6. break 中止执行switch或循环语句
7. switch 多分支选择语句
8. goto 转向语句
9. return 从函数返回语句
上面9种语句中的括号()表示其中包括一个判断条件,~表示内嵌的语句
如:sort(x,y,z);
cout<<x<<endl;
3.表达式语句
3.空语句
只有一个分号的语句 ;
有时用来做被转向点,或循环语句中的循环体 (循环体是空语句,表示循环体什么也不做)
4.复合语句 { }
3.3 赋值操作
C++中的赋值号是一个运算符,可以写成a=b=c=d,而其他大多数语言不是
C++把赋值语句和赋值表达式区别开来,增加了表达式的种类,使表达式的应用几乎“无孔不入”,能实现其他语言中难以实现的功能