基本控制结构程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分支语句 循环语句
信息科学与工程学院
第2章 基本控制结构程序设计
14
2.1.3 算法描述的3种基本结构
算法描述的图形方式——N-S图
由Ike Nassi和Ben Shneiderman提出 一种结构化的流程图 通过一个矩形框表达一个对数据的基本处理 三种基本的元素框:顺序、分支、循环 通过三种元素框的任意逻辑组合(框的嵌套)来表
10
2.1.3 算法描述的3种基本结构
顺序结构:最简单的结构。各块按照书写次 序依次执行
块1
num1第1个数
块2
num2第2个数
块3
sumnum1+num2
信息科学与工程学院
第2章 基本控制结构程序设计
11
2.1.3 算法描述的3种基本结构
分支结构:根据条件判断选择执行路径
真
假
条件
块1
块2
信息科学与工程学院
30
2.2.3 条件运算符
可嵌套使用条件运算符号
max = (t = a >= b ? a : b) >= c ? t : c; max = t = a >= b ? a : b >= c ? t : c;
信息科学与工程学院
第2章 基本控制结构程序设计
31
2.2.4 switch语句
开关语句:用来实现多选一
非数值运算算法
主要用于解决需要用分析推理、逻辑推理 才能解决的问题,例如:人工智能中的许 多问题,查找、分类等问题
信息科学与工程学院
第2章 基本控制结构程序设计
7
2.1.2 算法的表示
算法是抽象的,但必须通过具象的方式来展示
语言
自然语言 类计算机语言(伪码):书写形式自由,容易转换为程序 计算机语言
} else {
if (b > c) max = b; //a<=b且b>c else max = c; //a<=b且b<c }
方法2:采用else中嵌套形式
配对问题:就近配对。 if (a > b && a > c) max = a;
else if (b > a && b > c) max = b;
双分支 9
2.1.3 算法描述的3种基本结构
对算法的理论研究和实践表明,任何算法的描述都 可以分解为三种基本结构或它们的组合,这三种基 本结构是
顺序结构 分支结构 循环结构
只用这三种结构编制的程序,叫做结构化程序
自顶向下、逐步求精 模块化
信息科学与工程学院
第2章 基本控制结构程序设计
【例2.5】 从键盘上输入三个整数,输出其中的最 大数。算法分析:先求出前两个数中较大者,再将 该大数与第三个数比较,求出最大数
if (a >= b) max = a;
else max = b;
if (c > max) max = c;
cout<<"最大数为:"<<max<<endl;
if (c > max) cout<<"最大数为:"<<c<<endl;
if (表达式1) { if (表达式2) 语句1; else语句2;
}
else语句3;
信息科学与工程学院
第2章 基本控制结构程序设计
26
2.2.2 if语句的嵌套
【例2.6】用嵌套if语句完成【例2.5】的任务
方法1:采用对称嵌套形式
if (a > b) { if (a > c) max = a; //a>b且a>c else max = c; //a>b且a<c
第2章 基本控制结构程序设计
12
2.1.3 算法描述的3种基本结构
循环结构:用于在一定条件下实现重复性动 作
初始值
循环条件
循环体
真
假
条件
块1
信息科学与工程学院
பைடு நூலகம்
第2章 基本控制结构程序设计
13
2.1.3 算法描述的3种基本结构
C++提供流程控制语句(用来控制流程的语 句),也称为过程化语句。分为两种类型
4
2.1.1 算法的概念
定义:一程个序有是穷由的指数令据集和,对规数定据一个施运加算的序操列作两 部分组算成法在,结在构程上与序用中高不级语但言要编定写的义程对序数是很据相处似理的 的步 骤,还根要据算定法义写所出相使应用的的高级数语据言程序是很容易的
算法与高在级算语法言中程只序的定不义同了主对要数表据现处在理的步骤, 并未定数义据结所构使+用算的法数= 据程序
信息科学与工程学院
第2章 基本控制结构程序设计
22
2.2.1 if语句
条件语句:根据给定的条件选择程序的执行方向 基本格式
if (表达式) 语句1; if (表达式) 语句1;
else 语句2;
内嵌语句形式
普通 复合 空
信息科学与工程学院
第2章 基本控制结构程序设计
23
2.2.1 if语句
N不是素数
信息科学与工程学院
第2章 基本控制结构程序设计
19
小练习
用N-S图描述:输入两个数并交换两个数值 的过程
(从键盘)输入两个数分别给a和b
t a
a b
b t
信息科学与工程学院
第2章 基本控制结构程序设计
21
2.2 分支结构程序设计
通过分支语句实现
2.2.1 if语句 2.2.2 if语句的嵌套 2.2.3 条件运算符 2.2.4 switch语句
基本格式
switch (表达式) { case 常量表达式1: 《语句序列1;》《break;》
… case 常量表达式n:《语句序列n;》《break;》 《default: 语句序列;》
}
表达式作为判断条件组只能取:整型、字符
型、布尔型或枚举型等开关型。不能取连续
值
信息科学与工程学院
第2章 基本控制结构程序设计
第2章 基本控制结构 程序设计
程序设计与算法语言 ——C++程序设计
本章内容
简要介绍
算法的基本概念;C++分支结构 和循环结构的设计方法;一些常 用算法。
信息科学与工程学院
第2章 基本控制结构程序设计
2
内容安排
2.1 算法的概念与表示方法 2.2 分支结构程序设计 2.3 循环结构程序设计 2.4 转向语句 2.5 结构化程序设计思想 2.6 常用算法的应用实例 2.7 枚举类型 2.8 输入/输出文件简介
信息科学与工程学院
第2章 基本控制结构程序设计
3
2.1 算法的概念与表示方法
算法(algorithm)的作用在于表述人们解决 问题的思想。是编写良好程序的基础
内容
2.1.1 算法的概念 2.1.2 算法的表示 2.1.3 算法描述的3种基本结构
信息科学与工程学院
第2章 基本控制结构程序设计
年份co是ut4<0<0"输的入倍年数份::y"e<a<re%nd4l;00 == 0
cin>>year; if (year%4 == 0 && year%100 != 0 || year%400 == 0)
cout<<year<<"年是闰年"<<endl; else
cout<<year<<"年不是闰年"<<endl; return 0; }
信息科学与工程学院
第2章 基本控制结构程序设计
25
2.2.2 if语句的嵌套
if 语句中,如果内嵌语句又是if语句,就构成了嵌 套if语句
if 语句可实现二选一分支,而嵌套if语句则可以实 现多选一的多路分支情况
基本格式
if (表达式1) 语句1; else if (表达式2) 语句2;
else if … else 语句n;
高语级法语书算言写程,法序而是中在在的算各法某种中种成除数分了都要据必遵组须守织严算格法结按指构照令上语的言语的规义一定外种的, 解决问没题有严的格计的算语法方,法甚至在算法中还可夹杂着自然语言
信息科学与工程学院
第2章 基本控制结构程序设计
5
2.1.1 算法的概念
算法的本质:解决问题的步骤
计算机算法的特征
图形
流程图 N-S图 PAD 图
表格
信息科学与工程学院
第2章 基本控制结构程序设计
8
2.1.2 算法的表示
流程图:图形化的表示方法,比较直观,基 本组成元件包括
矩形框:表示要执行的指令,在框内标注指令内 容
菱形框:表示要判断其中表达式的值是真还是假 箭头线:表示指令的流程方向
处理 信息科学与工程学院 顺序 单分支 第2章 基本控制结构程序设计
信息科学与工程学院
第2章 基本控制结构程序设计
33
2.2.4 switch语句
开关语句注意要点
每个常量表达式的取值必须各不相同,否则将引 起歧义
允许多个常量表达式对应同一个语句序列 从形式上看,switch语句的可读性比嵌套if语句
好,但不是所有多选一的问题都可由开关语句完 成,这是因为开关语句中限定了条件表达式的取 值类型
32
2.2.4 switch语句
开关语句注意要点
各个case(包括default)分支出现的次序可任意, 通常将default放在最后
break语句可选,如果没有break语句,每一个 case分支都只作为开关语句的执行入口,执行完 该分支后,还将接着执行其后的所有分支。因此, 为保证逻辑的正确实现,通常每个case分支都与 break语句联用
else cout<<"最大数为:"<<max<<endl;
信息科学与工程学院
第2章 基本控制结构程序设计
24
2.2.1 if语句
【例2.4】 输入一个年份,判断是否闰年。 算法分析:假定年份为year, 闰年的条件是
in年t 份ma是in4()的倍数并且不是世纪初年: {(yeinatr%ye4ar=; = 0) && (year%100 != 0)
delta = sqrt(delta);
若delta=0,方程有 两个相同实根
x1 = (-b+delta)/(2*a); x2 = (-b-delta)/(2*a); cout<<"方程有两个不同实根:";
若delta>0,方程有 两个不同实根
若delta<0,方程无
cout<<"x1="<<x1<<'\t'<<"x2="\ <<x2<<endl; } else
为了el不se 产max生= 歧c; 义,需用{}保证逻辑配对关系。
信息科学与工程学院
第2章 基本控制结构程序设计
27
2.2.2 if语句的嵌套
【例2.7】 某商场优惠活动规定,某种商品单价为 80元,一次购买5件以上(包含5件)10件以下 (不包含10件)打9折,一次购买10件以上(包含 10件)打8折。设计程序根据客户的购买量计算总 价
if (count < 5) discount = 1; else if (count < 10) discount = 0.9; else discount = 0.8;
信息科学与工程学院
第2章 基本控制结构程序设计
28
2.2.2 if语句的嵌套
【例2.8】 求一元二次方 delta = b*b–4*a*c;
实根
cout<<"方程无实根!"<<endl;
信息科学与工程学院
第2章 基本控制结构程序设计
29
2.2.3 条件运算符
条件运算符“?:”为三元运算符,可用来简 化if语句表达
基本格式 表达式1 ? 表达式2 : 表达式3
真
假
表达式1
表达式2
表达式3
信息科学与工程学院
第2章 基本控制结构程序设计
可执行性
确定性:每一步都应确切和无歧义定义
有穷性
可输入输出信息
有零或多个输入(事先得到的) 有一或多个输出
算法是程序设计学习的重点
有必要先设计算法,再用高级语言将算法表达(翻
译)成程序
信息科学与工程学院
第2章 基本控制结构程序设计
6
2.1.1 算法的概念
数值运算算法
解决的是求数值解的问题,例如:用辗转 相除法求两个数的最大公约数等
程ax2+bx+c=0的根。 if (delta == 0) {
其中系数a(a≠0)、b、c
的值由键盘输入。算法分 }
cout<<"方程有两个相同实根:"; cout<<"x1=x2="<<-b/(2*a)<<endl;
析:令delta= b2–4ac, else if (delta > 0) {
结果有三种情况
2.1.3 算法描述的3种基本结构
三种基本的元素框——循环
当P成立 C
C 当P成立
信息科学与工程学院
第2章 基本控制结构程序设计
18
2.1.3 算法描述的3种基本结构
判断一个正整数是否是素数
输入:正整数N
W0, I2
RN/I的余数
T
R=0?
F
W1
II+1
直到I>N-1或W=1
T
W=0?
F
N是素数
达算法
信息科学与工程学院
第2章 基本控制结构程序设计
15
2.1.3 算法描述的3种基本结构
三种基本的元素框——顺序
A B
信息科学与工程学院
第2章 基本控制结构程序设计
16
2.1.3 算法描述的3种基本结构
三种基本的元素框——分支
P成立?
是
否
A
B
信息科学与工程学院
第2章 基本控制结构程序设计
17
信息科学与工程学院
第2章 基本控制结构程序设计
14
2.1.3 算法描述的3种基本结构
算法描述的图形方式——N-S图
由Ike Nassi和Ben Shneiderman提出 一种结构化的流程图 通过一个矩形框表达一个对数据的基本处理 三种基本的元素框:顺序、分支、循环 通过三种元素框的任意逻辑组合(框的嵌套)来表
10
2.1.3 算法描述的3种基本结构
顺序结构:最简单的结构。各块按照书写次 序依次执行
块1
num1第1个数
块2
num2第2个数
块3
sumnum1+num2
信息科学与工程学院
第2章 基本控制结构程序设计
11
2.1.3 算法描述的3种基本结构
分支结构:根据条件判断选择执行路径
真
假
条件
块1
块2
信息科学与工程学院
30
2.2.3 条件运算符
可嵌套使用条件运算符号
max = (t = a >= b ? a : b) >= c ? t : c; max = t = a >= b ? a : b >= c ? t : c;
信息科学与工程学院
第2章 基本控制结构程序设计
31
2.2.4 switch语句
开关语句:用来实现多选一
非数值运算算法
主要用于解决需要用分析推理、逻辑推理 才能解决的问题,例如:人工智能中的许 多问题,查找、分类等问题
信息科学与工程学院
第2章 基本控制结构程序设计
7
2.1.2 算法的表示
算法是抽象的,但必须通过具象的方式来展示
语言
自然语言 类计算机语言(伪码):书写形式自由,容易转换为程序 计算机语言
} else {
if (b > c) max = b; //a<=b且b>c else max = c; //a<=b且b<c }
方法2:采用else中嵌套形式
配对问题:就近配对。 if (a > b && a > c) max = a;
else if (b > a && b > c) max = b;
双分支 9
2.1.3 算法描述的3种基本结构
对算法的理论研究和实践表明,任何算法的描述都 可以分解为三种基本结构或它们的组合,这三种基 本结构是
顺序结构 分支结构 循环结构
只用这三种结构编制的程序,叫做结构化程序
自顶向下、逐步求精 模块化
信息科学与工程学院
第2章 基本控制结构程序设计
【例2.5】 从键盘上输入三个整数,输出其中的最 大数。算法分析:先求出前两个数中较大者,再将 该大数与第三个数比较,求出最大数
if (a >= b) max = a;
else max = b;
if (c > max) max = c;
cout<<"最大数为:"<<max<<endl;
if (c > max) cout<<"最大数为:"<<c<<endl;
if (表达式1) { if (表达式2) 语句1; else语句2;
}
else语句3;
信息科学与工程学院
第2章 基本控制结构程序设计
26
2.2.2 if语句的嵌套
【例2.6】用嵌套if语句完成【例2.5】的任务
方法1:采用对称嵌套形式
if (a > b) { if (a > c) max = a; //a>b且a>c else max = c; //a>b且a<c
第2章 基本控制结构程序设计
12
2.1.3 算法描述的3种基本结构
循环结构:用于在一定条件下实现重复性动 作
初始值
循环条件
循环体
真
假
条件
块1
信息科学与工程学院
பைடு நூலகம்
第2章 基本控制结构程序设计
13
2.1.3 算法描述的3种基本结构
C++提供流程控制语句(用来控制流程的语 句),也称为过程化语句。分为两种类型
4
2.1.1 算法的概念
定义:一程个序有是穷由的指数令据集和,对规数定据一个施运加算的序操列作两 部分组算成法在,结在构程上与序用中高不级语但言要编定写的义程对序数是很据相处似理的 的步 骤,还根要据算定法义写所出相使应用的的高级数语据言程序是很容易的
算法与高在级算语法言中程只序的定不义同了主对要数表据现处在理的步骤, 并未定数义据结所构使+用算的法数= 据程序
信息科学与工程学院
第2章 基本控制结构程序设计
22
2.2.1 if语句
条件语句:根据给定的条件选择程序的执行方向 基本格式
if (表达式) 语句1; if (表达式) 语句1;
else 语句2;
内嵌语句形式
普通 复合 空
信息科学与工程学院
第2章 基本控制结构程序设计
23
2.2.1 if语句
N不是素数
信息科学与工程学院
第2章 基本控制结构程序设计
19
小练习
用N-S图描述:输入两个数并交换两个数值 的过程
(从键盘)输入两个数分别给a和b
t a
a b
b t
信息科学与工程学院
第2章 基本控制结构程序设计
21
2.2 分支结构程序设计
通过分支语句实现
2.2.1 if语句 2.2.2 if语句的嵌套 2.2.3 条件运算符 2.2.4 switch语句
基本格式
switch (表达式) { case 常量表达式1: 《语句序列1;》《break;》
… case 常量表达式n:《语句序列n;》《break;》 《default: 语句序列;》
}
表达式作为判断条件组只能取:整型、字符
型、布尔型或枚举型等开关型。不能取连续
值
信息科学与工程学院
第2章 基本控制结构程序设计
第2章 基本控制结构 程序设计
程序设计与算法语言 ——C++程序设计
本章内容
简要介绍
算法的基本概念;C++分支结构 和循环结构的设计方法;一些常 用算法。
信息科学与工程学院
第2章 基本控制结构程序设计
2
内容安排
2.1 算法的概念与表示方法 2.2 分支结构程序设计 2.3 循环结构程序设计 2.4 转向语句 2.5 结构化程序设计思想 2.6 常用算法的应用实例 2.7 枚举类型 2.8 输入/输出文件简介
信息科学与工程学院
第2章 基本控制结构程序设计
3
2.1 算法的概念与表示方法
算法(algorithm)的作用在于表述人们解决 问题的思想。是编写良好程序的基础
内容
2.1.1 算法的概念 2.1.2 算法的表示 2.1.3 算法描述的3种基本结构
信息科学与工程学院
第2章 基本控制结构程序设计
年份co是ut4<0<0"输的入倍年数份::y"e<a<re%nd4l;00 == 0
cin>>year; if (year%4 == 0 && year%100 != 0 || year%400 == 0)
cout<<year<<"年是闰年"<<endl; else
cout<<year<<"年不是闰年"<<endl; return 0; }
信息科学与工程学院
第2章 基本控制结构程序设计
25
2.2.2 if语句的嵌套
if 语句中,如果内嵌语句又是if语句,就构成了嵌 套if语句
if 语句可实现二选一分支,而嵌套if语句则可以实 现多选一的多路分支情况
基本格式
if (表达式1) 语句1; else if (表达式2) 语句2;
else if … else 语句n;
高语级法语书算言写程,法序而是中在在的算各法某种中种成除数分了都要据必遵组须守织严算格法结按指构照令上语的言语的规义一定外种的, 解决问没题有严的格计的算语法方,法甚至在算法中还可夹杂着自然语言
信息科学与工程学院
第2章 基本控制结构程序设计
5
2.1.1 算法的概念
算法的本质:解决问题的步骤
计算机算法的特征
图形
流程图 N-S图 PAD 图
表格
信息科学与工程学院
第2章 基本控制结构程序设计
8
2.1.2 算法的表示
流程图:图形化的表示方法,比较直观,基 本组成元件包括
矩形框:表示要执行的指令,在框内标注指令内 容
菱形框:表示要判断其中表达式的值是真还是假 箭头线:表示指令的流程方向
处理 信息科学与工程学院 顺序 单分支 第2章 基本控制结构程序设计
信息科学与工程学院
第2章 基本控制结构程序设计
33
2.2.4 switch语句
开关语句注意要点
每个常量表达式的取值必须各不相同,否则将引 起歧义
允许多个常量表达式对应同一个语句序列 从形式上看,switch语句的可读性比嵌套if语句
好,但不是所有多选一的问题都可由开关语句完 成,这是因为开关语句中限定了条件表达式的取 值类型
32
2.2.4 switch语句
开关语句注意要点
各个case(包括default)分支出现的次序可任意, 通常将default放在最后
break语句可选,如果没有break语句,每一个 case分支都只作为开关语句的执行入口,执行完 该分支后,还将接着执行其后的所有分支。因此, 为保证逻辑的正确实现,通常每个case分支都与 break语句联用
else cout<<"最大数为:"<<max<<endl;
信息科学与工程学院
第2章 基本控制结构程序设计
24
2.2.1 if语句
【例2.4】 输入一个年份,判断是否闰年。 算法分析:假定年份为year, 闰年的条件是
in年t 份ma是in4()的倍数并且不是世纪初年: {(yeinatr%ye4ar=; = 0) && (year%100 != 0)
delta = sqrt(delta);
若delta=0,方程有 两个相同实根
x1 = (-b+delta)/(2*a); x2 = (-b-delta)/(2*a); cout<<"方程有两个不同实根:";
若delta>0,方程有 两个不同实根
若delta<0,方程无
cout<<"x1="<<x1<<'\t'<<"x2="\ <<x2<<endl; } else
为了el不se 产max生= 歧c; 义,需用{}保证逻辑配对关系。
信息科学与工程学院
第2章 基本控制结构程序设计
27
2.2.2 if语句的嵌套
【例2.7】 某商场优惠活动规定,某种商品单价为 80元,一次购买5件以上(包含5件)10件以下 (不包含10件)打9折,一次购买10件以上(包含 10件)打8折。设计程序根据客户的购买量计算总 价
if (count < 5) discount = 1; else if (count < 10) discount = 0.9; else discount = 0.8;
信息科学与工程学院
第2章 基本控制结构程序设计
28
2.2.2 if语句的嵌套
【例2.8】 求一元二次方 delta = b*b–4*a*c;
实根
cout<<"方程无实根!"<<endl;
信息科学与工程学院
第2章 基本控制结构程序设计
29
2.2.3 条件运算符
条件运算符“?:”为三元运算符,可用来简 化if语句表达
基本格式 表达式1 ? 表达式2 : 表达式3
真
假
表达式1
表达式2
表达式3
信息科学与工程学院
第2章 基本控制结构程序设计
可执行性
确定性:每一步都应确切和无歧义定义
有穷性
可输入输出信息
有零或多个输入(事先得到的) 有一或多个输出
算法是程序设计学习的重点
有必要先设计算法,再用高级语言将算法表达(翻
译)成程序
信息科学与工程学院
第2章 基本控制结构程序设计
6
2.1.1 算法的概念
数值运算算法
解决的是求数值解的问题,例如:用辗转 相除法求两个数的最大公约数等
程ax2+bx+c=0的根。 if (delta == 0) {
其中系数a(a≠0)、b、c
的值由键盘输入。算法分 }
cout<<"方程有两个相同实根:"; cout<<"x1=x2="<<-b/(2*a)<<endl;
析:令delta= b2–4ac, else if (delta > 0) {
结果有三种情况
2.1.3 算法描述的3种基本结构
三种基本的元素框——循环
当P成立 C
C 当P成立
信息科学与工程学院
第2章 基本控制结构程序设计
18
2.1.3 算法描述的3种基本结构
判断一个正整数是否是素数
输入:正整数N
W0, I2
RN/I的余数
T
R=0?
F
W1
II+1
直到I>N-1或W=1
T
W=0?
F
N是素数
达算法
信息科学与工程学院
第2章 基本控制结构程序设计
15
2.1.3 算法描述的3种基本结构
三种基本的元素框——顺序
A B
信息科学与工程学院
第2章 基本控制结构程序设计
16
2.1.3 算法描述的3种基本结构
三种基本的元素框——分支
P成立?
是
否
A
B
信息科学与工程学院
第2章 基本控制结构程序设计
17