第3章 三种控制结构程序设计
合集下载
第3章 结构化程序设计

循环体
是 P2 否
图3.7直到型循环结构示意图 直到型循环结构示意图
3.3 表述算法
• 通常用自然语言、计算机语言(代码)、伪代码[1]、传统流程图、 通常用自然语言、计算机语言(代码)、伪代码 、传统流程图、 )、伪代码 N-S流程图、PAD图等不同的方法来描述算法。 流程图、 图等不同的方法来描述算法。 流程图 图等不同的方法来描述算法 • 在例 中,采用了自然语言来表示算法。自然语言就是人们日常使 在例3.1中 采用了自然语言来表示算法。 用的语言,可以是汉语、英语,或其他语言。 用的语言,可以是汉语、英语,或其他语言。用自然语言表示算法通 俗易懂,但文字冗长,容易出现歧义性。自然语言表示的含义往往不 俗易懂,但文字冗长,容易出现歧义性。 太严格,要根据上下文才能判断其正确含义。此外, 太严格,要根据上下文才能判断其正确含义。此外,用自然语言来描 述包含分支和循环的算法,很不方便。因此, 述包含分支和循环的算法,很不方便。因此,除了那些很简单的问题 以外,一般不用自然语言描述算法。 以外,一般不用自然语言描述算法。 • [1] 伪代码是介于自然语言与计算机语言之间的文字符号。一般借助 伪代码是介于自然语言与计算机语言之间的文字符号。 一种高级语言的控制结构,而中间的操作用自然语言描述。 一种高级语言的控制结构,而中间的操作用自然语言描述。
P1 是 循环体
否
• 图3.6当型循环结构示意图 当型循环结构示意图
(2)直到型循环的执行过程为: )直到型循环的执行过程为: • 先执行循环体一次,然后判断控制循环的条件。 先执行循环体一次,然后判断控制循环的条件。 • 条件 成立,则继续上述循环体,直到条件不成立时,结束循环。 条件P2成立,则继续上述循环体,直到条件不成立时,结束循环。 成立
C语言程序设计框图

第3章 控制结构
说明:
switch后面的表达式的值类型可以是整型、字符型或枚 举型。 当表达式的值与某个case中的常量表达式的值相等时, 就执行相应的case后的语句序列,直到遇到break语句或到 达switch结构末尾。 多个连续的case语句可以共用一个语句序列。 case 后的不同常量表达式的值不能相等。 break的作用是改变程序在switch结构中的执行流程, 将程序流程跳出switch语句,转到switch语句后的下一条语 句去执行。 switch语句中允许嵌套switch语句。
C语言程序设计电子教案
3.1 程序结构框图
3.1.3 N-S图
3种基本结构的N-S图
第3章 控制结构
顺序结构: 分支结构:
它是按照语句 它是根据给定条件
出现的先后顺 进行判断,选择其
序依次执行的 中的一个分支执行
。如上图所示 ,先执行A模 块,再执行B
。如上图所示,P 表示条件,当P成 立时执行分支A模 块,否则执行分支
复合语句:由一对大括号括起来的一条或多条语句。
被括起来的语句可以是这4类的任何一类语句,常用于函数
体或循环体。
C语言程序设计电子教案
3.2 二分支结构
3.2.1 二分支if语句
第3章 控制结构
基本形式:
if (表达式) 语句1;
else 语句2;
真(非0)表达式
假 (0)
语句1
语句2
例如: if(x>y)
C语言程序设计电子教案
第3章 控制结构
第3章 控制结构
返回总目录
C语言程序设计电子教案
目录
3.1 程序结构框图 3.2 二分支结构 3.3 多分支结构 3.4 循环结构 3.5 break与continue语句 3.6
第3章-2_程序的控制结构

22
#include<stdio.h> #include<math.h> void main() { float x,y; printf("please input x:\n”); scanf("%f”,&x); if(x<0) y=fabs(x); else if(x<2) y=sqrt(x+1); else if(x<4) y=pow(x+2,3); else y=2*x+5;
2012-8-11 24
switch
多路选择
switch (表达式) { case 常数1: 语句序列1; 语句序列1; case 常数2: 语句序列2; 语句序列2; ………… default: 语句序列n; 语句序列3; } default可以没有,但最好不省略 不要忘记break
25
2012-8-11
4
如何设计结构化的程序?
Top-down, Stepwise refinement 自顶向下、逐步求精 1971年,wirth提出的结构化程序设计方法 – 先全局后局部 – 先整体后细节 – 先抽象后具体
2012-8-11
5
自顶向下、逐步求精的 结构化程序设计方法
A11
有穷性 – 在合理的时间内完成 确定性,无歧义 – 如果x≥0,则输出Yes;如果x≤0,则输出No; 有效性 – 能有效执行 – 负数开平方 没有输入或有多个输入 有一个或多个输出
2012-8-11 8
算法的分类
数值运算算法: –解决求数值解问题 非数值运算算法: –需要用分析推理、逻辑推理才能解决的问题 –例如人工智能中的许多问题,查找、分类等
C语言程序设计第3章选择结构程序设计

