第4章 程序控制结构

合集下载

Python程序设计 实验报告 第4章 程序控制结构的应用

Python程序设计 实验报告 第4章 程序控制结构的应用

实验4程序控制结构的应用[实验目的]•了解程序的基本结构;•掌握分支结构的类型和使用方法;•掌握循环结构的类型和使用方法;•理解程序设计的流程控制语句;•掌握循环语句的结构特点;•具备使用循环结构并能够完成简单编程的能力。

要求:所有操作结果均以截图的形式保存,截取的图上尽可能的出现自己的个人信息。

[实验设备]PC机一台;Pycharm;Win7/11操作系统。

[实验任务]任务4-1判断奇偶数任务4-2鸡兔同笼的问题任务4-3输出美元符号($)阵列任务4-4继续嵌套循环任务4-5输出IOO以内的素数任务4-6求1-2+3-4+5...99的所有数的和[实验流程]任务4・1判断奇偶数【任务需求】编写一个程序,判断输入的整数,利用流程分支语句去判断是奇数还是偶数,按编程顺序进行编写。

【任务完成效果图】请按照任务需求将完成的效果图放在下方。

任务4-2鸡兔同笼的问题【任务需求】一个笼子中有鸡X只,兔y只,使用a和b定义鸡和兔子的头和脚,求鸡兔各有几只,运用关系式判断鸡的数量和兔子的数量如果f1ag=1则成立,如果f1ag=O则输出错误(使用for循环解决)。

【任务完成效果图】请按照任务需求将完成的效果图放在下方。

任务4-3输出美元符号($)阵列【任务需求】分别使用for循环和使用whi1e循环,运用range函数设置循环的次数,输出每次i+1后的$号,接着按要求进行程序编写。

【任务完成效果图】请按照任务需求将完成的效果图放在下方。

任务4-4继续嵌套循环【任务需求】某课程的百分之分数m,将其变换为5分制(优、良、中、及格、不及格)的评定等级grade,评定条件以下:优:m>=90>良:80<=m<90>中:70<=m<80>及格:60<=m<70.不及格:m<60,首先创建以对象名为“m”,接着按要求进行程序编写。

【任务完成效果图】请按照任务需求将完成的效果图放在下方。

第4章 C语言程序的基本控制结构

第4章 C语言程序的基本控制结构

#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B

表达 式

条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)

第4章程序的控制结构.ppt

第4章程序的控制结构.ppt


