




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.第三章VC+程序结构顺序、选择、循环.算法n算法解决问题的步骤和方法n算法的表示q自然语言例:输出两个整数的和。例:输出两个整数的和。 q输入两个整数a、b;q求a+b的和,结果赋给sum;q输出sum的值;q结束。q流程图q伪代码1.1.要养成先设计算法再编写程序的好习惯要养成先设计算法再编写程序的好习惯 输入整数输入整数a、b开始开始sum=a+b输出输出sum结束结束.程序的三种基本结构 顺序结构顺序结构a块b块AB分支选择结构分支选择结构a块b块成立不成立条件AB条件a 块成立不成立AB 循环结构循环结构.赋值表达式深入n“再谈”变量q占位符n拥有内存空间内存空间的标识符n变量的输入
2、,即将值存入存入对应内存n对变量的赋值,用新值覆覆盖性盖性地改写改写原来存储的值n变量的引用即将对应内存中的值代换变量int a;acina;a=10;2int b=a;10b10?如何理解语句如何理解语句a=a+1;?如何交换变量如何交换变量a、b的值的值.赋值表达式深入(P18)n赋值表达式:所赋之值为表达式的值。可作为操作数参与其他运算。qb=c=d=a+5qa=(b=4)+(c=6)n复合赋值表达式q+=、-=、*=、/=qa+=3 等价于 a=a+3n赋值表达式加“;”即可称为赋值语句.赋值表达式深入n赋值时的类型转换q整型实型 :去掉小数赋值,注意溢出溢出q实型整型 :加 .0q字
3、符型=整型 :将低位字节赋值,舍弃高位字节q整型unsigned char :按字节赋值,高八位补0q整型signed char :按字节赋值,扩展符号位q整型unsigned int 或 long int : 注意溢出溢出n强制的类型转换(P17)溢出:超出可表示范围,结果出错,系统不报错溢出:超出可表示范围,结果出错,系统不报错.赋值表达式深入n赋值时的类型转换int a=258,b;unsigned char c;b=c=a;b=?int a=254,b;char c;b=c=a;b=?.特殊的算术运算n自增运算()int p1;p+; /等价于p=p+1;q只有变量有自增运算q自增运算
4、分前置自增(+p)和后置自增(p+)n前置自增:先自增、再取值n后置自增:先取值、再自增int p=1,a;a=+p; /和a=p+;结果比较n自减().再谈输入输出n输入/输出数值数据q一条输入语句可输入多个数据,用回车回车或若干个空空格格分隔各个数据q输入的数据必须和对应的变量保持类型一致类型一致q一条输出语句可输出多个数据,但需要在各输出项之间加入分隔符号分隔符号,以免引起歧义.再谈输入输出n输入/输出字符数据q对字符型变量只可输入单字符单字符常量q一条语句输入多个字符型数据时,各字符之间可以可以没有分隔符没有分隔符,也可以用空格或回车分隔q无法无法使用简单的cin实现空格字符空格字符和
5、回车字符回车字符的输入cin.get()q输出多个字符型数据时,需要在各输出项之间加入分隔符号分隔符号,以免引起歧义.再谈输入输出q格式化输出nset precision(n)q指定其后的输出项保留n位小数输出q对其后所有输出项均有作用nsetw(n)q指定其后的输出项占用n个字符宽度输出q只对紧随其后的输出项作用一次需要包涵需要包涵iomanip.h头文件头文件 书例书例3-1 .选择语句.选择结构之条件语句条件语句利用关键字if选择执行两个分支中的一个分支,因此通常也称为“if语句”。分支选择结构分支选择结构a块b块成立不成立条件AB当(如果)条件成立时执行当(如果)条件成立时执行a块块i
6、f (条件成立条件成立)a块语句;块语句;如何表达?如何表达?.关系运算符与关系表达式n关系运算是对两个操作数进行的比较运算: = = !=n关系表达式的运算结果是一个整数q当关系成立关系成立时,结果为1q当关系不成立关系不成立时,结果为0。n关系表达式多用于条件的判断.选择结构之条件语句n引例:已知,当x1时,y=x,其中x、y均为整数,请编程实现根据x的值输出y的值。n分析:q主要问题当(如果)x1时,y=xq转换代码if (x=1)y=x;q补充代码块内只有一条语句时,可省块内只有一条语句时,可省.n例:当x1时,y=x,其中x、y均为整数。#includevoid main()int
7、x,y;coutx;if(x=1)y=x;couty=yendl;单选条件语句条件表达式条件表达式”x=1”要用圆要用圆括号括起来括号括起来if所在行末尾没有分号!所在行末尾没有分号!为什么?.二中选一条件语句#includevoid main()int x,y;coutx;if(x1)y=2*x-1;couty=y1可简化为:可简化为:if(x1非非此此即即彼彼.嵌套条件语句#includevoid main()int x,y;coutx;if(x1 & x=10)y=3*x+11;couty=yn;分段函数分段函数y=x 当当x1y=2x-1 当当1x1 & x10是何意?
8、是何意?为何不写成为何不写成1x0 & y0 成立;qx & y0 成立; qx & y 成立。qx0 | y0 成立;qx | y 成立。q!(x0) 不成立;q!(x!=1) 成立;q!x 不成立。n如果x=0,y=-1,则q x0 & y0 不成立;qx & y0 不成立; qx & y 不成立。qx0 | y0 不成立;qx | y 成立。q!(x0) 成立;q!(x!=1) 不成立;q!x 成立。.课内练习:?数学中数学中xa或或xb, 在在c+中应如何表示中应如何表示?数学中数学中axb , 在在c+中应如何表示中应如何表示.回到嵌套
9、条件语句#includevoid main()int x,y;coutx;if(x1 & x=10)y=3*x+11;couty=yn;分段函数分段函数y=x 当当x1y=2x-1 当当1x10y=3x+11 当当x10可简化为:可简化为:if(x=1)y=x;else if(x1 & x1代表条件代表条件 x=10.条件运算符”?:”n条件运算符“? :”为三目运算符,要求有三个操作对象,使用格式为:q ? : n 计算条件表达式值的具体过程如下:q先计算,q若其值不等于0,则计算,并将计算的值作为该条件表达式的值;q否则求解的值,并将该值作为条件表达式的值。条件条件条件成立
10、条件成立条件不成立条件不成立.例:求两个整数中的较大数#includevoid main()int a,b,max;couta;coutb;if(a=b)max=b;elsemax=a;coutmax=maxn;可简化为:可简化为:max=(a=b) ? b : a;.例:输入两个整数,按从小到大的顺序输出这两个数。#includevoid main()int a,b;couta;coutb;if(a=b)couta,bn;elsecoutb,an;一行可以写多条语句。一行可以写多条语句。另一种方法:如果另一种方法:如果a比比b大,则将大,则将a、b的的值交换后再输出。值交换后再输出。.交换两
11、个变量的值#includevoid main()int a,b,t;couta;coutb;if(ab)t=a;a=b;b=t;couta,bendl;可不可以写成:a=b;b=a;if分支语句如果不止一条,则分支语句如果不止一条,则须把这些语句用花括号括起来。须把这些语句用花括号括起来。用花括号括起来的语句称之为用花括号括起来的语句称之为复合语句。复合语句。.if(条件)语句小结n单选条件:if (if () ) n 嵌套条件(多条件):if (if () 1) 1 else if( else if() 2) 2 else if else if else else nn 二选一条件:if (
12、if () ) 1 else else 2 .条件语句小结n上述三种形式中的 可以是一般的表达式,也可为一个变量也可为一个变量。表达式的值用来表示“条件”,必须放在括号中。nif和else后的部分如果有多个语句,则必须用大括号 括起来,构成复合语句;对于单个语句,则可以不用大括号。.条件语句小结nif和else后的还可以是if语句。如: if ( ) if ( ) 语句1 else ( ) 语句2 else if ( ) 语句3 else ( ) 语句4nelse不能单独使用,必须与最近最近的if配对。(语句行缩进).switch语句(开关语句)n与嵌套语句类似,用于多条件选择switch(s
13、witch() case case : 1: 语句序列语句序列1 1 breakbreak; case case : n: 语句序列语句序列n n breakbreak; defaultdefault: n+1 控制表达式控制表达式(整型、字符型整型、字符型)情况情况常数常数(整型、字符型)(整型、字符型).switch语句(开关语句)n switch语句的执行过程为q先计算switch控制表达式的值q然后,将该值与每个case分支中的常量表达式的值进行比较n如果相等,则执行该分支后面的语句序列,直到直到遇到一个breakbreak为止,结束switch结构;n如果没有一个相等,则执行defa
14、ultdefault分支中的语句序列;n如果既没有匹配的case,又没有default分支,则不执行该switch结构中的任何语句。.课堂练习,找出语法错误 #define m 4/宏定义const int n=3;float x; int a,b;a=3; b=4;switch(2*x) /A case 3.5: /B case a+b: /C case 1,2,3: /D case 3*m: /E case m+n: /F .switch语句(开关语句)n“breakbreak”语句称为跳转语句跳转语句n用于跳出switch语句,终止switch语句的执行n在一个case分支中,如果没有没
15、有breakbreak语句语句,则switch在执行完一个case分支之后,会继续执行继续执行下一个case分支语句n在一个case分支的语句序列中,break语句通常都为最后一条语句。n“defaultdefault”为缺省分支缺省分支n相当于嵌套条件语句中的elsen它的作用是匹配“除除上述case之外之外的一切情况”ndefault分支语句可以放在switch语句中的任何位置,但通常为最后一个分支,因为在它之后在它之后的case分支不起任何作用不起任何作用.例:要求按照考试成绩的等级打印出分数段 switch(grade) case a: cout“85-100n”; case b: c
16、out“70-84n”; case c: cout“60-69n”; case d: cout“60n”; default: cout“errorn”; ?如果grade的值为c,输出结果是什么60-6960error多余输出?多余输出?每个每个case语句序列后缺少语句序列后缺少break语句!语句!.switch(grade) case a: cout“85-100n”;break; case b: cout“70-84n”; break; case c: cout“60-69n”; break; case d: cout“60n”; break; default: cout“errorn
17、”; 为了只输出对应标号对应的结果,可在语句后加上break语句! .多个case可以共用一组执行语句,例: case a: case b: case c: cout60n”; break;在switch结构中,case的多个执行语句不需要用花括号括起来.需要缺省break语句情况又例又例3-7,.使用switch语句的注意点n每个case常量表达式值必须互不相同常量表达式值必须互不相同,否则就会出现编译错误 。 nswitch后控制表达式必须是整数整数、字符或枚举类型的变量或常量n每一个case分支后的常量表达式必须是由字面常量字面常量、宏定义的常量宏定义的常量、constconst常量构成
18、的表达式,其值也必须是整数、字符或枚举类型的常量n每一个每一个casecase分支只能判别一个常量。分支只能判别一个常量。(例(例3-83-8)nswitch结构的执行部分为由多个case分支及可缺省的default分支组成的复合语句,switch语句下面的大括号不能省。 nswitch语句允许嵌套。.循环结构语句循环结构语句.循环结构 循环结构一般由两部分组成: 进入或退出循环的条件循环的条件:该条件决定是否继续下一轮循环。当该条件满足时,进入下一轮循环,否则退出循环。 循环体循环体:为每一轮循环所进行的操作,通常由一个语句序列构成。 条件条件a 块块成立成立不成立不成立AB 循环结构. w
19、hile()语句语句 nwhile( )语句属于当型循环结构: while(while() nwhile( )语句的执行流程为q先计算循环条件表达式的值n若不等于0,则执行循环体中的语句q循环体执行完毕后,再计算循环条件表达式的值,nq重复以上过程,直到条件循环表达式的值等于0时,退出循环。条件条件a 块块成立成立不成立不成立AB 循环结构.应用while()语句的注意点nwhile后的“条件表达式”一定要用一对圆括弧“( )”括起来。n如果循环体中的语句多于一条时,应该用大括号“”括起来。n在循环体中必须有必须有改变“循环条件表达式”值的语句。否则,如果不采用其它方法退出循环,将不能退出循环
20、,成为死循环。 nwhile循环可以嵌套。n留心边界值(循环次数)。.试编程计算1+2+3+4+100的值。void main() int i=1,sum=0; while(i=100) sum=sum+i; i+; coutsum ; 和变量,初值为和变量,初值为0!.dowhile()语句语句 ndowhile()语句的结构属于直到型循环结构,其一般格式为: do do while( while(); ; ndowhile()语句的执行流程为q当程序运行到do时,立即执行循环体q然后计算循环条件表达式n如果循环条件表达式的值不为0,则继续执行循环体q如此反复,直到循环条件表达式的值为0,结
21、束循环。 .应用dowhile()语句的注意点n在while()中要注意的地方同样也适用于dowhile()语句n对dowhile()还要特别注意一点,即while()while()后的后的分号不能少分号不能少 n在一般情况下,用while()语句和dowhile()语句处理同一个问题时,如果两者的循环体和条件表达式都相同,则他们的结果也一样。但是当while后面的条件表达式一开始就为一开始就为0 0时,两种循环的结果是不一样的。.试编程计算1+2+3+4+100的值。void main() int i=1,sum=0; do sum=sum+i; i+; while(i=100) ; cou
22、tsum ; 与while循环的区别: 先执行循环体语句,再判断条件表达式,因此do/while循环至少循环一次,而while循环有可能一次循环都不执行!.例:例:用迭代法求用迭代法求a0a0的平方根。其迭代公式为:的平方根。其迭代公式为:x x0 0=a/2=a/2,x xn+1n+1=(x=(xn n+a/x+a/xn n)/2)/2。要求前后两次求出的。要求前后两次求出的x x的差的绝对值小于的差的绝对值小于1010-7-7。#include #include void main() float x0,x1,a; cina; if(a0) couta1e-5) x0=x1; x1=(x0
23、+a/x0)/2; couta“的平方根为:”x1n;.for语句语句for(for(1; 2; ) 非非00求解表达式求解表达式1表达式表达式2循环体循环体求解表达式求解表达式3for()语句的后继语句()语句的后继语句for()语句的流程图控制表达式控制表达式赋初值表达式赋初值表达式修正表达式修正表达式定义循环变量定义循环变量或或对循环变量进对循环变量进行初始化行初始化改变表达式改变表达式2中中循环变量的值循环变量的值.试用for循环编程求1+2+3+100的值void main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; cout“SUM is
24、”sum;表达式1可以省略,但应写在for循环之前,如下:i=1;for(;i=100;i+) sum=sum+i;表达式3可以省略,但应写在for循环体内,如下:i=1;for(; i=100; ) sum=sum+i; i+;两个两个“;”永不可缺省!永不可缺省!.试编程输出100200之间的能被3整除的数#includevoid main()int i;for(i=100;i=200;i+)if(i%3=0) coutit;求解“在指定范围找某种特征值”的问题:1.范围可作为循环控制变量的计数范围。2.循环体中用“特征公式”对循环变量的每次取值进行特征筛选。?求解能被?求解能被11整除的三位数整除的三位数.循环的嵌套n使用循环编程输出39的方形。for(i=1;i=3;i+) 输出一行 *j=1;while(j=9) cout*; j+; .循环的嵌套n使用循环编程输出39的方形。for(i=1;i=3;i+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年内蒙古通辽市开鲁县麦新中学八年级上学期开学考试数学试题(含答案)
- 企业内训课程开发及实施指导书
- 2025九年级考试语文作文12篇
- 2025年教师招聘之《幼儿教师招聘》每日一练试卷及参考答案详解(轻巧夺冠)
- 书香伴我成长中考满分作文600字14篇
- 农业生产农机购置补贴协议书
- 2025年秋湘教版高中地理必修第一册教学计划及教学进度表(2025-2026学年第一学期)
- 聚针安全注射培训小结课件
- 博鳌论坛:聚焦新质生产力发展
- 新质生产力在医疗器械的创新
- 80年血火淬炼此刻亮剑正当时:纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵仪式对初中生的启示-2025-2026学年初中主题班会
- 2025-2026学年西师大版(2024)小学数学一年级上册(全册)教学设计(附目录P227)
- 2025年大型集团财务审计外包服务合同风险防控条款规范
- 2025年国家保安员资格考试复习题库(附答案)
- 辅警考试真题(含答案)
- 新式茶饮基础知识培训课件
- 2025新疆天泽和达水务科技有限公司部分岗位社会招聘28人笔试模拟试题及答案解析
- 巧堆肥劳动课件
- 技术方案评审表-技术选型决策
- 万用表专业培训资料共23张课件
- 启闭机设备安装与调试施工方案
评论
0/150
提交评论