√
!注意 if 与 else 的配对关
系,else总是与它上面最近 的未配对的 if 配对,若if与 else 的数目不一致,可以加 { }来确定配对关系。
整理课件
例:有一函数
y=
-1 0
(x<0) 输入X值,输出Y值。 (x=0)
1 (x>0)
main( ) { int x, y; scanf("%d",&x);
if (x<0) y= -1; else if (x= =0) y=0;
if(x<=0)
else y=1;
if (x= =0) y=0; y= -1;
else y=-1;
if (x>=0)
eplrsientfy(="1x;=%d,y=%d\n{"i,xf ,(yx)>;0) y=1; }
}
else y=0;
整理课件
程序设计基本步骤
定义变量 产生数据 数据处理、计算 输出结果
整理课件
√
程序举例
编程1:判断某一年是否闰年。 能被4整除但不能被100整除的是闰年; 能被400整除的是闰年。
main( ) { int y; scanf("%d",&y);
if ((y%4==0&&y%100!=0)||(y%400==0)) printf("yes\n",y);
}
15 x 30 30 x 100 100 x 200 其它
整理课件
读程序段
m,n,x,y,z均为整型变量,求执行完该段 程序后各变量的值。
m=10;n=5;
x=(--m==n++)?--m:++n;
C语言高教版第3版第三章三种基本控制结构上课件

„a‟<‘b‟ <‘c‟
关系表达式的值是一个逻辑值,即 【例2.18】判断以下关系表达式的值。 • “真”或“假”。 当 a = 3, b = 2, c = 1,请判断表达式的值 C语言没有逻辑型数据,以1代表“真”, 1. a > b 以“0”代表“假”。 1
2. (a > b) == c
只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值
例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d)
结果m=0,n=1
【例】逻辑表达式的短路特性。例
复杂逻辑条件的表述
• 判断某一年year是否为闰年 1. 闰年 (year%4==0 && year%100!=0)||(year%400==0)
! 优先级:第2级 结合方向:自右向左
&&
||
优先级:第11级 结合方向:自左向右
优先级:第12级 结合方向:自左向右 /* 等价于(a<=x) && (x<=b)*/ /* 等价于(a>b)&&(x>y) */ /* 等价于 (a==b)||(x==y) */ /* 等价于(!a)||(a>b) */
有一个或多个输出
二、算法的描述工具
自然语言
(通俗易懂, 文字冗长, 容易有“歧义性”)
流程图
(灵活, 自由, 形象, 直观, 易理解, 占篇幅大)
N-S图
(新型流程图, 简洁)
伪代码
(介于自然语言和计算机语言之间, 中英文皆可,格式 自由, 易修改, 不直观, 不容易发现逻辑错误)
计算机语言
(用计算机实现算法, 可以执行出结果, 比如 C 语言)
结构化程序设计的三种基本结构

第3章 结构化程序设计的三种 基本结构
结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:
结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:
Python程序设计第3章+程序控制结构

3.1 程序的基本结构
图3-1 流程图的7种基本元素
3.2 顺序结构
顺序结构是程序的基础,是程序设计中最简单的,只要按照解决问题的 顺序写出相应的语句就可以。它的执行从上而下,依次执行,如图3-2所示。
图3-2 顺序结构的流程图
【例3.1】计算军犬速度
军犬的耐力是非常有名的。有关资料 显示,第一次世界大战期间为传达命令, 一只军犬50分钟跑完了21.7km的路程。算 一算,这只军犬平均每分跑多少米?
3.5 实例:控制结构灵活运用
3.5.2 猜数字游戏
【例3.7】编写猜数字游戏程序。
#猜数字游戏 import random x=random.randint(1,10) for i in range(1,4):
m=eval(input("请输入一个整数:")) if x == m:
print("恭喜,猜对了,一共猜了{}次".format(i)) break elif m<x: print("猜小了") else: print("猜大了") if i == 3: print("游戏结束")
根据会员情况,输出最后应付的金额。
#不同消费者买单3 #会员编号(2:金卡会员,1:普通会员,其他:非会员) #不同的会员消费者买单 consume=eval(input(“请输入消费额:”)) flag=int(input(“请输入会员编号:”)) if flag == 2:
consume *= 0.9 elif flag ==1:
consume *= 0.95 else:
consume *= 0.99 print("用户应付费: {:.2f}".format(consume))
等考二级python程序的控制结构

