程序初步设计.pptx
《程序初步设计.pptx》由会员分享,可在线阅读,更多相关《程序初步设计.pptx(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3 3章 程序初步设计 程序的流程控制。所有程序都只能包含三种控制结构:1.顺序结构 2.选择结构 3.循环结构第1页/共97页对给定的条件进行判断,并根据判断的结果选择不同的操作。构成选择结构的语句,称为条件语句。(1)if 语句(2)switch语句3.7.1 if 语句的3种形式第2页/共97页1 1if if 语句的形式和执行流程语句的形式和执行流程 if(表达式)语句;语句形式(1)执行流程 false(0)true(true(非非0 0)表达式 语 句3.7.1 if 语句的3种形式第3页/共97页 false(0)true(true(非非0 0)表达式 语 句1 1if if
2、语句的形式和执行流程语句的形式和执行流程 if(表达式)语句;语句形式(1)执行流程 表达式 语 句3.7.1 if 语句的3种形式第4页/共97页 false(0)true(true(非非0 0)表达式 语 句1 1if if 语句的形式和执行流程语句的形式和执行流程 if(表达式)语句;语句形式(1)执行流程 表达式 3.7.1 if 语句的3种形式第5页/共97页35a ab bmaxmax例:int a=3,b=5,max;max=a;if (b a)max=b;cout max=max a)max=b;cout max=max a)max=b;cout max=max a)max=b
3、;cout max=max a)max=b;cout max=max a)max=b;cout max=max a)max=b;cout max=max a)max=b;cout max=max a)max=b;cout max=max a)max=b;cout max=max c)&(b+ca)&(c+ab)s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c);cout“area=“area a)max=b;else max=a;cout max=max a)max=b;else max=a;cout max=max a)max=b;else max=a;c
4、out max=max a)max=b;else max=a;cout max=max a)max=b;else max=a;cout max=max a)max=b;else max=a;cout max=max a)max=b;else max=a;cout max=max a)max=b;else max=a;cout max=max endl;:73a ab bmaxmax7 max=7输出3.7.1 if 3.7.1 if 语句的语句的3 3种形式种形式第27页/共97页1 1if if 语句的形式和执行流程语句的形式和执行流程 语句形式(3)if(表达式 1)语句1;else if
5、(表达式 2)语句2;else if(表达式3)语句3;else if(表达式n-1)语句n-1;else 语句n;truefalsetruetruetruefalsefalsefalse表达式1表达式2表达式3表达式4语句1语句5语句4语句3语句23.7.1 if 3.7.1 if 语句的语句的3 3种形式种形式第28页/共97页例3-1 编写程序计算货物运费。设货物运费单价为每吨每公里 p(元),p与运输距离 s(公里)之间有如下关系:p=输入要托运的货物重量为 w 吨,托运距离 s 公里,计算总运费 t:t=p*w*s2.1.1 i f 语 句3.7.1 if 3.7.1 if 语句的语
6、句的3 3种形式种形式第29页/共97页控制流图truefalsetruetruetruefalsefalsefalseS 100?S 200?S 300?S 400?p=30p=20p=22.5p=25p=27.5t=p*w*s2.1.1 i f 语 句3.7.1 if 3.7.1 if 语句的语句的3 3种形式种形式第30页/共97页truefalsetruetruetruefalsefalsefalseS 100?S 200?S 300?S 400?P=30P=20P=22.5P=25P=27.5t=p*w*s /例3-1 计算货物运费#include#includeusing name
7、space std;int main()double t,p,w,s;cout w;cout s;if(s 100)p=30;else if (s 200)p=27.5;else if (s 300)p=25;else if (s 400)p=22.5;else p=20;t=p*w*s;cout The cost is:setprecision(2)t$b a b/a b/a c a c/a c,a b/a c,a c b c/ab&b c/ab&b b:a b a 5 7 2 bca 2 7 5 bc 2 7 a c:a c 2 b c:b c a 2 5 7 bca ba b,a ca
8、b&b c2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第34页/共97页例 3-2 输入三个整数,按从小到大顺序输出。#include using namespace std;int main()int a,b,c,t;cout a b c;if(a b)t=a;a=b;b=t;if(a c)t=a;a=c;c=t;if(b c)t=b;b=c;c=t;cout a b c endl;return 0;注意语句块结构2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第35页/共97页例 3-2 输入三个整数,按从小到大顺序输
9、出。#include using namespace std;int main()int a,b,c,t;cout a b c;if(a b)t=a;a=b;b=t;if(a c)t=a;a=c;c=t;if(b c)t=b;b=c;c=t;cout a b c endl;return 0;注意语句块结构2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第36页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b ca b&b c a c ba c&c b b a cb a&a c b c ab c
10、&c a c a bc a&a b c b ac b&b a可以直接用 1个判断 6次的 if 语句写出程序2.1.1 i f 语 句if(a b&b c)couta b c;else if(a c&c b)couta c b;else if(b a&a c)coutb a c;else if(b c&c a)coutb c a;else if(c a&a b)coutc a b;else /else if(c b&b a)coutc b a;3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第37页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的
11、 6 种可能排列方式:a b ca b&b c a c ba c&c b b a cb a&a c b c ab c&c a c a bc a&a b c b ac b&b a最坏情况要做7个关系运算和 2个逻辑运算2.1.1 i f 语 句if(a b&b c)couta b c;else if(a c&c b)couta c b;else if(b a&a c)coutb a c;else if(b c&c a)coutb c a;else if(c a&a b)coutc a b;else /else if(c b&b a)coutc b a;3.7.2 if 3.7.2 if 语句的嵌
12、套语句的嵌套第38页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b ca b&b c a c ba c&c b b a cb a&a c b c ab c&c a c a bc a&a b c b ac b ac b&b a2.1.1 i f 语 句if(a b&b c)couta b c;else if(a c&c b)couta c b;else if(b a&a c)coutb a c;else if(b c&c a)coutb c a;else if(c a&a b)coutc a b;else /else if(c
13、 b&b a)coutc b a;最坏情况要做7个关系运算和 2个逻辑运算3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第39页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b ca b ca b&b c a c ba c&c b b a cb a&a c b c ab c&c a c a bc a&a b c b ac b&b a2.1.1 i f 语 句最好情况要做2个关系运算和 1个逻辑运算if(a b&b c)couta b c;else if(a c&c b)couta c b;else if(b a&a
14、c)coutb a c;else if(b c&c a)coutb c a;else if(c a&a b)coutc a b;else /else if(c b&b a)coutc b a;3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第40页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b ca b ca b&b c a c ba c&c b b a cb a&a c b c ab c&c a c a bc a&a b c b ac b&b a2.1.1 i f 语 句最好情况要做2个关系运算和 1个逻辑运算if
15、(a b&b c)couta b c;else if(a c&c b)couta c b;else if(b a&a c)coutb a c;else if(b c&c a)coutb c a;else if(c a&a b)coutc a b;else /else if(c b&b a)coutc b a;3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第41页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b ca b&b c a c ba c&c b b a cb a&a c b c ab c&c a c a bc
16、 a&a b c b ac b&b a优化算法首先分析a,b的顺序2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第42页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a a b b ca a b b&b c a a c b ba a c&c b b b a cb a&a c b c ab c&c a c a a b bc a a&a b b c b ac b&b a优化算法首先分析a,b的顺序然后分析 c 的位置 a b a b2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的
17、嵌套语句的嵌套第43页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b c ca b&b c c a c ba c&c b b a cb a&a c b c ab c&c a c a bc a&a b c b ac b&b a优化算法首先分析a,b的顺序然后分析 c 的位置 a b c c2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第44页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b c ca b&b c c a c
18、ba c&c b b a cb a&a c b c ab c&c a c c a bc c a&a b c b ac b&b a优化算法首先分析a,b的顺序然后分析 c 的位置c c a b2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第45页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:3 个数的 6 种可能排列方式:a b c ca b&b c c a c c ba c c&c b b a cb a&a c b c ab c&c a c c a bc c a&a b c b ac b&b a优化算法首先分析a,b的顺序然后
19、分析 c 的位置a c c b2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第46页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:最坏情况做3次关系运算truefalsetruetruetruefalsefalsefalsefalsetruea b?b c?a c?c,a,ba,c,ba,b,ca c?b c?b,a,cb,c,ac,b,ab aa b2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第47页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:truef
20、alsetruetruetruefalsefalsefalsefalsetruea b?b c?a c?c,a,ba,c,ba,b,ca c?b c?b,a,cb,c,ac,b,ab aa b最坏情况做3次关系运算2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第48页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:truefalsetruetruetruefalsefalsefalsefalsetruea b?b c?a c?c,a,ba,c,ba,b,ca c?b c?b,a,cb,c,ac,b,ab aa b最好情况做2次关
21、系运算2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第49页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:truefalsetruetruetruefalsefalsefalsefalsetruea b?b c?a c?c,a,ba,c,ba,b,ca c?b c?b,a,cb,c,ac,b,ab aa b最好情况做2次关系运算2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第50页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:truefalsetruetrue
22、truefalsefalsefalsefalsetruea b?b c?a c?c,a,ba,c,ba,b,ca c?b c?b,a,cb,c,ac,b,ab aa b#include using namespace std;int main()int a,b,c;cout a b c;if (a b)if (b c)cout a b c endl;else if (a c)cout a c b endl;else cout c a b endl;else if (a c)cout b a c endl;else if (b c)cout b c a endl;else cout c b a
23、endl;return 0;注意if else 的匹配2.1.1 i f 语 句3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套第51页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:2.1.1 i f 语 句truefalsetruetruetruefalsefalsefalsefalsetruea b?b c?a c?c,a,ba,c,ba,b,ca c?b c?b,a,cb,c,ac,b,ab aa b3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套#include using namespace std;int main()int a,b,
24、c;cout a b c;if (a b)if (b c)cout a b c endl;else if (a c)cout a c b endl;else cout c a b endl;else if (a c)cout b a c endl;else if (b c)cout b c a endl;else cout c b a endl;return 0;第52页/共97页例 3-2 输入三个整数,按从小到大顺序输出。解法二 改变输出顺序:2.1.1 i f 语 句truefalsetruetruetruefalsefalsefalsefalsetruea b?b c?a c?c,a,
25、ba,c,ba,b,ca c?b c?b,a,cb,c,ac,b,ab aa b3.7.2 if 3.7.2 if 语句的嵌套语句的嵌套#include using namespace std;int main()int a,b,c;cout a b c;if (a b)if (b c)cout a b c endl;else if (a c)cout a c b endl;else cout c a b endl;else if (a c)cout b a c endl;else if (b c)cout b c a endl;else cout c b a endl;return 0;第5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 初步设计
限制150内