第二章11颜色.ppt

上传人:sccc 文档编号:5669396 上传时间:2023-08-07 格式:PPT 页数:45 大小:1.87MB
返回 下载 相关 举报
第二章11颜色.ppt_第1页
第1页 / 共45页
第二章11颜色.ppt_第2页
第2页 / 共45页
第二章11颜色.ppt_第3页
第3页 / 共45页
第二章11颜色.ppt_第4页
第4页 / 共45页
第二章11颜色.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《第二章11颜色.ppt》由会员分享,可在线阅读,更多相关《第二章11颜色.ppt(45页珍藏版)》请在三一办公上搜索。

1、1,第二章 数据类型、运算符与表达式,2.1变量定义2.2 数据类型2.3 运算符和表达式2.4 应用举例,2,2.1 变量定义,1.变量的定义变量也成为对象,是数据的存放之处变量有三个重要属性:名称、值和类型程序运行过程中其值可变的量,定义方式如下:C/C+规定:程序中所有变量必须先定义后使用,可及时发现录入错误(如,定义的变量为data,而程序体中使用变量为date),同时还可限制非法运算(如:a%b,若a,b为float类型则出错)。,C+中变量可随时使用,随时定义。,例如:int a,b;(定义变量a和b为整型)float x,y;(定义变量x和y为单精度实型),数据类型 变量名表;,

2、3,2.变量的命名变量名、数组名、函数名称为标识符。标识符只能由字母、数字、下划线这三种字符组成,且第一个字符必须为字母或下划线,长度不大于247个字符,大小写不通用。(关键字不能作为标识符)。关键字即是VC+的语法要求中使用的字。如 int if while 等。正确的标识符:INT,sum,de12,SUM等。变量必须使用前定义,以分配空间。,一般变量都是用匈牙利命名法命名的。,int nCount;char chChoice;,4,3.变量的初始化变量必须先有确定的值后才能参与各种相应的操作,变量获取值的途径有三:通过输入语句输入(如:cina;)通过赋值语句赋值(如:a=3;)通过初始

3、化方式赋初值(如:int k=3,x(5);)所谓初始化是指在定义变量的同时指定变量的初值,形式有二:例如:int k=3,m=3,n(3);()int k=m=n=3;/不允许为多个变量同时初始化,数据类型 变量名=表达式;数据类型 变量名(表达式);,5,4.变量引用,C+中增加了“引用”这一概念,许多地方可以代替指针实现相应的功能,比指针更安全。所谓引用即给一个已知变量起个别名,系统不为引用另外开辟内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量,声明形式为:,数据类型&引用名=已定义的变量,如:int a=3,/你知道此时a的值为多少吗?,6,2.2 数据类型,程序中要对各种

4、各样的数据进行描述和操作,用到的数据都必须指明其类型。数据类型的作用:指出了应为数据分配的存储空间的大小(数据的取值范围)规定了数据所能进行的操作,数据类型,基本类型,构造类型,整型(int),实型,字符型(char)布尔型(bool)空类型(void),单精度型(float)双精度型(double),指针数组结构型(struct)共用体(union)枚举(enum)类(class),7,2000H2001H2002H2003H2004H,3,3+5=?,5,运算器,(2000H)+(2002H),用一个字节表示整数,范围为-128127;用两个字节表示整数,范围为-32768 32767。一

5、般用四个字节表示整数范围为-231(231-1)。,内存,CPU,内存,data,外存,Program,8,硬盘 软盘,2.2.1 数据类型整型,8,有符号数,无符号数,32767,32767,32766,32766,1,1,0,0,-1(补码),65535,-2,65534,-32767,32769,-32768,32768,9,在程序运行过程中其值不能改变的量,有值常量和符号常量两种。,1.整型常量,10,#includevoid main(void)int int10,int8,int16;/定义3个整型变量int10=10;/默认为十进制int8=010;/八进制int16=0 x10

6、;/十六进制coutint10=int10endl;coutint8=int8endl;coutint16=int16endl;,输出int10=10int8=8int16=16,11,2.整型变量:分为有符号型与无符号型。有符号型:short 在内存中占两个字节,范围为-215(215-1)int 在内存中占四个字节,范围为-231(231-1)long在内存中占四个字节,范围为-2-31231-1,无符号型:最高位不表示符号位unsigned short 在内存中占两个字节,范围为0216-1unsigned int 在内存中占四个字节,范围为0232-1unsigned long在内存中

