相关流程和复杂数据类型_第1页
相关流程和复杂数据类型_第2页
相关流程和复杂数据类型_第3页
相关流程和复杂数据类型_第4页
相关流程和复杂数据类型_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

相关流程和复杂数据类型2目录4.1循环结构结构的嵌套4.2循环结构与选择结构的嵌套4.3其他控制语句4.4自定义数据类型4.5深度探索4.6小结3循环嵌套例4-1(教材例2-9)编写程序输出以下图案*************************4.1循环结构结构的嵌套4例4-1(教材例2-9)

(续)4.1循环结构结构的嵌套#include<iostream>usingnamespacestd;intmain(){ constintN=4; for(inti=1;i<=N;i++){//输出前4行图案

for(intj=1;j<=30;j++) cout<<''; //在图案左侧空30列

for(intj=1;j<=8-2*i;j++) cout<<''; for(intj=1;j<=2*i-1;j++) cout<<'*'; cout<<endl; }5例4-1(教材例2-9)(续)4.1循环结构结构的嵌套//输出后3行图案

for(inti=1;i<=N-1;i++){ for(intj=1;j<=30;j++) cout<<''; //在图案左侧空30列

for(intj=1;j<=7-2*i;j++)cout<<'*';cout<<endl; } return0;}64.2循环结构与选择结构的嵌套#include<iostream>usingnamespacestd;intmain(){ for(intn=100;n<=200;n++){if(n%3!=0) cout<<n; }return0;}举例7例4-2(教材例2-10)读入一系列整数,统计出正整数个数i和负整数个数j,读入0则结束。分析:需要读入一系列整数,但是整数个数不定,要在每次读入之后进行判断,因此使用while循环最为合适。循环控制条件应该是n!=0。由于要判断数的正负并分别进行统计,所以需要在循环内部嵌入选择结构。4.2循环结构与选择结构的嵌套8例4-2(教材例2-10)(续)4.2循环结构与选择结构的嵌套#include<iostream>usingnamespacestd;intmain(){ inti=0,j=0,n; cout<<"Entersomeintegersplease(enter0toquit):“<<endl; cin>>n; while(n!=0){ if(n>0)i+=1; if(n<0)j+=1; cin>>n; } cout<<"Countofpositiveintegers:"<<i<<endl; cout<<"Countofnegativeintegers:"<<j<<endl; return0;}94.3其他控制语句break语句使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。continue语句结束本次循环,接着判断是否执行下一次循环。goto语句goto语句的作用是使程序的执行流程跳转到语句标号所指定的语句。104.4.1typedef声明为一个已有的数据类型另外命名语法形式typedef已有类型名新类型名表;例如typedefdoubleArea,Volume;typedefintNatural;Naturali1,i2;Areaa;Volumev;4.4自定义数据类型114.4.2枚举类型——enum只要将需要的变量值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:enum枚举类型名{变量值列表};例如:enumWeekday{SUN,MON,TUE,WED,THU,FRI,SAT};4.4自定义数据类型124.4.2枚举类型——enum(续)枚举类型应用说明:对枚举元素按常量处理,不能对它们赋值。例如,不能写:SUN=0;枚举元素具有默认值,它们依次为:0,1,2,......。也可以在声明时另行指定枚举元素的值,如:enumWeekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAT};枚举值可以进行关系运算。整数值不能直接赋给枚举变量,如需

要将整数赋值给枚举变量,应进行强

制类型转换。4.4自定义数据类型13例4-3(教材例2-11)设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序顺序输出这四种情况。分析:由于比赛结果只有四种可能,所以可以声明一个枚举类型,声明一个枚举类型的变量来存放比赛结果。4.4自定义数据类型——4.4.2枚举类型——enum14例4-3

(续)4.4自定义数据类型——4.4.2枚举类型——enum#include<iostream>usingnamespacestd;enumGameResult{WIN,LOSE,TIE,CANCEL};intmain(){ GameResultresult; enumGameResultomit=CANCEL; for(intcount=WIN;count<=CANCEL;count++){ result=GameResult(count); if(result==omit) cout<<"Thegamewascancelled"<<endl; else{ cout<<"Thegamewasplayed"; if(result==WIN) cout<<"andwewon!"; if(result==LOSE) cout<<"andwelost."; cout<<endl; } } return0;}15例4-3(教材例2-11)(续)4.4自定义数据类型——4.4.2枚举类型——enum运行结果

Thegamewasplayedandwewon!Thegamewasplayedandwelost.ThegamewasplayedThegamewascancelled16变量的实现机制站在目标代码的角度上看问题变量具有两个重要属性——数据类型和变量名它们都用文字表示,便于人们理解,但不便于CPU识别,因此它们不能出现在目标代码中;下面将讨论它们在目标代码中的表示方式。4.5深度探索17变量名源代码中,变量依靠变量名来标识;目标代码中,变量依靠地址来标识,每个变量的地址互不相同。4.5深度探索——4.5.1变量的实现机制inta,b;intmain(){a++;b++;return0;}incl0x80495f8incl0x80495fc地址18数据类型任何数据在内存中都是用二进制串的形式表示的;一串二进制数,只有确定了类型,才有真实的含义。例:10111111,10000000,00000000,00000000解释为int型:-1,082,130,432解释为unsigned型:3,212,836,864解释为float型:-1.04.5深度探索——4.5.1变量的实现机制19目标代码体现数据类型的方式类型的特性蕴含于操作之中;对不同数据类型,源代码中形式上相同的操作,会被转化为目标代码中的不同操作。4.5深度探索——4.5.1变量的实现机制inta;shortb;charc;

intmain(){a++;b++;c++;return0;}incl0x80495f8incw0x80495fcincb0x80495fe不同的操作20变量的声明和定义变量的声明将一个标识符声明为变量,告诉编译器这个标识符表示变量,同时还指出了它的数据类型;只有确定了一个变量的数据类型,变量参与的操作才具有完整的意义,编译器才能将该变量参与的表达式翻译为合适的操作。变量的定义不仅确定了一个标识符表示变量,以及该变量的类型,还确定了变量地址的分配位置。4.5深度探索——4.5.1变量的实现机制214.5.2C++表达式的执行原理什么是寄存器?CPU内部的存储单元读写速度非常快数量很少IA-32有eax、ebx、ecx、edx、esp、ebp、esi、edi八个通用寄存器大部分CPU指令都需要读写寄存器。复杂的表达式,分步执行,每条指令只能做一次基本运算,中间结果暂存在寄存器中。4.5深度探索224.5.2C++表达式的执行原理(续)4.5深度探索inta,b,c,d;inte;intmain(){ a=4; b=2; c=1; d=10; e=(a+b)*(c-d); return0;}mov0x80495dc,%eaxmov0x80495d8,%ecxadd%eax,%ecxmov0x80495e4,%edxmov

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论