第2章数据表达与程序流程控制课件.ppt

上传人(卖家):晟晟文业 文档编号:4106477 上传时间:2022-11-11 格式:PPT 页数:79 大小:348.12KB
下载 相关 举报
第2章数据表达与程序流程控制课件.ppt_第1页
第1页 / 共79页
第2章数据表达与程序流程控制课件.ppt_第2页
第2页 / 共79页
第2章数据表达与程序流程控制课件.ppt_第3页
第3页 / 共79页
第2章数据表达与程序流程控制课件.ppt_第4页
第4页 / 共79页
第2章数据表达与程序流程控制课件.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

1、第2章数据表达与程序流程控制表达式语句语句数据的存储:存储空间分配和数据输入数据的处理结果数据的输出函数2.1 内部预定义类型 存储器组织 编译过的程序和数据都存储在计算机的存储器中。计算机的存储器按字节(Byte)编址000000000000000000000000000000110 xFFFFF00 xFFFFF1存储单元地址内容存储单元中的内容可以经常变化的。而地址相对不变。字长 一台计算机用来表示一个整数(int)所需的字节数。字长一定,这台计算机中能表示的整数范围就确定。比如字长为4(即32位)的机器中,无符号整数(unsigned int)表示范围:04294967295。0000

2、0000 00000000 00000000 00000000=000000000 00000000 00000000 00000001=100000000 00000000 00000000 00000010=200000000 00000000 00000000 00000011=311111111 11111111 11111111 11111111=232-1=4294967295一个数据存储在计算机中:从哪个地址开始?占用几个字节?01000001A在机器中的表示预定义基本数据类型:程序设计语言事先定义好,供程序员直接使用,不同类型的数据在内存中所占用的字节数不同,内部预定义或简单对

3、象,通常用来表示复杂对象的属性。C+的基本数据类型的基本数据类型基本类型基本类型整型整型 短整型短整型(short int)整型整型(int)长整型长整型(long int)字符型字符型(char)浮点型浮点型单精度型单精度型(float)双精度型双精度型(double)长双精度型长双精度型(long double)基本类型布尔型(bool)构造类型枚举类型(enum)数组类型结构体类型(struct)共用体类型(union)类类型(class)指针类型引用类型空类型(void)数据类型数据类型C+并没有统一规定各类数据的精度、数值范围和在并没有统一规定各类数据的精度、数值范围和在内存中所占的

4、字节数,各内存中所占的字节数,各C+编译系统根据自己的情编译系统根据自己的情况作出安排。况作出安排。For examle:ch1/1-1.cpp2.2 简单对象的声明与使用 任何对象,先声明,后读写 在高级语言中,通常不直接用存储器地址来标识存储空间,而用变量来表示,如:int number;/声明一个整型声明一个整型变量,变量名为名为numbernumber number=1;/变量number的内容为1 number=2;/变量number的内容可以覆盖 char ch;ch=A;ch=a;标识符和关键字标识符和关键字 对象名技术上称为对象名技术上称为”标识符标识符”,C+C+语言的标识语

5、言的标识符规定由字母、数字以及下划线组成,且第一个字符规定由字母、数字以及下划线组成,且第一个字符必须是字母或下划线。符必须是字母或下划线。保留字保留字(关键字关键字):):它们是它们是C+C+语言规定的、赋予语言规定的、赋予它们以特定含义、有专门用途的标识符。比如它们以特定含义、有专门用途的标识符。比如:intint、ifif、forfor等。等。常量 在程序中不变的值。如:x=x+123;常量的值是不能改变的,一般从其字面形式即可判别是否为常量。常量包括两大类,即数值型常量(即常数)和字符型常量。如:整型常量整型常量:123 缺省为int型,十进制 0173 八进制的int型 0 x53

6、十六进制的int型 123L(或123l)为long int的十进制字符常量字符常量:A 字符常量用单引号扩起来的单个字符。在内存中以ASCII码存储。故可以:int i=a;char ch=97;ch=ch+1;字符常量字符常量-特殊打印字符:n换行符r回到本行开始处t水平制表符0空字符For exapme:ch1/1-2.cpp字符串常量字符串常量:“A”字符 串常量用双引号扩起来的一系列字符。字符串在内存中总是以0空字符结束。01100101“A”在内存中的表示0实型常量实型常量:4.6,-1.23 为double型十进制常量;.23 23.47e-4 科学表示法 47*10-4 67.

