数据表达与程序流程控制.ppt

上传人:max****ui 文档编号:14783730 上传时间:2020-07-30 格式:PPT 页数:79 大小:539KB
收藏 版权申诉 举报 下载
数据表达与程序流程控制.ppt_第1页
第1页 / 共79页
数据表达与程序流程控制.ppt_第2页
第2页 / 共79页
数据表达与程序流程控制.ppt_第3页
第3页 / 共79页
资源描述:

《数据表达与程序流程控制.ppt》由会员分享,可在线阅读,更多相关《数据表达与程序流程控制.ppt(79页珍藏版)》请在装配图网上搜索。

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

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

3、数不同,内部预定义或简单对象,通常用来表示复杂对象的属性。,C+的基本数据类型,基本类型整型短整型(short int)整型(int) 长整型(long int) 字符型(char) 浮点型单精度型(float)双精度型(double)长双精度型(long double),基本类型 布尔型(bool) 构造类型枚举类型(enum) 数组类型 结构体类型(struct) 共用体类型(union) 类类型(class) 指针类型 引用类型 空类型(void),数据类型,C+并没有统一规定各类数据的精度、数值范围和在内存中所占的字节数,各C+编译系统根据自己的情况作出安排。 For examle:c

4、h1/1-1.cpp,2.2 简单对象的声明与使用,任何对象,先声明,后读写,在高级语言中,通常不直接用存储器地址来标识存储空间,而用变量来表示,如: int number; /声明一个整型变量,变量名为number number = 1; /变量number的内容为1 number = 2; /变量number的内容可以覆盖 char ch; ch = A; ch = a;,标识符和关键字,对象名技术上称为”标识符”,C+语言的标识符规定由字母、数字以及下划线组成,且第一个字符必须是字母或下划线。 保留字(关键字): 它们是C+语言规定的、赋予它们以特定含义、有专门用途的标识符。比如: in

5、t、if、for等。,常量,在程序中不变的值。如: x = x + 123; 常量的值是不能改变的,一般从其字面形式即可判别是否为常量。常量包括两大类,即数值型常量(即常数)和字符型常量。如: 整型常量: 123 缺省为int型,十进制 0173 八进制的int型 0 x53 十六进制的int型 123L(或123l) 为long int的十进制,字符常量: A 字符常量用单引号扩起来的单个字符。在内存中以ASCII码存储。故可以: int i = a; char ch = 97; ch = ch + 1;,字符常量-特殊打印字符: n换行符 r回到本行开始处 t水平制表符 0空字符 For

6、exapme: ch1/1-2.cpp,字符串常量: “A” 字符 串常量用双引号扩起来的一系列字符。字符串在内存中总是以0空字符结束。,01100101,“A”在内存中的表示,0,实型常量: 4.6,-1.23 为double型十进制常量; .23 23. 47e-4 科学表示法 47*10-4 67.F(或67.f) 为float型十进制常量,C+的数据包括常量与变量,常量与变量都具有类型。由以上这些基本数据类型构成更复杂的数据结构_对象。比如: Washer , IceBox。,Class student private: int number; string name; string

7、sex; string speciality; grade double; ;,例2.1:下面的程序用公式 C = (5/9) (F-3 2 ) 打印华氏温度与摄氏温度对照表: 0 -17 20 -6 40 4 60 15 Example 2,变量的声明与使用 在C+语言中,所有变量都必须先说明后使用。说明用于声明变量的性质(大小和操作),它由一个类型名与若干所要说明的变量组成,例如: int Fahrenheit,celsius; Fahrenheit = 10; 变量的赋值 int a=10; cina; 变量的输出 cout a;,2.3 运算符,算术运算符 + 单目正, +a - 单目

8、负, -a + 二目加, a+b - 二目减, a-b * 二目乘, a*b / 对于两个整数,取整,如: 1/3=0 对于浮点数,就是普通除法 % 表达式x % y的结果是x除以y的余数,当y能整除x时,x % y的结果为0。,+ 增1运算 - 减1运算 例:int n=3,k; k = +n; /前缀增1,先加1后使用,k=4,n=4 k = n+;/后缀增1,先使用后加1 ,k=3,n=4 n=3; k = -n; /前缀减1,先减1后使用,k=2,n=2 k = n-;/后缀减1,先使用后减1 ,k=3,n=2,算术运算符的优先级和结合性,单目 + - + - 双目 * / % 双目

9、+ -,右结合(从右向左),-5 + 3%2 = (-5) + (3%2) = -4 3 * 5 % 3 = (3*5) % 3 = 0 -i+,-(i+),左结合,关系运算符 比较两个操作数,比较的结果:真(true) 假(false) 大于 = 大于等于 小于 = 小于等于 =恒等于 !=不等于,在C+中真与假的处理: 1)bool类型 bool a; a=false;/在内存中,假表现为0 a=true;/在内存中,真表现为1,int a=1,b=2,c; c=(ab); For example: ch2/2-8.cpp,逻辑运算符 x = 1;,x = ?,short a = 1000

