c++流程控制及复杂数据类型.ppt

上传人(卖家):hwpkd79526 文档编号:6157869 上传时间:2023-06-04 格式:PPT 页数:23 大小:814.50KB
下载 相关 举报
c++流程控制及复杂数据类型.ppt_第1页
第1页 / 共23页
c++流程控制及复杂数据类型.ppt_第2页
第2页 / 共23页
c++流程控制及复杂数据类型.ppt_第3页
第3页 / 共23页
c++流程控制及复杂数据类型.ppt_第4页
第4页 / 共23页
c++流程控制及复杂数据类型.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、目录4.1 循环结构结构的嵌套4.2 循环结构与选择结构的嵌套4.3 其他控制语句4.4 自定义数据类型4.5 深度探索4.6小结1循环嵌套例4-1(教材例2-9)编写程序输出以下图案 *24.1 循环结构结构的嵌套例4-1(教材例2-9)(续)34.1 循环结构结构的嵌套#include using namespace std;int main()const int N=4;for(int i=1;i=N;i+)/输出前4行图案 for(int j=1;j=30;j+)cout ;/在图案左侧空30列 for(int j=1;j=8-2*i;j+)cout ;for(int j=1;j=2*

2、i-1;j+)cout *;cout endl;例4-1(教材例2-9)(续)44.1 循环结构结构的嵌套/输出后3行图案for(int i=1;i=N-1;i+)for(int j=1;j=30;j+)cout ;/在图案左侧空30列 for(int j=1;j=7-2*i;j+)cout *;cout endl;return 0;4.2 循环结构与选择结构的嵌套5#include using namespace std;int main()for(int n=100;n=200;n+)if(n%3!=0)cout n;return 0;举例例4-2(教材例2-10)读入一系列整数,统计出正

3、整数个数i和负整数个数j,读入0则结束。分析:需要读入一系列整数,但是整数个数不定,要在每次读入之后进行判断,因此使用while循环最为合适。循环控制条件应该是n!=0。由于要判断数的正负并分别进行统计,所以需要在循环内部嵌入选择结构。64.2 循环结构与选择结构的嵌套例4-2(教材例2-10)(续)74.2 循环结构与选择结构的嵌套#include using namespace std;int main()int i=0,j=0,n;cout Enter some integers please(enter 0 to quit):“n;while(n!=0)if(n 0)i+=1;if(n

4、 n;cout Count of positive integers:i endl;cout Count of negative integers:j endl;return 0;4.3 其他控制语句 break语句使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。continue 语句结束本次循环,接着判断是否执行下一次循环。goto 语句goto语句的作用是使程序的执行流程跳转到语句标号所指定的语句。84.4.1 typedef声明 为一个已有的数据类型另外命名 语法形式typedef 已有类型名 新类型名表;例如typedef double Area,Vo

5、lume;typedef int Natural;Natural i1,i2;Area a;Volume v;94.4 自定义数据类型4.4.2 枚举类型enum 只要将需要的变量值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:enum 枚举类型名 变量值列表;例如:enum WeekdaySUN,MON,TUE,WED,THU,FRI,SAT;104.4 自定义数据类型4.4.2 枚举类型enum(续)枚举类型应用说明:对枚举元素按常量处理,不能对它们赋值。例如,不能写:SUN=0;枚举元素具有默认值,它们依次为:0,1,2,.。也可以在声明时另行指定枚举元素的值,如:enum

6、 WeekdaySUN=7,MON=1,TUE,WED,THU,FRI,SAT;枚举值可以进行关系运算。整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。114.4 自定义数据类型例4-3(教材例2-11)设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序顺序输出这四种情况。分析:由于比赛结果只有四种可能,所以可以声明一个枚举类型,声明一个枚举类型的变量来存放比赛结果。124.4自定义数据类型 4.4.2 枚举类型enum例4-3(续)134.4 自定义数据类型 4.4.2 枚举类型enum#include

7、 using namespace std;enum GameResult WIN,LOSE,TIE,CANCEL;int main()GameResult result;enum GameResult omit=CANCEL;for(int count=WIN;count=CANCEL;count+)result=GameResult(count);if(result=omit)cout The game was cancelled endl;else cout The game was played;if(result=WIN)cout and we won!;if(result=LOSE)