7、F(或67.f)为float型十进制常量C+的数据包括常量与变量,常量与变量都具有类型的数据包括常量与变量,常量与变量都具有类型。由以上这些基本数据类型构成更复杂的数据结构。由以上这些基本数据类型构成更复杂的数据结构_对象。比如对象。比如:Washer,IceBox。Class studentprivate:int number;string name;string sex;string speciality;grade double;例2.1:下面的程序用公式C=(5/9)(F-3 2)打印华氏温度与摄氏温度对照表:0-1720-640 460 15Example 2变量的声明与使用 在C+

8、语言中,所有变量都必须先说明后使用先说明后使用。说明用于声明变量的性质(大小和操作),它由一个类型名与若干所要说明的变量组成,例如:int Fahrenheit,celsius;Fahrenheit=10;变量的赋值 int a=10;cina;变量的输出 cout 大于 =大于等于 小于b);For example:ch2/2-8.cpp逻辑运算逻辑运算符符&逻辑与 (ab)&(cd)|逻辑或 (ab)|(cd)!逻辑非 !a 表达式:由运算符和运算对象(操作数)组成的有意义的运算式子,它的值和类型由参加运算的运算符和运算对象决定。运算符:具有运算功能的符号运算对象:常量、变量和函数等表达式

9、.2.4 2.4 表达式表达式 在表达式中常遇到不同类型数据之间进行运算,如10+a+1.5-8765.1234*b在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。2.4.1 表达式中各类数值型数据间的混合运算表达式中各类数值型数据间的混合运算l水平方向:自动l垂直方向:低 高 高 double float unsigned long long unsigned int unsigned short 低 int char,shortA+12 10.05 65 77 66.95高 double float unsigned long long unsigned

10、unsigned short 低 int char,short自动类型转换自动类型转换(赋值运算赋值运算)变量 表达式l计算赋值运算符右侧表达式的值l将赋值运算符右侧表达式的值赋给左侧的变量将赋值运算符右侧表达式的类型自动转换成赋值号左侧变量的类型自动类型转换自动类型转换(赋值运算赋值运算)double x;x=1;x=?short a=1000;char b=A;long c;c=a+b;c=?int ai;ai=2.56;ai=?short bi;bi=0 x12345678Lbi=?强制类型转换强制类型转换强制类型转换运算符(类型名)表达式(double)3(int)3.8(double

11、)(5/2)(double)5/23.032.02.5算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等 2.4.2 各种表达式各种表达式 算术表达式算术表达式例 数学式 -C/C+表达式s(s-a)(s-b)(s-c)(x+2)e2xs*(s-a)*(s-b)*(s-c)(x+2)*exp(2*x)aacbb242赋值赋值表达式表达式l赋值运算符 =x=3*4;优先级较低,结合性从右向左x=y=3;等价于x=(y=3);复合赋值运算符复合赋值运算符l赋值运算符简单赋值运算符=复合赋值运算符l复合算术赋值运算符 +=-=*=/=%=l复合位赋值运算符赋值表达式:变量 赋值

12、运算符 表达式x+=exp;等价于 x=x+exp;x*=y 3;x=x*(y-3);关系表达式关系运算符关系表达式关系运算符l比较两个操作数,比较的结果:真 假x y x y x=y x!=yl优先级 算术运算符 =!=赋值运算符l左结合a b=cd=a bch a+1 d=a+b c3=x b)=cd=(a b)ch (a+1)d=(a+b)c)(3=x)=a&ch=A&ch=3&x=5逻辑表达式逻辑运算符逻辑表达式逻辑运算符l逻辑运算结果:1(真)0(假)l逻辑运算对象:关系表达式或逻辑量x=3&x=3)&(x=a&ch 0)?x+2:x*x;if(x0)y=x+2;else y=x*x

13、;x+2 x0y=x2 x=0 逗号逗号表达式表达式表达式1,表达式2,,表达式n先计算表达式,然后计算表达式,,最后计算表达式n的值,并将表达式n的值作为逗号表达式的值.int a,b,c;(a=2),(b=3),(c=a+b);逗号运算符的优先级最低,左结合a=2,b=3,c=a+b2.5 2.5 语句语句_流程控制 任何程序都可以将模块通过3种基本的控制结构进行组合来实现。顺序结构循环结构分支结构l3种基本的控制结构顺序控制结构:自然顺序执行分支控制结构(选择结构):根据不同的条件来选择所要执行的模块循环控制结构:重复执行某个模块For example:ch2/2-9.cpp2.5 2.

