当前位置:文档之家› 基本控制结构程序设计

基本控制结构程序设计

} 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;
第2章 基本控制结构程序设计
12
2.1.3 算法描述的3种基本结构
循环结构:用于在一定条件下实现重复性动 作
初始值
循环条件
循环体


条件
块1
信息科学与工程学院
第2章 基本控制结构程序设计
13
2.1.3 算法描述的3种基本结构
C++提供流程控制语句(用来控制流程的语 句),也称为过程化语句。分为两种类型
实根
cout<<"方程无实根!"<<endl;
信息科学与工程学院
第2章 基本控制结构程序设计
29
2.2.3 条件运算符
条件运算符“?:”为三元运算符,可用来简 化if语句表达
基本格式 表达式1 ? 表达式2 : 表达式3


表达式1
表达式2
表达式3
信息科学与工程学院
第2章 基本控制结构程序设计
可执行性
确定性:每一步都应确切和无歧义定义
有穷性
可输入输出信息
有零或多个输入(事先得到的) 有一或多个输出
算法是程序设计学习的重点
有必要先设计算法,再用高级语言将算法表达(翻
译)成程序
信息科学与工程学院
第2章 基本控制结构程序设计
6
2.1.1 算法的概念
数值运算算法
解决的是求数值解的问题,例如:用辗转 相除法求两个数的最大公约数等
4
2.1.1 算法的概念
定义:一程个序有是穷由的指数令据集和,对规数定据一个施运加算的序操列作两 部分组算成法在,结在构程上与序用中高不级语但言要编定写的义程对序数是很据相处似理的 的步 骤,还根要据算定法义写所出相使应用的的高级数语据言程序是很容易的
算法与高在级算语法言中程只序的定不义同了主对要数表据现处在理的步骤, 并未定数义据结所构使+用算的法数= 据程序
信息科学与工程学院
第2章 基本控制结构程序设计
22
2.2.1 if语句
条件语句:根据给定的条件选择程序的执行方向 基本格式
if (表达式) 语句1; if (表达式) 语句1;
else 语句2;
内嵌语句形式
普通 复合 空
信息科学与工程学院
第2章 基本控制结构程序设计
23
2.2.1 if语句
分支语句 循环语句
信息科学与工程学院
第2章 基本控制结构程序设计
14
2.1.3 算法描述的3种基本结构
算法描述的图形方式——N-S图
由Ike Nassi和Ben Shneiderman提出 一种结构化的流程图 通过一个矩形框表达一个对数据的基本处理 三种基本的元素框:顺序、分支、循环 通过三种元素框的任意逻辑组合(框的嵌套)来表
非数值运算算法
主要用于解决需要用分析推理、逻辑推理 才能解决的问题,例如:人工智能中的许 多问题,查找、分类等问题
信息科学与工程学院
第2章 基本控制结构程序设计
7
2.1.2 算法的表示
算法是抽象的,但必须通过具象的方式来展示
语言
自然语言 类计算机语言(伪码):书写形式自由,容易转换为程序 计算机语言
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语句
【例2.5】 从键盘上输入三个整数,输出其中的最 大数。算法分析:先求出前两个数中较大者,再将 该大数与第三个数比较,求出最大数
if (a >= b) max = a;
else max = b;
if (c > max) max = c;
cout<<"最大数为:"<<max<<endl;
if (c > max) cout<<"最大数为:"<<c<<endl;
双分支 9
2.1.3 算法描述的3种基本结构
对算法的理论研究和实践表明,任何算法的描述都 可以分解为三种基本结构或它们的组合,这三种基 本结构是
顺序结构 分支结构 循环结构
只用这三种结构编制的程序,叫做结构化程序
自顶向下、逐步求精 模块化
信息科学与工程学院
第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章 基本控制结构程序设计
33
2.2.4 switch语句
开关语句注意要点
每个常量表达式的取值必须各不相同,否则将引 起歧义
允许多个常量表达式对应同一个语句序列 从形式上看,switch语句的可读性比嵌套if语句
好,但不是所有多选一的问题都可由开关语句完 成,这是因为开关语句中限定了条件表达式的取 值类型
10
2.1.3 算法描述的3种基本结构
顺序结构:最简单的结构。各块按照书写次 序依次执行
块1
num1第1个数
块2
num2第2个数
块3
sumnum1+num2
信息科学与工程学院
第2章 基本控制结构程序设计
11
2.1.3 算法描述的3种基本结构
分支结构:根据条件判断选择执行路径


条件
块1
块2
信息科学与工程学院
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;
信息科学与工程学院
第2章 基本控制结构程序设计
25
2.2.2 if语句的嵌套
if 语句中,如果内嵌语句又是if语句,就构成了嵌 套if语句
if 语句可实现二选一分支,而嵌套if语句则可以实 现多选一的多路分支情况
基本格式
if (表达式1) 语句1; else if (表达式2) 语句2;
else if … else 语句n;
基本格式
switch (表达式) { case 常量表达式1: 《语句序列1;》《break;》
… case 常量表达式n:《语句序列n;》《break;》 《default: 语句序列;》
}
表达式作为判断条件组只能取:整型、字符
型、布尔型或枚举型等开关型。不能取连续

信息科学与工程学院
第2章 基本控制结构程序设计
程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) {
结果有三种情况
年份co是ut4<0<0"输的入倍年数份::y"e<a<re%nd4l;00 == 0
cin>>year; if (year%4 == 0 && year%100 != 0 || year%400 == 0)
相关主题