输出depoist
结束
2020/2/7
16
C语言大学实用教程 #include <math.h>
()
#include <stdio.h>
3
main()
根{

int n;

double rate=0.0225;

double capital,deposit;

printf("please enter year,capital:");
【例】
{
int a, b, max; 表达式1 ? 表达式2 : 表达式3
printf("Input a, b:"); scanf("%d,%d", &a, &b);
} if (a > b) max = a; else
max = b;
max = a > b ? a : b;
printf("max = %d", max);

scanf("%d%lf",&n,&capital);

deposit=capital*pow(1+rate,n);
printf("deposit=%lf\n",deposit);
}
2020/2/7
17
C语言大学实用教程
简单的C程序结构框架
以#开始的编译预处理命令
main()
{ 局部变量说明语句;
2020/2/7
34
C语言大学实用教程
使用 if 语句需注意事项
(1)条件判断表达式一定用圆括号括起。 (2)复合语句必须用{}引起。 (3)每一个else必须与一个if项匹配。 (4)else总是与离它最近的if 相匹配。

《面向对象程序设计》课件——第四章 程序流程控制

《面向对象程序设计》课件——第四章 程序流程控制

请输入一个百分制成绩: 80 对应的五分制成绩是: B
4、判断条件及组合
判断条件及组合
分支结构中的判断条件可以使用任何能够产生True或False的 语句或函数。 形成判断条件最常见的方式是采用关系操作符。
判断条件及组合
>>> 4 < 5 True >>> 0 == False True >>> "" == True False
# 判断用户输入数字的某个属性 s = eval(input("请输入一个整数: "))
if s %3 ==0 and s % 5 == 0: print("这个数字既能被3整除, 又能被5整除")
print("输入数字是: ", s)
>>> 请输入一个整数: 123 输入数字是: 123
>>> 请输入一个整数: 150 这个数字既能被3整除,又 能被5整除 输入数字是: 150
1 遍历循环: for 2 无限循环: while 3 循环控制: break和continue
1、遍历循环: for
遍历循环: for
✓ 根据循环执行次数的确定性,循环可以分为确定次 数循环和非确定次数循环。
✓ 确定次数循环指循环体对循环次数有明确的定义, 循环次数采用遍历结构中元素个数来体现。 Python通过保留字for实现“遍历循环” 。
1.Python分支结构
目录
1 单分支结构: if 2 二分支结构: if-else 3 多分支结构: if-elif-else 4 判断条件及组合
1、单分支结构: if
单分支结构: if Python的单分支结构使用if保留字对条件进行判断。

06-第4章 程序控制结构与算法基础-2 苏州大学VB

06-第4章 程序控制结构与算法基础-2 苏州大学VB
用简单分支语句: 用简单分支语句: IF e1 THEN A1 ELSE IF e2 THEN A2 ELSE IF e3 THEN A3 ELSE A4 ENDIF ENDIF ENDIF 用多分支IF语句: 用多分支 语句: 语句 IF e1 THEN A1 ELSE IF e2 THEN A2 ELSE IF e3 THEN A3 ELSE A4 ENDIF
第4章 章 程序控制结构与算法基础 (二)
苏州大学计算机学院 陈建明 jmchen@
1
主要内容
1. 分支结构与分支语句(2) 分支结构与分支语句( ) 2. 循环结构与循环语句(2) 循环结构与循环语句( ) 3. Print方法 方法
2
1 分支结构及分支语句 分支结构及分支语句(2)
4
1 分支结构及分支语句 分支结构及分支语句(2)
• 多分支结构 多分支结构(1)—用IF语句,并列使用、嵌套使用 用 语句 并列使用、 语句,
T e1 e2 T A1 A2 F F
e3 T A3
F
A4
并列结构: 并列结构: IF e1 and e2 THEN A1 ENDIF IF e1 and not e2 THEN A2 ENDIF IF not e1 and e2 THEN A3 ENDIF IF not e1 and not e2 THEN A4 ENDIF
• 循环的嵌套
– 循环体中又出现了循环语句,称为循环嵌套、多重循环 循环体中又出现了循环语句,称为循环嵌套 循环嵌套、 – 外面的循环称外循环,里面的称内循环 外面的循环称外循环, – 使用时,内外循环的循环控制变量名不能相同,且相互 使用时,内外循环的循环控制变量名不能相同, 独立
e1
条件e F T 循环体

第4章VisualBasic程序控制结构

第4章VisualBasic程序控制结构
Private Sub Form_Click() Dim L As Single, s As Single,v As Single r = 1.8: h = 4 Const pi = 3.14159 L = 2 * pi * r s = pi * r * r v=s*h Print "圆周长="; Format(L, "0.000") Print "圆面积="; Format(s, "#.###") Print "圆柱的体积="; Format(v, "#.###") End Sub
4.1.3注释语句
为了提高程序的可读性,通常应在程序的适当位置加上必要的注释,
Visual Basic中的注释是“Rem”或“’”,一般格式为:
Rem

例如:Rem 交换变量a和b的值
c = a ´c
a = b:b = c
说明:
注释语句是非执行语句,仅对程序的有关内容起注释作用,它不
被解释和编译,但在程序清单中能被完整地列出。
赋值语句是在任何程序设计中最基本、最常用的语句。 它的作用是把计算右边表达式的运算结果赋值给左端的变量,Visual Basic使用赋值号“=”来赋值。
格式: [Let] 变量名=表达式 [Let] [<对象名.>]<属性名>=<表达式> 其中:Let表示赋值语句的关键字,通常可以省略。 功能:赋值语句具有计算和赋值的双重功能,它首先计算右端 的表达式,并把结果赋值给左边的变量,Visual Basic使用赋值号“=” 来赋值。 表达式:其类型应与变量名的类型一致,即同时为数值型或同 时为字符型等等。当两边同为数值型,但精度不同时,强制转换成 左边的精度,然后赋值。

程序控制结构

程序控制结构

4.2.4 switch 语句 switch 语句也称情况语句,其实也是一种多分支语句,其 说明语句的一般形式为: switch (<表达式>) { case<常量表达式1>; <语句1>;break; case<常量表达式2; <语句2>;break; … case<常量表达式n>; <语句n>;break; Default; <语句n+1>;break; }
在使用switch语句时应注意以下几点: 1.若case后面没有break语句,则程序将顺序执行后面的语句 ,直到switch语句结束,这样就不能实现多分支选择。 2.switch语句只能对表达式的结果是否为固定的值进行判断, 而不能对表达式的取值为某一范围的情况进行判断,这与多 重if...case语句有所不同 3.每个常量表达式的值不能相同,case语句的排列顺序不影 响执行结果。 对于不同的的介绍,可根据实际情况选择适当的分支语句 实现选择结构的功能。一般来说,应尽量使用可读性强的语 句.
注: if…else 语句一般用于两种情况,一,根据语句的是否满 足条件而分别执行不同的程序段,其二在进行不同的操作情况 下。
4.2.3 多重 if…else语句
多重 if…else语句为多分支条件语句,或者if…ese if …else 语句。
其说明语句的一般形式为:
If (<表达式>) <语句1>; else if (<表达式>) <语句2>; … else if (<表达式>) <语句n>; else //注意,else没有表达式 <语句n+1>; 作用:首先判断表达式1,如果它为false,接着判断表达式2,以此类 推。直到找到一个true的条件就执行相应的语句块,执行后跳出该 语句。如果所有条件都不是,则执行else语句块。

第04章 程序的控制结构

第04章 程序的控制结构

第 4 章
程序的控制结构
计算机中的问题求解过程
Example :银行定期存款 已知年利率rate,存款期为n年,本金为capital,n年后得 到的本利之和是多少?
Input
• 存款年数 • 本金 •利率
Process
deposit = capital* (1+rate)n
Output
deposit
Page 3
C语言程序设计
第 4 章
程序的控制结构
算法的概念及其描述方法
一个程序应包括两个方面的内容:

对数据的描述:数据结构(data structure) 对操作的描述:算法(algorithm)
著名计算机科学家沃思提出一个公式:
数据结构 + 算法 = 程序
计算机中的算法( Algorithm )
}
_ 15 Input a,b: 20
没有输入或有多个输入 有一个或多个输出
计算机与信息工程学院
Page 5
C语言程序设计
第 4 章
程序的控制结构
算法的描述方法
自然语言描述
传统流程图(Flowchart)