14、5 语句语句_ if_ if语句和复合语句语句和复合语句分支结构一般分为二分支和多分支两种结构用条件语句(if 和 switch)实现选择2.5.1 二分支结构和基本的 if 语句二分支结构和基本的二分支结构和基本的 if 语句语句if(表达式)语句1else 语句2if(表达式)语句1语句1表达式语句2真假语句1表达式真假一条语句二分支结构示例二分支结构示例例2-10 输入2个数,如果它们的值不相等,则交换并输出它们的值;否则,输出“a=b”。交换a和b的值temp=a;a=b;b=temp;Example 2-10例2-11 输入3个整数,输出其中的最大值基本的基本的 if if 语句示例

15、语句示例2.52.5语句语句_循环语句循环语句使用格里高利公式求的近似值,要求精确到最后一项的绝对值小于105。2.5.1 while语句 程序解析 2-12.cpp2.5.2 for语句2.5.3 do语句11114357while(条件)循环体语句;真假while的下一条语句表达式循环体语句int i=0,sum=0;while(+i=10000)sum=sum+i;int i=1,sum=0;while(i=1;i-)sum=sum+i;for(i=1;i=10000;i+)sum+=i;循环变量循环变量2-12.cppwhile 语句和for语句都是在循环前先判断条件表达式1;whil

16、e(表达式2)for的循环体语句;表达式3;把for语句改写成while语句for(表达式1;表达式2;表达式3)循环体语句;while 和和 for 的比较的比较for(i=1;i=10;i+)sum=sum+i;i=1;/循环变量赋初值while(i=10)/循环条件 sum=sum+i;i+;/循环变量的改变循环体例2-13 从键盘输入一批学生的成绩,统计平均分。分析:求累加和确定循环条件l不知道输入数据的个数,所以无法事先确定循环次数l用1个特殊的数据作为正常输入数据的结束标志,比如选用一个负数作为结束标志。do-while 语句语句do 循环体语句;while(表达式)循环体语句表达

17、式真假下一条语句先循环后判断l while 是先判别条件,再决定是否循环;l do-while 是先至少循环一次,然后再根据循环的结果决定是否继续循环。while 和和 do-while 的比较的比较真假表达式循环体语句do-while的下一条语句真假while的下一条语句表达式循环体语句循环语句的选择循环语句的选择if(循环次数已知)使用for语句else /*循环次数未知*/if (循环条件在进入循环时明确)使用while语句else /*循环条件需要在循环体中明确*/使用do-while语句2.52.5语句语句_ break_ break语句语句 和和continuecontinue语句

18、语句例2-15:输入一个正整数m,判断它是否为素数。算法:除了1和m,不能被其它数整除。设 i 取值 2,m-1 l如果m不能被该区间上的任何一个数整除,即对每个i,m%i 都不为0,则m是素数l只要找到一个i,使m%i为0,则m肯定不是素数m%2%3%4%5%(m-1)不是素数|=0 =0是素数&!=0 !=0 m不可能被大于 m/2 的数整除 i 取值 2,m-1、2,m/2、2,mfor(i=2;i m/2)cout yesn“;else cout non”;break 语句语句while(exp)语句语句1 if(expb)break;语句2真假 exp 语句1假 e x pb语句2循

19、环体真for(i=2;i m/2)cout Yes;else cout No!n;当循环有多个出口时:表示循环条件 区分结束条件continue 语句语句while(exp)语句语句1 if(expb)continue;语句2真假 exp 语句1假 e x pb 语 句2循环体真跳过continue后面的语句,继续下一次循环break 和和 continueFor example:2-16.cpp无限循环:for(;)循环体;While(1)循环体;例例:求求1!+2!+.+100!int i,item=1;sum=0;for(i=1;i=100;i+)item=i!sum=sum+item;

20、嵌套循环嵌套循环for(i=1;i=100;i+)item=1;for(j=1;j=i;j+)item=item*j;sum=sum+item;2-17.cpp内层循环的初始化内层循环的初始化分析嵌套循环的执行过程分析嵌套循环的执行过程for(i=1;i=100;i+)item=1;for(j=1;j=i;j+)item=item*j;sum=sum+item;n 外层循环变量 i 的每个值内层循环变量 j 变化一个轮次;n 内外层循环变量不能相同分别用 i 和 ji=1j=1输出 1 1(第1次输出)j=1输出 2 1(第2次输出)i=2j=2输出 2 2(第3次输出)j=1输出 100 1(第4951次输出)j=2输出 100 2(第4952次输出)i=100j=100输出 100 100(第5050次输出)for(i=1;i=100;i+)for(j=1;j=i;j+)cout i j;Lab and ExerciseExercise:Next Lab:实验3.doc 实验4.doc

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第2章数据表达与程序流程控制课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|