第4章程序的控制结构资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s运3=,行%47情,.2况6f\:n”,a,b,c,s); pa=rint3f.(0“0,areba=%7.42.f0\0n,”,ca=rea)6;.}00, area= 2020/10/9 5.33
数学函数库 因为要用到 其中的sqrt
函数
s= 6.50
25
例3 求根 p83
例4.12 求ax2+bx+c=0方程的根。
2020/10/9
23
例2 求三角形面积
例:输入三角形的三边 长,求三角形面积。
假设:三个边长a,b,c能构 成三角形。 已知面积公式: area= s(s a)(s b)(s c) s=(a+b+c)*0.5
2020/10/9
开始 输入三边长
计算s 计算面积
结束
24
例2 求三角形面积(p74 3.5)
2020/10/9
3
算法的分类
数值运算算法: –解决的是求数值解的问题,例如用辗
转相除法求两个数的最大公约数等
非数值运算算法: –主要用于解决需要用分析推理、逻辑
推理才能解决的问题,例如人工智能中 的许多问题,查找、分类等问题
20ቤተ መጻሕፍቲ ባይዱ0/10/9
4
算法特性:
–有穷性 –确定性 –有效性 –没有输入或有多个输入 –有一个或多个输出
2020/10/9
5
算法的表示方法
自然语言表示 传统的流程图表示 N-S结构化流程图表示 伪代码表示
2020/10/9
6
N-S流程图用以下的流程图符号:
(1)顺序结构
(2)选择结构
2020/10/9
(3)循环结构
7
C程序结构
C程序
源程序文件1
源程序文件2
源程序文件3
编译预处理命令 全局变量声明 函数1 … 函数n
a,b,c由键盘输入,设 b2 4>ac 0。 众所周知,一元二次方程式的根为
x1= b b2 4axc2=
2a
2020/10/9
21
例1 求本利和 p80
存款利率rate 存款年份n 本金capital
计算n年之后本利和?
2020/10/9
22
算法描述: Step1:输入本金capital和存款年份n; Step2:计算本利和deposit – deposit=capital*(1+rate)n
Step3:输出n年后本利和
cocks=0;
当cocks<=19时
{
hens=0;
当hens<=33时
{寻找满足题意的chicks的值
hens++;
}
cocks++;
} 2020/10/9
18
cocks=0;
当cocks<=19时
{
hens=0;
当hens<=33时
{/*寻找满足题意的chicks的值*/
chicks=100-cocks-hens;
A
直到P为假
A
直到P为假
14
结构化程序设计的核心思想
采用顺序、选择和循环三种基本结构作为程 序设计的基本单元 – 只有一个入口;只有一个出口; – 无死语句,即不存在永远都执行不到的语句; – 无死循环,即不存在永远都执行不完的循环。 采用“自顶向下、逐步求精”和模块化的方 法进行结构化程序设计
2020/10/9
Y
N
条 件P
A
B
如果 成条绩件<6P0 那么
Y通知补考
否则A
B
告知你考试成绩
2020/10/9
11
循环结构
条 假件P 假
真
A
A
假
条 件P
真
当型循环 2020/10/9
直到型循环
12
循环结构
条 假件P 假
真
A
当型循环 2020/10/9
当P为真
A
当P为真
A
13
循环结构
A
假
条 件P
真
直到型循环 2020/10/9
2020/10/9
函数首部
函数体
局部变量声明 执行语句
8
构成程序的三种基本结构
顺序结构 选择结构 循环结构 已经证明,任何程序均可只用这三种结构综 合描述 只用这三种结构编制的程序,叫结构化程序 程序必须符合结构化规则
2020/10/9
9
顺序结构
A
B
2020/10/9传统流程图
A
B NS图
10
分支结构(选择结构)
如果(5*cocks+3*hens+chicks/3=100)则输出;
hens++;
}
cocks++;
} 2020/10/9
19
void main() { int cocks=0,hens,chicks;
while (cocks<=19)
经过调试运行,可 以得到4组解
{ hens=0;
while (hens<=33)
15
“百鸡问题”
– 鸡翁一值钱五,鸡母一值钱三,鸡雏三值
钱一。百钱买百鸡,问鸡翁、母、雏各几 何?(体会编程步骤)
– cocks+hens+chicks=100 – 5*cocks+3*hens+chicks/3=100
– 0≤cocks≤19 0≤hens≤33
2020/10/9
0≤chicks≤19
{ chicks=100-cocks-hens;
if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf(“%d,%d,%d\n”,cocks,hens,chicks);
hens++;
}
cocks++;
}
}2020/10/9
20
4.2 顺序结构
最简单的C程序结构 完全按照语句出现的先后顺序执行程序 程序=算法+数据结构
第4章 程序的控制结构
内容提要
算法的描述方法 基本控制结构 基本控制语句 常用算法,如累加、累乘、统计、递推 、迭代、穷举等 程序的基本版式 结构化程序设计的基本思想
2020/10/9
2
算法的概念
数据结构+算法=程序 算法:为解决一个具体问题而采取的确 定的有限的操作步骤,这里仅指计算机 能执行的算法。
#include<stdio.h> #include<math.h> void main() {float a,b,c,s,area; scanf(“%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,
16
枚举法
思路:依次取cocks值域中的值,求其余两 个数(hens、chicks),看是否复合题意 算法描述:
cocks=0; 当cocks<=19时 {
寻找满足题意的hens、chicks的值; cocks++; }
2020/10/9
17
cocks=0; 当cocks<=19时 {
寻找满足题意的hens、chicks的值; cocks++; }
数学函数库 因为要用到 其中的sqrt
函数
s= 6.50
25
例3 求根 p83
例4.12 求ax2+bx+c=0方程的根。
2020/10/9
23
例2 求三角形面积
例:输入三角形的三边 长,求三角形面积。
假设:三个边长a,b,c能构 成三角形。 已知面积公式: area= s(s a)(s b)(s c) s=(a+b+c)*0.5
2020/10/9
开始 输入三边长
计算s 计算面积
结束
24
例2 求三角形面积(p74 3.5)
2020/10/9
3
算法的分类
数值运算算法: –解决的是求数值解的问题,例如用辗
转相除法求两个数的最大公约数等
非数值运算算法: –主要用于解决需要用分析推理、逻辑
推理才能解决的问题,例如人工智能中 的许多问题,查找、分类等问题
20ቤተ መጻሕፍቲ ባይዱ0/10/9
4
算法特性:
–有穷性 –确定性 –有效性 –没有输入或有多个输入 –有一个或多个输出
2020/10/9
5
算法的表示方法
自然语言表示 传统的流程图表示 N-S结构化流程图表示 伪代码表示
2020/10/9
6
N-S流程图用以下的流程图符号:
(1)顺序结构
(2)选择结构
2020/10/9
(3)循环结构
7
C程序结构
C程序
源程序文件1
源程序文件2
源程序文件3
编译预处理命令 全局变量声明 函数1 … 函数n
a,b,c由键盘输入,设 b2 4>ac 0。 众所周知,一元二次方程式的根为
x1= b b2 4axc2=
2a
2020/10/9
21
例1 求本利和 p80
存款利率rate 存款年份n 本金capital
计算n年之后本利和?
2020/10/9
22
算法描述: Step1:输入本金capital和存款年份n; Step2:计算本利和deposit – deposit=capital*(1+rate)n
Step3:输出n年后本利和
cocks=0;
当cocks<=19时
{
hens=0;
当hens<=33时
{寻找满足题意的chicks的值
hens++;
}
cocks++;
} 2020/10/9
18
cocks=0;
当cocks<=19时
{
hens=0;
当hens<=33时
{/*寻找满足题意的chicks的值*/
chicks=100-cocks-hens;
A
直到P为假
A
直到P为假
14
结构化程序设计的核心思想
采用顺序、选择和循环三种基本结构作为程 序设计的基本单元 – 只有一个入口;只有一个出口; – 无死语句,即不存在永远都执行不到的语句; – 无死循环,即不存在永远都执行不完的循环。 采用“自顶向下、逐步求精”和模块化的方 法进行结构化程序设计
2020/10/9
Y
N
条 件P
A
B
如果 成条绩件<6P0 那么
Y通知补考
否则A
B
告知你考试成绩
2020/10/9
11
循环结构
条 假件P 假
真
A
A
假
条 件P
真
当型循环 2020/10/9
直到型循环
12
循环结构
条 假件P 假
真
A
当型循环 2020/10/9
当P为真
A
当P为真
A
13
循环结构
A
假
条 件P
真
直到型循环 2020/10/9
2020/10/9
函数首部
函数体
局部变量声明 执行语句
8
构成程序的三种基本结构
顺序结构 选择结构 循环结构 已经证明,任何程序均可只用这三种结构综 合描述 只用这三种结构编制的程序,叫结构化程序 程序必须符合结构化规则
2020/10/9
9
顺序结构
A
B
2020/10/9传统流程图
A
B NS图
10
分支结构(选择结构)
如果(5*cocks+3*hens+chicks/3=100)则输出;
hens++;
}
cocks++;
} 2020/10/9
19
void main() { int cocks=0,hens,chicks;
while (cocks<=19)
经过调试运行,可 以得到4组解
{ hens=0;
while (hens<=33)
15
“百鸡问题”
– 鸡翁一值钱五,鸡母一值钱三,鸡雏三值
钱一。百钱买百鸡,问鸡翁、母、雏各几 何?(体会编程步骤)
– cocks+hens+chicks=100 – 5*cocks+3*hens+chicks/3=100
– 0≤cocks≤19 0≤hens≤33
2020/10/9
0≤chicks≤19
{ chicks=100-cocks-hens;
if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf(“%d,%d,%d\n”,cocks,hens,chicks);
hens++;
}
cocks++;
}
}2020/10/9
20
4.2 顺序结构
最简单的C程序结构 完全按照语句出现的先后顺序执行程序 程序=算法+数据结构
第4章 程序的控制结构
内容提要
算法的描述方法 基本控制结构 基本控制语句 常用算法,如累加、累乘、统计、递推 、迭代、穷举等 程序的基本版式 结构化程序设计的基本思想
2020/10/9
2
算法的概念
数据结构+算法=程序 算法:为解决一个具体问题而采取的确 定的有限的操作步骤,这里仅指计算机 能执行的算法。
#include<stdio.h> #include<math.h> void main() {float a,b,c,s,area; scanf(“%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,
16
枚举法
思路:依次取cocks值域中的值,求其余两 个数(hens、chicks),看是否复合题意 算法描述:
cocks=0; 当cocks<=19时 {
寻找满足题意的hens、chicks的值; cocks++; }
2020/10/9
17
cocks=0; 当cocks<=19时 {
寻找满足题意的hens、chicks的值; cocks++; }