7、占四个字节,范围为0232-1,12,1)整型常量亦有长短之分,常量中无unsigned型,但一个非负的整型常量可以赋给unsigned型的变量。2)若一个常量定义为长整型数,则在其后加l或L进行区分。如:32l 32L 564L等,内存为其分配四个字节存储。,一个数在内存中为,当这个数为有符号数时,是-1;为无符号数时,是232-1内存中的数是以补码的形式存放的。(举例说明),13,#include void main()unsigned short a;short int b=-1;a=b;couta=aendl;,结果:65535,不同类型的整型数据间的赋值归根到底就是一条:按存储单元中

8、的存储形式直接传送。,a,b,unsigned short a;,14,2.2.2 数据类型实型,实型数又称浮点数,有两种表示方式:1)十进制形式:23.0 24.5 3.56789 指数形式:23E1 145e-1 356789e1 e前有数字,后面必须是整数。,实型变量分单精度 float 和双精度 double 两种形式:float:占四个字节,提供78位有效数字。double:占八个字节,提供1516位有效数字。,举例说明,15,#includevoid main(void)float a,b;double c,d;a=0.01;b=3.45678e-2;c=3.45678e-2;d=

9、9.7654e-5;couta=atb=bendl;coutc=ctd=dendl;,a=0.01 b=0.0345678c=0.0345678 d=9.7654e-005Press any key to continue,16,如果为实数,则用浮点数的形式在内存存储,表示如下:,实数是既有整数又有小数的数。实数可以表示成:N=SRJS 称为尾数,尾数决定有效数字,即数字的精度。J 表示指数(阶码)。R 是基数,可取2,4,8,16等,对具体机器而言,基数取好后,就不能再变了。数有正有负,所以设置数符;阶码亦有正负,所以设置阶符,17,一般用4个字节表示一个浮点数,也有用8个字节表示的。,字长

10、一定,尾数越多,精度越高;阶码越多,范围越大。当计算机中出现小于机器所能表示的最小数时,机器只能当零来处理,当出现超过机器所能表示的最大数时,出现溢出现象,一旦出现溢出,就会停止运算。定点数,浮点数均会出现溢出现象。,18,2.2.3 数据类型字符型(char),字符型数据实际上是作为整型数据在内存中存储的。计算机是以字符编码的形式处理字符的,因此,我们在计算机内部是以ASCII码的形式表示所有字符的。所以7位二进制数即可表示出一个字符,我们用一个字节的容量(8位)存储一个字符。,例如:字符A的ASCII码为0 x41或65,在内存中表示为:,在程序中表示为:char grade;/定义一个字

11、符型的变量空间(1个字节)grade=A;/必须用 表示,否则易与标识符混同,内括起来的字符表示该字符的ASCII码。,19,进一步,由于在内存中的形式与整型数据相同,所以,可以直接用其整型值给变量赋值。,char grade;grade=65;,以下的赋值形式均是等同的。grade=A;grade=65;grade=0 x41;grade=0101;,#includevoid main(void)char a,b;a=A;/输入ASCII码 b=65;/输入十进制数 couta=aendl;coutb=bendl;,输出:a=Ab=A,即在内存中的表示均是相同的,20,非打印字符有些ASCI

12、I的字符代表某些操作,不能打印出来,如回车、退格等,可用两种方式表示这些字符。1)用ASCII码的形式 char re=13;2)用转义字符 char re=n;,21,22,转义字符虽然包含2个或多个字符,但它只代表一个字符。编译系统在见到字符“”时,会接着找它后面的字符,把它处理成一个字符,在内存中只占一个字节。,23,典型转义字符:n换行 b 退格 t 下一个输出区若输出中包含这些特定格式,则再加一个,输出 c:tctc 表示为coutc:tctc;,可以用转义字符表示任一一个ASCII字符 ddd(八进制)xhh(十六进制)101 x41 x61 141,24,#includevoid

13、 main(void)char c1,c2,c3,c4;char n1,n2;c1=a;/字符常量 c2=97;/十进制 c3=x61;/转义字符 c4=0141;/八进制 coutc1=c1tc2=c2endl;coutc3=c3tc4=c4endl;n1=n;/转义字符:回车 n2=t;/转义字符:下一个输出区(Tab)cout使用转义字符n;coutc1=c1n2c2=c2n1;coutc3=c3n2c4=c4n1;,输出:c1=a c2=a c3=a c4=a使用转义字符c1=a c2=a c3=a c4=a,25,字符串常量:用 表示,在内存中顺序存放,以0结束。如:CHINA,a在