在1966年,Bohra 与 Jacopini 提出
N-S结构化流程图

1973年,美国学者I.Nassi 和 B.Shneiderman 提 出
为解决一个具体问题而采取的确定的有限的操作
步骤,仅指计算机能执行的算法。
计算机与信息工程学院
Page 4
C语言程序设计
第 4 章
程序的控制结构
算法的特性
有穷性 在合理的时间内完成 确定性,无歧义

ZCC4

ZCC4

第四章
程序控制结构
【例4-3】求两个数中的最大值。
main() { int a,b,max; printf("\n input two numbers: "); scanf("%d%d",&a,&b); max=a; if (max<b) max=b; printf("max=%d",max); }
C语言程序设计
第四章
程序控制结构
4.3选择结构
4.3.1 if语句
expr =0
if语句(条件选择语句)
非0 if语句的三种形式 statement 形式一: 格式:if (expression) statement 执行过程: 例:if (x>y) 形式二: printf(“%d”,x); =0 非0 expr 格式:if (expression) statement1 statement1 statement2 else statement2 执行过程: 例:if (x>y) max=x;
I/O特性:有0个或多个输入;一个或多个输出。
有效性 :算法中每一个步骤都应当能有效的执行,并得到确定 的结果。
C语言程序设计
第四章
程序控制结构
4.1.2 算法的描述方法 顺序结构使得语言按先后顺序执行;选择结构使程序 能进行逻辑判断,在满足条件时转去执行相应的语句;循环 结构则使单调的重复运算变得简单明了。因此,在结构化程 序设计中,顺序、选择和循环3种基本结构能组成任何结构 的算法。 算法的多种描述方法 1.流程图 流程图又叫程序框图,是一种用图形来表示算法的描 述方法。它通过指定的几何框图和流程线来描述各步骤的 操作和执行过程。

程序的控制结构

程序的控制结构

第四章VB程序的控制结构4.1算法概论1.算法的概念算法:指用计算机解决某一问题的方法和步骤。

数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。