多分支结构: if-elif-else语句
Python的if-elif-else描述多分支结构,语句格式 如下:
if <条件1>: <语句块1>
elif <条件2>: <语句块2>
... else:
<语句块N>
多分支结构: if-elif-else语句
多分支结构通常用于判断同一个条件或一类条件的 多个执行路径。要注意,Python会按照多分支结构 的代码顺序依次评估判断条件,寻找并执行第一个 结果为True条件对应的语句块,当前语句块执行后 跳过整个if-elif-else结构。
无限循环: while
1 s, idx = "PY", 0
2 while idx < len(s):
3
print("循环执行中: " + s[idx])
4
idx += 1
5 else:
6
s = "循环正常结束"
7 print(s)
>>> 循环执行中: P 循环执行中: Y 循环正常结束
循环控制: break和continue
单分支结构: if语句
1 # 判断用户输入数字的奇偶性 2 s = eval(input("请输出一个整数:"))
3 if s % 2 == 0:
4
print("这是个偶数")
5 print("输入数字是:", s)
<条件>是一个或多个条件,多个条件间采用and或or进 行逻辑组合。and表示多个条件“与”的关系,or表示 多个条件“或”的关系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1 算法及算法的表示
开始 输入A Max =A N=1
输入A Max=A, N=1
当N<10
N
输入A
N<10
Y
再输入给A
N
A>Max
Y
Max =A N=N+1
N
A>Max
3.1 算法及算法的表示
开始
从10
N<10
Y
再输入给A
N
N
A>Max
Y
Max =A
打印Max
N=N+1
结束
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
3.1 算法及算法的表示
(3)循环结构
a) 当型循环 当条件成立 语句组 语句组 直到当条件成立 (a) (b) b) 直到循环
例: 画出从10个数中选出最大的数的N—S 流程图
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
狭义地讲:算法是解决一个问题采取的方法和步骤的描述。 下面通过两个简单的例子加以说明:
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
例3.1 输入三个数,然后输出其中最大的数。 将三个数依次输入到变量A、B、C中,设变量MAX存放
第3章 三种基本结构程序设计
本章内容及要求:
(1)了解算法概念及表示,掌握用N—S流程图表示算法;
( 2)熟练掌握赋值语句、输入/输出消息框函数的使用;
( 3)熟练掌握行if语句、块if结构、Select Case情况选 择结构有使用,掌握选择的嵌套结构;
(4)熟练掌握实现循环结构的For/Next循环结构及Exit For语句、Do/Loop循环结构的使用,掌握多重循环;
3.1.4 用N—S流程图表示算法
将全部算法写在一个矩形框内,在矩形内还可包含其 它从属于它的框
三种基本结构的N—S图表示:
1、顺序结构 语句A 语句B 2、选择结构
Y
语句A
条件
N
语句B
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
例3.2 输入10个数,打印输出其中最大的数。 算法设计如下: ( 1)输入 1个数 , 存入变量 A 中 ,将记录数据个数的变量 N赋 值为1,即N=1 (2)将A存入表示最大值的变量Max中,即Max=A ( 3 )再输入一个值给 A ,如果 A>Max 则 Max=A, 否则 Max不变 (4)让记录数据个数的变量增加1,即N=N+1 (5)判断N是否小于10,若成立则转到第(3)步执行,否 则转到第(6)步 (6)打印输出max
语句1 语句2
Y 语句1
条件
N 语句2
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
(3)循环结构
a) 当型循环 N b) 直到循环
条件 Y 语句组
语句组
Y 条件 N
(a) 目录
(b)
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
二 用传统流程图表示算法
1、传统流程图中的基本符号
起止框 I/O框 判断框
处理框
流程线
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
2、三种基本结构的表示
(1)顺序结构 (2)选择结构
3.1 算法及算法的表示
3.1.3 算法的表示
一、自然语言与伪代码表示算法 自然语言:就是指人们日常使用的语言,可以是汉语、英 语或其它语言。
伪代码:是用介于自然语言和计算机语言之间的文字和符
号(包括数学符号)来描述算法。
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
最大数。其算法如下:
1) 输入A、B、C。
2) A与B中大的一个放入MAX中。
3) 把C与MAX中大的一个放入MAX中。 4) 输出MAX,MAX即为最大数。
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
3.1 算法及算法的表示
三种基本结构的特点:
(1)只有一个入口 (2)只有一个出口 (3)不存在死语句
(4)不存在死循环
例: 例3.2输入10个数,打印输出其中的最大的数的流程图
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示 3.1.2 算法的特性
1 有穷性
2 确定性 3 有0个或多个输入 4 有一个或多个输出 5 有效性
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
例如:例3.1可用如下的伪代码表示 Begin(算法开始)
输入 A,B,C
IF A>B 则 A→Max 否则 IF C>Max Print Max B→Max 则 C→Max
End (算法结束)
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
(5)能够运用3种结构进行综合程序设计。
重点:选择结构及循环结构的实现及其应用 难点:算法设计、选择的嵌套及多重循环结构
目录
3.1浙江科技学院教信系计算机基础教学网站: 3.2 3.3 3.4 3.5 3.6 作业
3.1 算法及算法的表示
3.1.1 算法概述
什么是算法:
广义地讲:算法是为完成一项任务所应当遵循的一步一 步的规则的、精确的、无歧义的描述,它的总步数是有限的。