10、; char b = A; long c; c = a + b;,c = ?,int ai; ai = 2.56;,ai = ?,short bi; bi = 0 x12345678L,bi = ?,强制类型转换,强制类型转换运算符 (类型名) 表达式 (double)3 (int)3.8 (double)(5/2) (double)5/2,3.0 3 2.0 2.5,算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等,2.4.2 各种表达式,算术表达式,例 数学式 - C/C+表达式 s(s-a)(s-b)(s-c) (x+2)e2x,s*(s-a)*(s-b)*(s-

11、c),(x+2)*exp(2*x),赋值表达式,赋值运算符 = x = 3*4; 优先级较低,结合性从右向左 x = y = 3; 等价于,x = (y = 3);,复合赋值运算符,赋值运算符 简单赋值运算符 = 复合赋值运算符 复合算术赋值运算符 += -= *= /= %= 复合位赋值运算符 赋值表达式: 变量 赋值运算符 表达式 x += exp ;等价于 x = x + exp; x *= y 3;,x = x * (y-3) ;,关系表达式关系运算符,比较两个操作数,比较的结果:真 假 x y x = y x != y 优先级 算术运算符 = = != 赋值运算符 左结合,a b =

12、 c d = a b ch a + 1 d = a + b c 3 = x = 5 b - 1 = a != c,(a b)= c d = (a b) ch (a + 1) d = (a + b) c) (3 = x) = 5 (b - 1) = a) != c,关系表达式,用关系运算符将2个表达式连接起来的式子 关系运算的结果 真 true 1(或非零值) 假 false 0 For example:ch2/2-8.cpp,逻辑表达式逻辑运算符,逻辑与 ,if ( x0 ) y=x+2; else y=x*x;, 逗号表达式,表达式1, 表达式2, ,表达式n 先计算表达式,然后计算表达式,

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

14、switch)实现选择 2.5.1 二分支结构和基本的 if 语句,二分支结构和基本的 if 语句,if (表达式) 语句1 else 语句2,if (表达式) 语句1,一条语句,二分支结构示例,例2-10 输入2个数,如果它们的值不相等,则交换并输出它们的值;否则,输出“a=b”。 交换a和b的值 temp=a; a=b; b=temp;,Example 2-10,例2-11 输入3个整数,输出其中的最大值,基本的 if 语句示例,2.5语句_循环语句,使用格里高利公式求的近似值,要求精确到最后一项的绝对值小于105。 2.5.1 while语句 程序解析 2-12.cpp 2.5.2 fo

15、r语句 2.5.3 do语句,while (条件) 循环体语句;,int i=0,sum=0; while( +i=10000 ) sum = sum+i;,int i=1,sum=0; while( i=10000 ) sum = sum+i; i = i+1; ,复合语句,循环条件,循环体,for(表达式1; 表达式2; 表达式3) 循环体语句;,int i,sum=0; for( i = 10000; i = 1 ;i-) sum = sum+i; for(i=1;i=10000;i+) sum+=i;,循环变量,2-12.cpp,while 语句和for语句 都是在循环前先判断条件,表

16、达式1; while (表达式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 从键盘输入一批学生的成绩,统计平均分。 分析: 求累加和 确定循环条件 不知道输入数据的个数,所以无法事先确定循环次数 用1个特殊的数据作为正常输入数据的结束标志,比如选用一

17、个负数作为结束标志。,do - while 语句,do 循环体语句; while (表达式),循环体语句,表达式,真,假,下一条语句,先循环,后判断,程序解析统计一个整数的位数, 如:3452 整数位数为4. For example:2-14.cpp,while 是先判别条件,再决定是否循环; do-while 是先至少循环一次,然后再根据循环的结果决定是否继续循环。,while 和 do-while 的比较,循环语句的选择,if(循环次数已知) 使用for语句 else /* 循环次数未知 */ if (循环条件在进入循环时明确) 使用while语句 else /* 循环条件需要在循环体中明

18、确 */ 使用do-while语句,2.5语句_ break语句 和continue语句,例2-15:输入一个正整数m,判断它是否为素数。,算法:除了1和m,不能被其它数整除。 设 i 取值 2, m-1 如果m不能被该区间上的任何一个数整除,即对每个i,m%i 都不为0,则m是素数 只要找到一个i,使m%i为0,则m肯定不是素数 m %2 %3 %4 %5 %(m-1) 不是素数 | =0 =0 是素数 i m/2) cout yesn“; else cout non”;,break 语句,while(exp) 语句1 if (expb) break; 语句2 ,for (i = 2; i

19、m/2 ) cout Yes; else cout No!n;,当循环有多个出口时: 表示循环条件 区分结束条件,continue 语句,while(exp) 语句1 if (expb) continue; 语句2 ,跳过continue后面的语句,继续下一次循环,break 和 continue,For 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 +

20、item; ,嵌套循环,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; ,外层循环变量 i 的每个值 内层循环变量 j 变化一个轮次; 内外层循环变量不能相同 分别用 i 和 j,for (i = 1; i = 100; i+) for (j = 1; j = i; j+) cout i j ;,Lab and Exercise,Exercise: Next Lab: 实验3.doc 实验4.doc,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!