14、内存中占一个字节 a占两个字节,实际上内存是对应字符的ASCII码形式,26,标识符常量是以标识符形式出现的常量,作用是便于程序阅读和修改:在C+中有二种方法定义标识符常量,一种是使用编译预处理指令define;另一种是使用C+的常量说明符const。形式如下例如:#define PRICE 30/在程序中凡是出现PRICE均用30替代#define PI 3.1415926#define S“China”,const float pi=3.1415926;/将变量pi定义为常量(举例说明),#define 标识符 常量值 const 数据类型 标识符=常量值,27,#include#defi

15、ne PI 3.14156#define S Chinavoid main(void)const float pi=3.14156;/变量作为常量使用 coutPI=PIendl;cout10*PI=10*PIendl;coutSendl;/PI=PI+3;/pi=pi+4;coutPI=PIendl;coutpi=piendl;,输出:PI=3.1415610*PI=31.4156ChinaPI=3.14156pi=3.14156,习惯上符号常量名大写,而变量名小写,以示区分。符号常量虽然用标识符来标识,但本质上是常量,具有常量值不能改变的性质。,注意:,28,2.2.4数据类型布尔类型,布

16、尔型(bool):标准C中没有布尔型数据,而是C+新增的数据类型。占一个字节,它的值为:True(1),false(1),29,2.3 运算符和表达式,2.3.1 基本概念,运算符具有三个属性:优先级:指运算的先后次序,共分15个级别。结合性:指相同优先级运算符连续出现时的计算顺序,分自左向右和自右向左两种,除特别声明外,皆指自左向右。目 数:指运算符要求的操作数的个数,包括单目、双目和三目,一般目数越少,优先级越高。,表达式:由常量、变量、函数调用和运算符按一定规律组合在一 起构成的式子。如:a+14/(3+2)-sqrt(17),30,2.3.2 运算符1.算术运算,种类:+(加法或取正)

17、-(减法或取负)*(乘法)/(除法)%(求余数)+(自增)-(自减)其中:+和-的结合性则是自右向左 优先级:(从高到低)(+、-、+、-)(*、/、%)(+、-),31,说明:在除法运算中,当两个操作数都是整数时,商也为整数,小数部分一律舍去。如:1/2 0 1.0/2 0.5%(求余运算)要求两个操作数都是整型,结果为整除后余下的整余数。自增、自减运算符(+、-)+i,-i(在使用 i之前,先使i的值加减1)i+,i-(在使用 i之后,使i的值加减1),若 i 的值为3,则:j=+i;j的值为4,i的值为4 j=i+;j的值为3,i的值为4,注意:自增、自减运算符只能用于变量,而不能用于常

18、量和表达式。()5+、(a+b)+,int x=10;cout x=x+end1;cout x=x end1;cout x=x end1;cout x=+x end1;运行结果:,33,2.关系运算,种类:(大于)=(等于)、=(大于等于)、!=(不等于)优先级:(从高到低)(、=)(=、!=)注意:避免两个浮点数进行这样的比较关系运算描述的是一种“判断关系”,其结果有“真(true)”和“假(false)”两种。用“1”代表“真”,用“0”代表“假”例如:53的结果为1,aB的结果为0思考:x为0到100之间的数能否表示为 0=x=100?,34,3.逻辑运算,种类:&(逻辑与)、|(逻辑或

19、)、!(逻辑非)优先级:(从高到低)!&|其中,“!”是单目运算符,优先级高于算术运算符。“”和“|”低于关系运算符。逻辑运算通常用来连接关系运算,逻辑运算符两端的操作数如为“非”,就当作“真”来处理,如果是“”,便当作“假”来处理。逻辑运算的结果也只有 0(false)和1(true)两种。,35,说明:当多个&连续出现时,如表达式&表达式&表达式从左到右,只要一个操作数为0,结果就为0,不进行后续运算。当多个|连续出现时,如表达式|表达式|表达式从左到右,只要一个操作数为1,结果就为1,不进行后续运算。,36,#include iostream.hvoid main()int m,n=10