非数值算法:用于对非数值信息进行查找、排序等。

2.算法的特征(1)确定性:指算法的每个步骤都应确切无误,没有歧义。

(2)可行性:指算法的每个步骤必须是计算机能够有效执行、可以实现的,并可得到确定的结果。

(3)有穷性:指一个算法应该在有限的时间和步骤内可以执行完毕的。

(4)输入性:指一个算法可以有0或多个输入数据。

(5)输出性:指一个算法必须有一个或多个输出结果。

3.算法的评价主要评价指标是:算法是否正确、运行的效率、占用系统资源的多少。

4.算法的描述一般常用流程框图来描述算法。

5.基本算法结构“结构化程序设计方法”规定算法有三种基本结构:顺序结构、选择结构和循环结构6.算法示例(1)欧几里德算法——求两个自然数的最大公约数(2)顺序查找算法——在N个字符串集合中,查找有无特定的字符串存在4.2顺序结构1.赋值语句赋值语句是任何程序设计中最基本的语句,赋值语句都时顺序执行的。

赋值语句的形式为:变量名= 表达式它的作用是计算右边表达式的值,然后赋给左边的变量,表达式的类型应该与变量名的类型一致。

2. 使用说明(1)当表达式为数值型而与变量精度不同时,强制转换成左边变量的精度;(2)当表达式是数字字符串,左边变量是数值类型,自动转换成数值类型再赋值,但当表达式中有非数字字符或空串,则出错。

(3)任何非字符类型赋值给字符类型,自动转换为字符类型;(4)当逻辑型赋值给数值型时,T rue转换为-1,Fa ls e转换为0;反之,非0转换为Tru e,0转换为F a ls e;(5)赋值号左边的变量只能是变量,不能是常量、常数符号、表达式,否则报错;(6)不能在一句赋值语句中,同时给各变量赋值;(7)在条件表达式中出现的=是等号,系统会根据=号的位置,自动判断是否为赋值号;(8)注意N=N+1 是累加中常见的赋值语句,表示将N变量中的值加1后再赋值给N。

第四章结构化程序设计控制结构

第四章结构化程序设计控制结构


PRINT*,‘X1=’,X1,’,X2=’,X2

40 RETURN
• END SUBROUTINE
3. IF 块
IF 块的构造形式为:

IF condition THEN

block1

[ELSE

blockE]

END IF
其中,condition是一个逻辑表达式,其结果不外乎真或假。 block1 和 blockE是语句块,当条件为真,block1 被执行; 否则,blockE 被执行。ELSE 块是可选的。

[CASE DEFAULT

blockD]

END SELECT
其中expr 必须是整型、字符型或者逻辑型变量。Selector 可以是同一类型, 非交叉的值或值范围(:用来规定值的范围)的列表。用CASE块统计 学生得分如下:
SELECT CASE ( INT(Final))

CASE (90:)

case default

PRINT*,‘Consonant’

END SELECT

ELSE

PRINT*,‘Something else’
CASE块的构造形式为:

SELECT CASE (expr)

CASE (selector1)

block1

CASE (selector2)

block2

D=D+1

ELSE

F=F+1

END IF
程序执行一旦发现某个逻辑条件为真,就不会再去判断其他

第4章程序的控制结构PPT课件

第4章程序的控制结构PPT课件

