C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构

上传人:E**** 文档编号:89390783 上传时间:2019-05-24 格式:PPT 页数:66 大小:1.76MB
返回 下载 相关 举报
C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构_第1页
第1页 / 共66页
C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构_第2页
第2页 / 共66页
C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构_第3页
第3页 / 共66页
C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构_第4页
第4页 / 共66页
C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构》由会员分享,可在线阅读,更多相关《C++程序设计(第二版)-电子教案-杨长兴 第2章 程序控制结构(66页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计(第二版),主编 杨长兴 刘卫国 中国水利水电出版社,2,第2章 程序控制结构 2.1 顺序结构 2.2 选择结构 2.3 循环结构 2.4 控制转向语句 2.5 程序实例,3,按照语句出现的先后顺序依次执行。,2.1 顺序结构,4,2.1.1 定义语句,说明语句 在C+程序中,一个标识符(变量名、常量名、函数名、对象名等)在使用之前必须先定义,通知编译器为其分配存储空间,或告诉编译器它的存在及其特征。 例如: int x=1,y=2; const double PI=3.14159; float score303;,5,2.1.2 表达式语句,形式: ; 可以进行的操作通常包括赋

2、值操作,复合赋值操作,增量、减量操作,函数调用操作和输入输出操作。 例如:,n+; -m; abs(x); cinxy; coutx+y;,s=x+y; m=n=t; a=10,b=20; z*=w;,6,2.1.3 复合语句,形式: 作用:当程序中某个位置在语法上只允许一条语句,而在语义上要执行多条语句才能完成某个操作时,需要使用复合语句。,例如: if(x=0) couta; coutb; ,7,2.1.4 空语句,形式: ; 作用: 当程序中某个位置在语法上需要一条语句,而在语义上又不 要求执行任何动作时,可放上一条空语句。 一般适用于在循环语句中做空循环体 例如:,for (m = 0

3、; m1000; m+) ;,8,2.1.5 基本输入输出,在C+中,所有输入输出是通过输入输出流来实现的。 在C+中,将数据从一个对象到另一个对象的流动抽象为“流”。在iostream库中包含一个标准输入流对象cin和一个标准输出流对象cout,分别用来实现从键盘读取数据,以及将数据在屏幕上输出。 要使用cin和cout,需要在C+程序开头加上如下包含命令: #include / 新标准中的头文件名 using namespace std; / 引入std名字空间中的标识符,9,1. 标准输入流cin,cin负责从键盘读取数据,使用提取运算符“”就可以将键盘键入的数据读入到变量中。 语法格式

4、: cin变量1变量2变量n; 变量可以是任意数据类型,输入时各个数据之间用空格键、Tab键或Enter键分隔。 例如: int x,y; cinxy; 键盘上输入:5 8,5,键盘,8,键盘,10,2. 标准输出流cout,负责将数据输出到屏幕上,使用插入运算符“”就可以将数据显示在屏幕上当前光标所在位置。 语法格式: cout表达式1表达式2表达式n; 表达式可以是任意类型的,数据输出的格式由系统自动决定。,11,12,13,【例2.1】 cout应用示例,#include using namespace std; int main() int x=12,y=83; double pai_

5、1=3.14159265; float pai_2=3.141f; char ch1=a,ch2=b; bool ok=true; cout“x=“xendl; cout“y=“yendl; cout“pai_1=“pai_1“,pai_2=“pai_2endl; cout“ch1=“ch1“,ch2=“ch2endl; cout“ok=“okendl; cout“!ok=“!okendl; return 0; ,x=12 y=83 pai_1=3.14159,pai_2=3.141 ch1=a,ch2=b ok=1 !ok=0,14,【例2.2】 使用格式控制符输出数据,#include #

6、include using namespace std; int main() int a=35; double b=21.3456789; cout“1234567890123“endl; coutdeca hexa octaendl; coutbendl; coutsetprecision(4)bendl; coutsetw(10)bendl; coutsetw(10)setfill(*)bendl; coutsetiosflags(ios:scientific)bendl; coutsetprecision(3)bendl; coutsetprecision(2)bendl; retur

7、n 0; ,1234567890123 35 23 43 21.3457 21.35 21.35 *21.35 2.1346e+001 2.135e+001 2.13e+001,15,2.2 选择结构,按照给定条件有选择地执行程序中的语句 C+中: if语句:实现n分支,要求n个表达式。 switch语句:实现多分支,只用1个表达式。,16,2.2.1 if语句,1if语句(单分支) 语法格式: if(表达式) 语句 说明: (1)表达式是任意的数值、字符、关系、逻辑表达式,它表示条件,以true(非0)表示真,false(0)表示假。表达式必须用圆括号括起来。 (2)内嵌语句,可以是单条语句

8、,或复合语句。,执行顺序,17,7,3,7,7,3,【例2.3】输入两个整数a和b,按从小到大的顺序输出这两个数。,分析 若ab,则将a、b交换,否则不交换。两数交换可采用借助于第三个变量间接交换的方法,if(ab) t=a;a=b;b=t;,18,#include using namespace std; int main() int a,b,t; coutab; if(ab) t=a;a=b;b=t; coutabendl; return 0; ,a=a+b;b=a-b;a=a-b;,请输入两个整数a,b: 85 40 4085,a=ab;b=ab;a=ab;,19,2if- else语句

9、(双分支),if(表达式) 语句1 else 语句2,20,【例2.4】输入一个年份,判断是否为闰年。,分析 闰年的年份可以被4整除而不能被100整除,或者能被400整除。,#include using namespace std; int main() int year; coutyear; if(year%4=0 ,21,3if- else if 语句(多分支),if(表达式1) 语句1 else if(表达式2) 语句2 else if (表达式n) 语句n else 语句n+1,22,【例2.5】根据x的值,计算分段函数y的值。y的计算公式为:,23,#include #include

10、 using namespace std; int main() double x,y; coutx; if(x0) y=fabs(x); else if(x15) y=exp(x)*cos(x); else if(x30) y=pow(x,5); else y=(7+9*x)*log(x); cout“y=“yendl; return 0; ,请输入x:-5 y=5 请输入x:10 y=-18481.8 请输入x:27 y=1.43489e+007 请输入x:38 y=1269.52,24,4if语句的嵌套形式,if或else后面的内嵌语句本身又是一个if语句 例如:,if (表达式1) i

11、f (表达式2) 语句1 else 语句2 else if (表达式3) 语句3 else 语句4,25,(1) 为了增强程序的可读性,建议采用锯齿型的书写形式。 (2) if语句嵌套时,else子句总是与在它前面、距它最近、且尚未匹配的if配对。 (3)为明确匹配关系,避免匹配错误,建议将内嵌的if语句一律用“ ”括起来。,if(x0) if(y0) cout“x与y均大于0“; else cout“x大于0,y小于等于0“;,注意:,如何使之与第一个if配对?,26,【例2.6】从键盘上输入两个字符,比较其大小,输出大于、等于和小于的判断结果。,#include using namespa

12、ce std; int main() char ch1,ch2; coutch1ch2; if(ch1!=ch2) if(ch1ch2) coutch1“大于“ch2endl; else coutch1“小于“ch2endl; else coutch1“等于“ch2endl; return 0; ,请输入两个字符:h d h大于d 请输入两个字符:X Y X小于Y 请输入两个字符:& & &等于&,27,2.2.2 switch语句,switch (表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式n: 语句n default: 语句序列n+1

13、,注意:表达式只能是整型、字符型或枚举型,28,29,【例2.7】将输入的百分制成绩按以下规定转换成相应的等级:,成 绩 等级 10090 优秀 8980 良好 7970 中等 6960 及格 590 不及格,30,#include using namespace std; int main() float score; coutscore; if(score=0 ,共用同一个语句组,思考:若省去break语句,情况会怎样?,31,2.3 循环结构,按照给定规则重复地执行程序中的语句,2.3.1 while 语句,while (表达式) 语句,循环条件,其值为true(非0)、false(0)

14、,循环体,32,【例2.8】求 1+2+3+100,#include using namespace std; int main() int i(1),sum(0); /定义变量,初始化 while(i=100) /构造循环 sum+=i; / 循环体,多次执行 i+; cout“sum=“sumendl; return 0; ,0,1,1,2,真,3,3,真,6,4,真,10,5,真,真,100,真,101,真,5050,假,sum5050,1,2,3,3,6,4,100,5050,101,循环结束!,实际上是将i不停地累加到一起,33,【例2.9】求出满足不等式的最小n值:,#includ

15、e using namespace std; int main() int i=0; double s=0; while(s5) s+=double(1)/+i; cout“n=“iendl; return 0; ,8,34,2.3.2 do-while语句,do 语句 while (表达式);,35,【例2.10】 求自然数1100之和,要求用do-while语句实现。,#include using namespace std; int main() int i(1),sum(0); do sum+=i; i+; while(i=100); cout“sum=“sumendl; return 0; ,int i(1),sum(0); while(i=100) sum+=i; i+; ,循环体和条件表达式都相同,36,while(12) cout2); / 输出一行文字信息,注意: dowhile首先执行循环体,然后再判断表达式,至少执行一次循环体。当第一次循环表达式的值为真时,while与dowhile的结果完全一样,否则结果不相同。,37,【例2.11】输入一个自然数,将该数的每一位数字按反序输出。例如:输入12345,输出54321。,#inclu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号