20、;m=2,例,1.分析运行结果2.改为m=0&n+,结果又如何。,4.条件运算形式:e1?e2:e3 一般而言,e1为条件表达式,当其成立时,将e2的值作为整个表达式的值,不再计算e3的值;否则取e3的值作为整个表达式的结果,而不计算e2的值。,37,如:max(xy?x:y);/将和中较大的一个数赋值给变量max条件运算符的结合性是由右向左思考题:对n(0)个人进行分班,每班k(0)个人,最后不足k人也编一班,问要编几个班?(试用条件运算符表达),n%k0?n/k+1:n/k,5.赋值运算格式:作用:将一个数据赋给一个变量,并以变量的值作为整个式子的值。,变量 赋值运算符 表达式,38,其中

21、赋值运算符可以是“=”,也可以是复合赋值运算符,如“+=”、“-=”、“*=”、“/=”和“%=”等等。复合赋值运算符的等价形式:(以“+=”为例)例如:b/=a+2 等价于:b=b/(a+2)结合性自右向左若两端类型不同,则系统自动将右端类型转换为左端类型。例如:有定义 int a=3.78;则a中存放的值为3左端只能是变量(或数组元素),不能为表达式或常量,如:a+2*=b()a=b+2=c+5(),变量+=表达式,变量=变量表达式,是一个整体,39,6.逗号运算形式:e1,e2,e3,其中e1、e2、e3均为表达式,从左向右依次计算各个表达式的值,而将最后一个表达式的值作为整个表达式的值

22、,逗号运算符常用于循环语句的表达式中,将多个表达式连接成一个表达式,如:for(i=0,j=n;ij;i+,j-)逗号运算符的优先级别最低。,40,7.sizeof()运算符,sizeof()运算符是一个单目运算符,用于计算某一个操作数类型的字节数。其格式为:sizeof(),sizeof(int)/其值为4sizeof(float)/其值为4sizeof(double)/其值为8sizeof(char)/其值为1,41,8.数据类型的转换数据类型的转换分为显式(强制)转换和隐式(自动)转换。强制转换格式:或:将一种数据类型的值强制转换为另外一种数据类型。常用于对函数的参数及返回值的操作。假设

23、、为float型数据,则(int)(x+y)强行将+的值转换成整型,x和y仍为float型。自动转换:在不同类型数据进行混合运算时,系统自动进行的类型转换。,(类型名)表达式,类型名(表达式),42,char short int unsigned longunsigned longfloatdoublelong double,必定的转换,混合运算时由低向高转换,自动转换还包括赋值运算时赋值号右端类型向左端类型的转换例如 int i=10;unsignd int j=1;比较i与j大小,8.内部函数 C/C+中提供了多种内部函数供用户编程序时直接调用,只需把包含内部函数的头文件,通过#inclu

24、de 预处理命令装入到程序中。例如,程序中要使用平方根函数sqrt,应该在程序加入:#include math.h“,43,2.4 应用举例例 用代码表达下列命题:1.能且只能被和中的一个数整除。解:或 2.ch是大写字母。解:思考上述命题可否描述为AchZ?为什么?,(m%3=0)&(m%2!=0)|(m%2=0)&(m%3!=0),(m%3=0)!=(m%2=0),ch=A&ch=Z,44,#includeiostream.h#includeiomanip.h#includemath.hvoid main()float a,b,c;double l,s;coutca;b=sqrt(c*c-

25、a*a);/sqrt为内部函数,对其的说明包含在头文件math.h中l=a+b+c;s=a*b/2;cout计算结果:endl;coutsetw(8)另一直角边=bendlsetw(11)周长=lendlsetw(11)面积=sendl;,例编写程序:要求输入直角三角形的斜边和一条直角边,求三角形另外一条直角边,周长和面积,程序:,输入(已知),处理(根据已知求未知),输出(结果),编程过程,45,#includeiostream.h#includemath.h#includeiomanip.hvoid main()int c1,c2,c3;char c4;int x;cinx;c4=x=0?+:-;/x的符号存入c4x=abs(x);/求整型数x的绝对值c3=x%10;/x%10为个位数字x=x/10;c2=x%10;c1=x/10;cout数符 百位数 十位数 个位数endl;coutsetw(2)c4setw(8)c1 setw(8)c2setw(8)c3endl;,例 编程输入一个三位整数,依次输出该数的正(负)号和百位、十位、个位数字。,程序,分离出符号位后分解各数位,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号