C++程序设计教程C++程序设计教程课件.ppt
《C++程序设计教程C++程序设计教程课件.ppt》由会员分享,可在线阅读,更多相关《C++程序设计教程C++程序设计教程课件.ppt(82页珍藏版)》请在三一办公上搜索。
1、C+的语句和简单的程序设计,本章讨论C+语言的语句集,主要讲述各种语句的语法、语义,并结合一些较小的应用来讲解语句的用法。,通过由模仿写程序到逐渐能独立地编写一些简单的程序这一过程,初步掌握编程的规范和基本方法。,主要内容:,程序结构顺序、选择、重复三大结构;,C+的各种语句(语法、语义、用例);,程序设计风格、方法与技巧简介。,重点:,程序结构,if语句,各种循环语句,注意:本章的内容重在程序设计实践。,课堂时数:89 学时,上机时数:4学时,课外上机时数:4学时,难点:,if语句的嵌套,三种循环语句的异同点,各种语句和程序结构的综合应用。,课时安排:,2.1 C+的符号系统,主要讨论C+的
2、字符集和标识符的构词规则。,1.C+的字符集,(1)英文字母,AZ,az(必须区分大小写)。,(2)数字字符:09。,(3)运算符,例如:+、-、*、/、%,等等。,(4)标点符号,例如:,、;和各种括号。,(5)其他符号,例如下划线_、美元符号$、井号#等。,C+的字符集是ASCII字符集的子集,包括以下几类字符:,2.标识符,例如:给变量、函数和自定义类型命名。name 变量名 max()max是函数名,标识符是由字符集中的若干个字符构成的“程序单词”,用来标识程序中的各种语法成分,也即给各种语法成分命名。,用途,不能与系统保留字同名;,尽量做到“见名知义”。,组成标识符的字符只能是:字母
3、、数字、下划线;,标识符的首字符不能是数字符,中间不能出现空格字符;,标识符的长度(字符数)是任意的,但一般仅前头31个字符有效;,构词规则,标识符(2),例2-1 AB1,ab1,Rec_Count,RecCount均是合法的标识符。注意AB1与ab1如果同时用在同一个程序中,是两个不同的标识符。,例2-2 1a,%name,$addr,Rec Count均是非法的标识符。,为什么?,实例,标识符(3),3系统保留字,例 2-3 int、float数据类型描述符(也称为类型名)if、for 语句成分描述符。,ANSI C设置32个保留字,ANSI C+在此基础上增加了29个保留字。(P535
4、),保留字是系统定义的特殊标识符(专用词汇)。通常用来作为数据类型描述符(类型名),语句成分描述符等。,2.2 C+的基本数据对象,1 概述,程序运行时所建立和处理的数据称为数据对象。它分为两大类:程序员定义的数据对象和系统定义的数据对象。,程序员定义的数据对象:由程序员通过说明语句显式创建和控制的常量、简单变量、数组、文件等。其中常量和简单变量称为基本数据对象。,系统定义的数据对象:指由虚拟机建立起来,用于运行事务管理的数据对象,例如运行栈(运行期堆栈)、子程序活动记录、文件缓冲区以及内存空闲区表等。,2.数据对象的重要属性,名即指数据对象的名称,是数据对象的外部标记,便于实现“按名存取”。
5、,注意:任何一个变量不可以没有名字。,类型,名,类型是数据对象的基本属性,例如整型、字符型等。,注意:一个确定的数据对象不可以没有类型!,类型、名(称)、位置和值是任何一个数据对象所具有的重要属性。,值,注意:一个数据对象在其生存期中,属性一般不会改变,但绑定是可以动态改变的。,2.数据对象的重要属性(2),位置,位置是一种绑定,是指数据对象所分配到的内存地址。这种绑定可以由虚拟机的存储管理例程改变,因此属于动态绑定。,值是一种绑定,该绑定通常以赋值操作实现,当然其它操作,例如数据对象的输入操作也可以实现值的绑定。,3常量和变量,1)常量,什么叫常量,通常直接用常量的值作为常量的名字。,即指程
6、序运行过程中,其值不会改变的数据对象。,在程序生存期中被永久地赋予固定值的数据对象。,常量的名,例如,整型常量名100表示值为100的常量。,常量和简单变量属于基本数据对象,是程序中最常出现的语法成分。,引入符号常量的目的有以下几点:,例2-4#define Max 10000,或const Max=10000#define pi 3.1415926,或const pi=3.1415926 Max和pi都是符号常量,其名与值是不一样的。,其中,第3点是最重要的。,便于记忆;,便于修改;,增强程序的可读性。,我们还可以用特定的标识符来作为常量的名字,这种常量称为“符号常量”。,常量和变量(2),
7、符号常量,2)变量,程序中,由程序员显式声明的数据对象,其值可以在程序运行过程中通过赋值操作、输入操作进行修改。,即数据对象和值之间的绑定在其生存期中可以改变。,简而言之:程序运行过程中,值可以改变的量(数据对象),称为变量。,常量和变量(3),什么叫变量,例2-5 下面的C+程序段包含着对变量的显式声明和动态赋值。,说明:(1)x,y被声明成整型变量,c1被声明成字符型变量;(2)x和c1通过键盘输入方式被赋值,而y则在赋值表达式中被赋值。,int x,y;char c1;cin x c1;y=x*5;,变量的显式声明,变量的显式动态赋值,例如,例2-5中的x,y,c1都是标识符,它们分别代
8、表不同的变量。,C+程序中,以显式说明的方式来声明变量,称为变量的建立。(参见2.6),变量的命名,3常量和变量(4),用标识符予以命名。,变量的建立,例如,例2-5中的int x,y;是一个变量说明语句,该语句声明了x,y二个整型变量。,int x,y;char c1;cin x c1;y=x*5;,2.3 数据类型概述,1数据类型的定义,数据类型是一个由数据对象以及创建和操纵它们的操作的集合所组成的类。,数据类型是程序设计语言的一个重要概念和重要内容。,本小节,我们仅介绍数据类型的定义、涵义及数据类型概述,有关数据类型的详细内容在第三章讨论。,数据类型的概念是十分抽象的,但我们可以从涵义上
9、去理解它,数据类型有以下三个涵义:,数据类型概述(2),2数据类型的涵义,确定数据的值域(数据取什么值);,规定允许对数据对象施加的运算(操作);,规定数据对象的存储结构和存储方式。,3数据类型的的重要性,每一个语言都有一个原始(标准)数据类型集,此外也应提供定义新数据类型的机制。,数据类型概述(3),一个语言所提供的标准数据类型集是否完善,定义新数据类型的机制是否健全,直接反映出该语言的处理能力。,4C+的数据类型一览,C+提供的数据类型分成基本类型和非基本类型(构造类型)两大类。,基本类型,数据的取值为纯量(单值)。例如整型数据在任何时刻其值都为单个整数。,非基本类型,包括结构类型、指针类
10、型、空类型(void)、类(Class)等。如下图所示:,数据类型概述(4),下图给出C+的数据类型一览:,我们将分三阶段来介绍C+的数据类型,第一阶段先介绍基本数据类型,等掌握了基本编程技术后,进入到较为复杂的数据处理和其它应用时,再进一步讨论非基本数据类型,当进入面向对象编程阶段时讨论类类型。,基本数据类型,4 C+的基本数据类型一览,基本数据类型包括:数值类型(整型、实型)、字符类型、布尔类型、枚举类型等。如下图所示:,数据类型概述(4),整数类型 实数类型 字符类型 布尔类型 bool 枚举类型 enum,2.4 表达式概述,表达式一般用来描述特定计算或特定处理,或两者兼而有之。表达式
11、素有语句的“语法结构砖瓦”之称,是程序设计语言中十分重要的语法。本节仅作简单讨论,有关表达式的详细内容在第四章介绍。,例2-6a=3+5*4;,1实例及其分析,分析:这是一个赋值表达式,它由运算符(=)、左部量(左值)、右部量(右值)三部分构成,右部量通常是一个算术表达式。该表达式先计算右部量,然后将其值传送给左部量,最后、a的值是23。,例2-7if(xy)z=x;else z=y;,分析:(1)if语句中出现了三个表达式,分别是xy、z=x、z=y。,实例及其分析(2),(2)xy是关系表达式,其计算结果作为分支选择条件;z=x、z=y都是赋值表达式,是if语句的两个分支。,2.表达式的定
12、义,表达式是由操作符、数据对象和括号组成的序列,用来描述一个计算。,通俗地说,所谓表达式是由若干数据对象通过操作符连接而成的,用来描述特定计算的式子。,表达式可以看成语句(有时甚至是程序)的语法结构砖瓦。,3.表达式的语法,E E,E:数据对象(运算元素),可以是常量、变量、函数调用、表达式。,:操作符,也即各种运算符,例如算术运算符、关系运算符、赋值运算符等。,语法,实例分析,例2-8 分析下面所给的表达式的结构。(a+b)*(c+d),(1)从表达式的语法可以看出,单个数据对象也可以视为表达式。,(2)表达式的语法具有递归性,体现在表达式中的数据对象又可以是一个表达式,这种递归性提供了由若
13、干个简单的式子构成复杂式子的能力。,分析:(1)这是一个算术表达式 EE1*E2,(2)E1和E2这两个数据对象本身又是表达式:E1(a+b);E2(c+d),表达式的语法(2),例2-8 分析下面所给的表达式的结构。(a+b)*(c+d),注意,4表达式的语义,表达式组合了允许一个语句改变机器状态的基本操作。因此表达式的执行必将改变机器的状态。这是表达式语义的最终表现。,显然表达式的语义与操作有关,也与操作的规则及约束有关,所以表达式的语义涉及以下两个方面:,操作符所描述的操作。操作的结果改变了机器状态,同时也获得了一个值。,表达式执行过程中所要遵循的规则及约束。它们是:约定、求值次序、结合
14、和优先级规则。,例2-9 下面的表达式中包含有不同类型的数据对象,试问如何进行类型转换?float a;a=5/2;,a的值为2(整型),也即a已由浮点型转换为整型。,表达式的语义(2),约定,即类型转换的约定,是指当表达式中出现数据类型不同的数据对象时,应该如何进行类型转换,请看下面的例子:,例如:计算(a+b)*(c+d),是先对(a+b)求值还是先对(c+d)求值?实际上,这对最后的乘积都没有影响。求值次序取决于编译器。,求值次序,表达式的语义(3),是指组成表达式的各运算元素(操作数)的求值次序。,优先级,是指操作符的优先级(也称为算符优先级),例如先乘除后加减,先与后或。,显然,乘除
15、操作符的优先级高于加减操作符。,例2-10 分析下列表达式的执行顺序。d=a+b-c;d=a=3;,加减操作符自左向右结合;,赋值操作符自右向左结合。,结合性,表达式的语义(4),是指当表达式中出现相同优先级的操作符时,对这些操作符执行次序(求值次序)的规定。,5表达式的分类,可以按表达式所含操作符的不同来给表达式分类,通常可以分为以下几种表达式:,我们将在2.14及第四章中系统介绍这些表达式。,2.5 结构化程序设计概述,1.结构化程序设计的基本思想,结构化程序设计方法的精髓可以概括为:,分析、设计和实现均可以采用:“自顶向下、逐步细化和精化”的方法。,具体而言,就是自顶向下,将大功能逐步分
16、解成较小功能、更小功直至最小功能,形成一棵功能树。,例如,可以将“学籍管理”分解成“学生注册”、“成绩管理”、“学籍异动”等较小功能,其中”成绩管理“功能又可以分解为:“成绩登记”、“学分统计”、“成绩查询”等更小功能,“成绩登记”又可以分解成“成绩录入”,“成绩修改”等最小功能。,学籍管理,注册管理,成绩管理,学籍异动,成绩登记,学分统计,成绩查询,成绩录入,成绩修改,成绩删除,在程序实现时,每一个功能(功能树上的每一个结点),都被实现为一个过程或函数,实现可以是自顶向下,也可以是自底向上。,有必要说明的是,即使是采用面向对象方法,类的各个操作的方法代码也离不开上述三种基本结构。因此结构化程
17、序的三种基本结构十分重要,而且贯穿始终。,每个过程或函数的执行部分都是由三种构造块组成的,它们就是结构化程序的三种结构,即顺序结构、选择结构和重复结构。,结构化程序设计的基本思想(2),结构图:执行顺序:,Statement1;Statement2;statement n;,下面程序块就是一个典型的顺序结构:int a;cin a;cout a;,2程序的三种结构,顺序结构,n条语句自上而下排列,并按排列的顺序自上往下逐条执行。其结构示意和执行顺序如下图所示:,结构中包含多个不同的执行部分(分支),结构控制能够通过计算产生条件并根据对条件的判断来选择和执行程序当时所应执行的分支。,程序的三种结
18、构(2),选择结构,通常用if语句或swith语句来实现选择结构,请看下面的例子。,#include#include void main()main()int x,y;cin x;if(x0)y=0;else y=1;cout”y=”yendl;,程序的三种结构(2),结构图(N-S图),Exp:选择分支的条件(表达式),S1,S2:语句集(包含一至多个语句),当条件为真选择并执行s1,否则选择并执行s2。,流程图(Flow chart),(2)比较两个字符串的大小,需要逐一比较两个串的的对应字符(重复进行单个字符的比较)。,(1)计算 s=1+2+3+4+5+6+.100,这是一个重复执行9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 教程 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3726144.html