8、cout and we lost.;cout endl;return 0;例4-3(教材例2-11)(续)144.4 自定义数据类型 4.4.2 枚举类型enum运行结果 The game was played and we won!The game was played and we lost.The game was played The game was cancelled4.5.1变量的实现机制 站在目标代码的角度上看问题 变量具有两个重要属性数据类型和变量名 它们都用文字表示,便于人们理解,但不便于CPU识别,因此它们不能出现在目标代码中;下面将讨论它们在目标代码中的表示方式。154

9、.5 深度探索变量名 源代码中,变量依靠变量名来标识;目标代码中,变量依靠地址来标识,每个变量的地址互不相同。164.5 深度探索 4.5.1 变量的实现机制int a,b;int main()a+;b+;return 0;incl 0 x80495f8incl 0 x80495fc地址数据类型 任何数据在内存中都是用二进制串的形式表示的;一串二进制数,只有确定了类型,才有真实的含义。例:10111111,10000000,00000000,00000000 解释为int型:-1,082,130,432 解释为unsigned型:3,212,836,864 解释为float型:-1.0174.

10、5 深度探索 4.5.1 变量的实现机制目标代码体现数据类型的方式 类型的特性蕴含于操作之中;对不同数据类型,源代码中形式上相同的操作,会被转化为目标代码中的不同操作。184.5 深度探索 4.5.1 变量的实现机制int a;short b;char c;int main()a+;b+;c+;return 0;incl 0 x80495f8incw 0 x80495fcincb 0 x80495fe不同的操作变量的声明和定义 变量的声明 将一个标识符声明为变量,告诉编译器这个标识符表示变量,同时还指出了它的数据类型;只有确定了一个变量的数据类型,变量参与的操作才具有完整的意义,编译器才能将该

11、变量参与的表达式翻译为合适的操作。变量的定义 不仅确定了一个标识符表示变量,以及该变量的类型,还确定了变量地址的分配位置。194.5 深度探索 4.5.1 变量的实现机制4.5.2 C+表达式的执行原理 什么是寄存器?CPU内部的存储单元 读写速度非常快 数量很少 IA-32有eax、ebx、ecx、edx、esp、ebp、esi、edi八个通用寄存器 大部分CPU指令都需要读写寄存器。复杂的表达式,分步执行,每条指令只能做一次基本运算,中间结果暂存在寄存器中。204.5 深度探索4.5.2 C+表达式的执行原理(续)214.5 深度探索int a,b,c,d;int e;int main()

12、a=4;b=2;c=1;d=10;e=(a+b)*(c-d);return 0;movl$0 x4,0 x80495d8movl$0 x2,0 x80495dcmovl$0 x1,0 x80495e0movl$0 xa,0 x80495e4把4存入地址0 x80495d8中0 x80495d8:a变量0 x80495dc:b变量0 x80495e0:c变量0 x80495e4:d变量0 x80495e8:e变量4.5.2 C+表达式的执行原理(续)224.5 深度探索int a,b,c,d;int e;int main()a=4;b=2;c=1;d=10;e=(a+b)*(c-d);retur

13、n 0;mov 0 x80495dc,%eax mov 0 x80495d8,%ecx add%eax,%ecx mov 0 x80495e4,%edx mov 0 x80495e0,%eax sub%edx,%eax imul%ecx,%eax mov%eax,0 x80495e8把0 x80495dc地址的值到eax寄存器中0 x80495d8:a变量0 x80495dc:b变量0 x80495e0:c变量0 x80495e4:d变量0 x80495e8:e变量ecxecx+eaxeaxeax-eaxeax(eax*eax)的低32位4.6小结 主要内容 循环结构结构的嵌套、循环结构与选择结构的嵌、其他控制语句、自定义数据类型 达到的目标 掌握C+语言的基本概念和基本语句,能够编写简单的程序段。23

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

当前位置:首页 > 办公、行业 > 项目策划与方案类
版权提示 | 免责声明

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


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

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


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