{
语句;
表达式3;
}
22
注意
在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循
环体)
while (i < 100); i++;
for (i = 0; i < 100; i++); printf("%d", i);
for通常ቤተ መጻሕፍቲ ባይዱ一个循环变量控制循环的次数,不 要在循环体内改变这个变量
else部分可以没有。 if (表达式) 语句1; 语句3
当表达式值为0时,直接执行语句3
if-else嵌套使用时,注意else和谁配对的问 15
else-if
if的一种扩展形式
if (表达式) 语句1;
else if (表达式) 语句2;
else if (表达式) 语句3;
…………
else
}
20
while
while (表达式) { 语句; }
只要表达式的值为非0,就重复执行语句, 直到表达式值为0时止
21
fforor(表达式1; 表达式2; 表达式3)
{ 语句;
} 首先执行表达式1。如果表达式2的值为非0,
就重复执行语句和表达式3,直到表达式2的值 为0时止
相当于: 表达式1; while (表达式2)
用3种方法编程:
算法1:用不带else子句的if语句编程
17
switch
多路选择 switch (表达式)
{ case 常数1: 语句序列1; case 常数2: 语句序列2; ………… default: 语句序列3;
}
default可以没有,但最好不省略
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 示例4-2 编写代码,模拟决赛现场最终成绩的计算过程。
while True: try: n = int(input('请输入评委人数:')) if n <= 2: print('评委人数太少,必须多于2个人。') else: break except: pass
scores = []
16
4.4 精彩案例赏析
(1)关系运算符
Python中的关系运算符可以连续使用,这样不仅可以减少代码量,也比较符合 人类的思维方式。
>>> print(1<2<3) True >>> print(1<2>3) False >>> print(1<3>2) True
#等价于1<2 and 2<3
3
4.1 条件表达式
• 在Python语法中,条件表达式中不允许使用赋值运算符“=”。
5
4.2 选择结构
• 单分支选择结构 • 双分支选择结构 • 多分支选择结构 • 嵌套的分支结构
6
4.2.1 单分支选择结构
if 表达式: 语句块
条件表达式是否成立?

语句块 否
7
4.2.2 双分支选择结构
if 表达式: 语句块1
else: 语句块2
条件表达式是否成立?
否 是
语句块2
语句块1
8
if flag.lower() not in ('yes', 'no'): #限定用户输入内容必须为yes或no
print('只能输入yes或no')
else:
break
if flag.lower()=='no':
break
print(sum(numbers)/len(numbers))
15
4.4 精彩案例赏析
14
4.4 精彩案例赏析
numbers = []
#使用列表存放临时数据
while True:
x = input('请输入一个成绩:')
try:
#异常处理结构
numbers.append(float(x))
except:
print('不是合法成绩')
while True:
flag = input('继续输入吗?(yes/no)')
for i in range(n): #这个while循环用来保证用户必须输入0到100之间的数字 while True: try: score = input('请输入第{0}个评委的分数:'.format(i+1)) #把字符串转换为实数 score = float(score) assert 0<=score<=100 scores.append(score) #如果数据合法,跳出while循环,继续输入下一个评委的分数 break except: print('分数错误')
>>> if a=3: SyntaxError: invalid syntax >>> if (a=3) and (b=4): SyntaxError: invalid syntax
#条件表达式中不允许使用赋值运算符
4
4.1 条件表达式
(2)逻辑运算符 逻辑运算符and和or具有短路求值或惰性求值的特点,可能不会对所有表达式 进行求值,而是只计算必须计算的表达式的值。
第4章 程序控制结构
董付国 微信公众号:Python小屋
1
4.1 条件表达式
• 在选择和循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、 空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或 其他空迭代对象,Python解释器均认为与True等价。
2
4.1 条件表达式
4.2.3 多分支选择结构
if 表达式1: 语句块1
elif 表达式2: 语句块2
elif 表达式3: 语句块3
else: 语句块4
其中,关键字elif是else if的缩写。
9
4.2.4 选择结构的嵌套
if 表达式1: 语句块1 if 表达式2: 语句块2 else: 语句块3
else: if 表达式4: 语句块4
17
4.4 精彩案例赏析
#计算并删除最高分与最低分 highest = max(scores) lowest = min(scores) scores.remove(highest) scores.remove(lowest) finalScore = round(sum(scores)/len(scores),2) formatter = '去掉一个最高分{0}\n去掉一个最低分{1}\n最后得分{2}' print(formatter.format(highest, lowest, finalScore))
12
4.3.2 break与continue语句
• 一旦break语句被执行,将使得break语句所属层次的循环提前结束; • continue语句的作用是提前结束本次循环,忽略continue之后的所有语句,提
前进入下一次循环。
13
4.4 精彩案例赏析
• 示例4-1 输入若干个成绩,求所有成绩的平均分。每输入一个成绩后询问是 否继续输入下一个成绩,回答“yes”就继续输入下一个成绩,回答“no” 就停止输入成绩。
注意:缩进必须要正确并且一致。
பைடு நூலகம்10
4.3 循环结构
• for循环 • while循环
11
4.3.1 for循环与while循环
• 两种循环结构的完整语法形式分别为:
while 条件表达式: 循环体
[else: else子句代码块]

for 取值 in 序列或迭代对象: 循环体
[else: else子句代码块]
18
相关文档
最新文档