第4章 循环结构 程序设计 本章主讲 赵家刚、李俊萩 计算机编程导论.

Slides:



Advertisements
Similar presentations
质数和合数 中心小学 顾禹 人教版小学五年级数学下册 一、激趣导入 提示:密码是一个三位 数,它既是一个偶数, 又是 5 的倍数;最高位是 9 的最大因数;中间一位 是最小的质数。你能打 开密码锁吗?
Advertisements

1 、谁能说说什么是因数? 在整数范围内( 0 除外),如果甲数 能被乙数整除,我们就说甲数是乙数的 倍数,乙数是甲数的因数。 如: 12÷4=3 4 就是 12 的因数 2 、回顾一下,我们认识的自然数可以分 成几类? 3 、其实自然数还有一种新的分类方法, 你知道吗?这就是我们今天这节课的学.
因数与倍数 2 、 5 的倍数的特征
摆一摆,想一想. 棋子个数数的个数 摆出的数 、 10 2 、 11 、 20 3 、 12 、 21 、 30 4 、 13 、 22 、 31 、 40 5 、 14 、 23 、 32 、 41 、
3 的倍数特征 抢三十

3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
因数与倍数 2 、 5 的倍数的特征 绿色圃中小学教育网 扶余市蔡家沟镇中心小学 雷可心.
2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
2 、 5 的倍数的特征 玉田百姓. 1 、在 2 、 3 、 5 、 8 、 10 、 12 、 25 、 40 这几个数中, 40 的因数有几个? 5 的倍数有几个? 复习: 2 、在 6 、 10 、 12 、 15 、 18 、 20 这几个数中,哪些数 是 2 的倍数?哪些数是 5 的倍数?
因数与倍数 2 、 5 、 3 的倍数的特 征 新人教版五年级数学下册 执教者:佛山市高明区明城镇明城小学 谭道芬.
冀教版四年级数学上册 本节课我们主要来学习 2 、 3 、 5 的倍数特征,同学们要注意观察 和总结规律,掌握 2 、 3 、 5 的倍 数分别有什么特点,并且能够按 要求找出符合条件的数。
2 , 5 的倍数的特征. 我们可以先写出几个 5 的 倍数来看看。 对,先研究小范围的数, 再进行推广验证。
2 、 5 的倍数的特征. 目标 重点 难点 关键词 2 、 5 的倍数的特征 1 、发现 2 和 5 的倍数的特征。 2 、知道什么是奇数和偶数。 能判断一个数是不是 2 或 5 的倍数。 能判断一个数是奇数还是偶数。 奇数、偶数。 返回返回 目录目录 前进前进.
新人教版四年级数学上册 笔算除法 森村中心学校 江国飞 1 、口算。 360÷30= 840÷40= 200÷50= 270÷90= 40÷20= ÷40=3600÷19≈30 90÷30=3 900÷31≈30.
重庆市九龙坡区走马小学 邓华. 一、复习导入,揭示课题 下面哪些数是 2 的倍数?哪些数是 5 的倍数? 2,5的倍数的特征:只看个位上数就能进行判断。 2的倍数:个位上是0,2,4,6,8的数。
100 以内数的认识 10 个一是十 10 个十是一百 10 个一是十 10 个十是一百 数一数 从 35 数到 42 从 88 数到 100.
2 、 5 的倍数特征 集合 2 的倍数(要求) 在百数表上依次将 2 的倍数找出 并用红色的彩笔涂上颜色。
10.2.switch语句.
第2章 算法实例 ---枚举算法(穷举算法).
循环模式 流程图的画法: 条件 y 循环体 伪代码: n Do while 条件 循环体 loop 每个循环模式的结构都是一个入口,一个出口.
C语言实验 第二课.
第4章 循环结构 程序设计2 本章主讲 赵家刚 计算机编程导论.
第4章 循环结构 程序设计2 本章主讲 赵家刚 计算机编程导论.
第3章 简单算法设计 3.1 结构化程序的算法设计 3.2 结构化算法的性质及结构 3.3 结构化算法的描述方法 自然语言 流程图 伪码
《高等数学》(理学) 常数项级数的概念 袁安锋
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
C语言实验 第一课 标题:学号+姓名.
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
第4章 循环结构 程序设计 本章主讲 李俊萩 计算机编程导论.
C#程序设计基础 $5 流程控制.
第 四 章 循环结构 while语句 do {} while 语句 break和continue语句
走进编程 程序的顺序结构(二).
ENVI-IDL可视化程序设计 楚雄师范学院地理科学与旅游管理学院 杨云源 QQ:
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
第五章 循环结构的C程序设计 5.1 while循环语句 5.2 do-while循环语句 5.3 for循环语句 5.4 多重循环
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
第二章 Java语言基础.
第4章 PHP流程控制语句.
数列.
C语言程序设计 主讲教师:陆幼利.
作业情况 已交作业人数:140人 凡是自己没有交过作业的同学,课后留下,有话要说。 2. 文件名范例: 姓名:王树武 wshw_1.c
第四章 一次函数 4. 一次函数的应用(第1课时).
用计算器开方.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
1.2 有理数 第1课时 有理数 伏家营中学 付宝华.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
算法初步 §1.1.2 程序框图.
College of Computer Science & Technology
1.2基本算法语句 1.2.3循环语句.
输入语句 输出语句 赋值语句 条件语句 循环语句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
2、5的倍数的特征 马郎小学 陈伟.
第二章 Java基本语法 讲师:复凡.
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
正弦、余弦函数的性质 华容一中 伍立华 2017年2月24日.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
2、5、3的倍数的特征.
五 循环结构程序设计 厦大附中信息技术.
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
§4.5 最大公因式的矩阵求法( Ⅱ ).
顺序结构程序设计 ——关于“字符串”和数值.
考察点:switch\while\for System.in\Scanner char vs int
第二次课后作业答案 函数式编程和逻辑式编程
Presentation transcript:

第4章 循环结构 程序设计 本章主讲 赵家刚、李俊萩 计算机编程导论

程序设计的3种基本结构 (1)顺序结构(2)选择结构(3)循环结构 顺序结构 —— 是指程序流程按先后顺序执行,只有执行 了前一步,才能执行后一步。例如火车在轨道上行驶,只 有过了上一站点才能到达下一站点。 选择结构 —— 又称分支结构,是指程序流程可以分几条 路径执行。例如在一个十字路口处,可以选择向东、南、 西、北几个方向行走。 循环结构 —— 又称重复结构,是指程序流程重复执行某 一段代码。例如万米跑,围着足球场跑道不停地跑,直到 满足条件时(25圈)才停下来。 计算机编程导论

3种基本结构的流程图 顺序结构 选择结构 循环结构 流程图 流程图 流程图 假 假 真 真 语句A 条件判断 语句A 条件判断 语句B 循环体 真 语句B 顺序结构 流程图 选择结构 流程图 循环结构 流程图 计算机编程导论

4.1循环结构设计问题 【问题4-1】用户输入一个列表,求出列表中所有正偶数之和。 分析:由于不知道用户输入的具体数据及个数,因此需要在循环结构中进行判断和累加。 计算机编程导论

#ques4_1.py li=input('请输入一个列表:') sum=0 for x in li: if x>0 and x%2==0: sum+=x print 'sum=',sum 程序输入及运行结果: 请输入一个列表:[2, 3, 4, -5, 6, 12] sum= 24 计算机编程导论

4.2 循环结构概述 循环结构是一种重复执行的程序结构。实际应用中,常会碰到一些需要重复执行的步骤,如级数求和、统计报表等等。例如: (1)计算 1 + 2 + 3 + … + 100,这是一个级数求和问题,需要重复执行100次,对100个数依次进行累加。 (2)假设1个班级中有n名同学,统计男同学和女同学各有多少名。该问题的求解需要重复执行n次,对每1个同学依次进行判断,同时统计男同学和女同学的人数。 计算机编程导论

4.2 循环结构概述 Python提供了两种基本的循环结构语句——while语句、for语句。 (3)给定2个整数,求它们的最大公约数和最小公倍数。例如:给定6和9,求最大公约数时,循环过程从6依次递减至1,当循环到3时,判断得6和9都能被3整除,于是终止循环,求得最大公约数是3.;求最小公倍数时,循环过程从9依次递增至54,当循环到18时,判断得18同时能被6和9整除,于是终止循环,求得最小公倍数是18。 Python提供了两种基本的循环结构语句——while语句、for语句。 计算机编程导论

4.3 while语句 while 表达式: 循环体 while 表达式: 循环体 else: else子句 表达式 假(零) 真(非零) 计算机编程导论

说明: (1)while语句是一个条件循环语句,即首先计算表达式,根据表达式值的真、假来决定是否继续循环。 (2)while语句的语法与if语句类似,要使用缩进来分隔子句。 (3)while语句的条件表达式不需要用括号括起来,但是表达式后面必须有冒号。 (4)使用while语句编程通常会遇到两种题型,一种是循环次数事先确定的问题;一种是循环次数事先不确定的问题。 计算机编程导论

4.3.1 while语句用于有限循环 【例4-1】编程从键盘输入若干正整数,求所有输入整数之和。当输入整数为负数时,结束该操作。 【分析】 该问题使用循环结构解决,由于不确定用户即将输入几个正整数,因此属于不确定循环次数的问题。 计算机编程导论

程序: 程序运行结果: 请输入若干正整数进行求和操作,当输入负数时结束: 请输入一个整数: 10 请输入一个整数: 20 #Exp4_1.py print '请输入若干正整数进行求和操作,当输入负数时结束: ' s = 0 x = input("请输入一个整数: ") while x >= 0: s = s + x print '整数之和=', s 程序运行结果: 请输入若干正整数进行求和操作,当输入负数时结束: 请输入一个整数: 10 请输入一个整数: 20 请输入一个整数: 30 计算机编程导论

【例4-2】编程从键盘输入若干个字符,一边输入一边输出,当输入“#”字符时终止该操作。 是 否 【分析】 (1)本题使用循环结构解决,每次循环从键盘输入一个字符,直到输入为“#”字符时停止循环。 (2)由于输入的字符个数无法确定,因此循环次数不确定。 计算机编程导论

程序: 提问: (1)循环结束后,变量 a 中的值是什么? (2)如果循环体中没有下面这条语句会怎么样? a = raw_input('请输入字符,如果输入 # 号则结束输入操作: ') while a != '#': #判断输入的是否是井号 print '您输入的字符是:', a #打印输入的字符 #以下语句是再次输入一个新的字符 else: print '输入结束' 提问: (1)循环结束后,变量 a 中的值是什么? (2)如果循环体中没有下面这条语句会怎么样? a = raw_input('请输入字符,如果输入 # 号则结束输入操作: ') 计算机编程导论

4.3.2 while语句解决确定循环次数的问题 确定循环次数的问题是指循环之前可以预知循环即将执行的次数,为了控制循环次数,通常在程序中设置一个计数变量,每次循环,该变量进行自增或自减操作,当变量值自增到大于设定的上限值或者自减到小于设定的下限值时,循环自动结束。 计算机编程导论

4.3.2 while语句解决确定循环次数的问题 【例4-3】 编程计算1+2+3+…+100 的值。 分析:本题使用循环结构解决,每循环一次累加一个整数值,整数的取值范围为1~100。由于整数的范围是确定的,因此循环次数也是确定的。 计算机编程导论

4.3.2 while语句解决确定循环次数的问题 框图: 程序: #Exp4_3.py i, s = 1, 0 while i <= 100 : s = s + i i += 1 print '1+2+3+...+100 = ', s 计算机编程导论

4.3.2 while语句解决确定循环次数的问题 【例4-4】 编程依次输出列表中每个元素的值。 分析:本题使用循环结构解决,每循环一次输出一个列表元素值,由于列表定义后,其长度是已知的,因此循环次数也是确定的。 计算机编程导论

4.3.2 while语句解决确定循环次数的问题 程序: #Exp4_4.py a_list = ['a', 'b', 'mpilgrim', 'z', 'example'] a_len = len(a_list) i = 0 while i < a_len: print '列表的第', i+1, '个元素是:', a_list[i] i += 1 计算机编程导论

4.3.3 while语句用于无限循环 当while语句的“表达式”永远不会为布尔假时,循环将永远不会结束,形成无限循环,也称死循环。 while True: 循环体 可以在循环体内使用break语句强制结束死循环。 计算机编程导论

程序: 【例4-5】使用无限循环的方法编程实现例4-2。 a = input('请输入字符,如果输入 # 号则结束输入操作: ') while True: print('您输入的字符是:', a) if a == '#': break 计算机编程导论

【例4-6】求以下表达式的值,其中n值从键盘输入。参考值:当n = 11时,s = 1.833333 。 计算机编程导论

(1)以上问题属于数学中的级数求和问题,是使用循环结构解决的一类常见问题。 【分析】 (1)以上问题属于数学中的级数求和问题,是使用循环结构解决的一类常见问题。 (2)级数求和问题编程的重点在于通过观察表达式的规律,分析每次循环都要完成的事件。通常将这些事件进行局部分解,称为“通式”。 该题的通式有以下几个: (1)分母的通式: (2)变量i的通式: (3)当前项的通式: (4)求和的通式: mu = mu + i i = i + 1 t = 1.0 / mu s = s + t 计算机编程导论

程序: 提问: i=1 mu = 0 s = 0.0 n = input('请输入n值: ') #或用书上的代码 while i <= n: #判断是否计算到表达式的最后一项 mu = mu + i #求分母的通式 i += 1 # i 自增的通式 t = 1.0 / mu #求当前项的通式 s = s + t #求和的通式 print 's = ', s #循环结束后,打印总和 提问: (1)变量 i、mu、s 的初值只能是 1、0、0.0 吗? (2)循环体内语句的先后顺序可以随意调换吗? 计算机编程导论

【例4-7】 通过以下表达式求π的近似值,当某项小于0.00000001(即1e-8)时停止循环。 计算机编程导论

分析: 该题使用循环结构来解决,只有当某一项小于1e-8时才停止迭代,因此循环次数是不确定的。观察表达式中相邻两项的规律是——①前一项的分子乘以1个整数值“i”可得后一项的分子,而这个整数值“i”随着循环次数由1递增到n;②前一项的分母乘以“2*i+1”可得后一项的分母。该题的通式有以下几个: (1)分子的通式:zi = zi * i (2)分母的通式:mu = mu * (2 * i + 1) (3)变量i的通式:i = i + 1 计算机编程导论

程序: #Exp4_7. py i = 1 zi = 1. 0 mu = 1. 0 t = 1. 0 s = 0 程序: #Exp4_7.py i = 1 zi = 1.0 mu = 1.0 t = 1.0 s = 0.0 while t >= 1e-8: s = s + t zi = zi * i mu = mu * ( 2 * i + 1) t = zi * 1.0 / mu i += 1 print 'PAI = ', (2 * s) 计算机编程导论

【例4-8】求1 ~ 100之间能被7整除,但不能同时被5整除的所有整数 。 【分析】 (1)本题需要对1 ~ 100范围内的所有数一一进行判断。 (2)本题的循环次数确定是100次。 (3)在每次循环过程中需要用 if 语句进行条件判断。因此本题是循环嵌套选择的结构。 计算机编程导论

程序: 提问: i = 1 # i 既是循环变量,同时又是被判断的数 while i <= 100: #判断循环是否结束 print('1~100之间能被7整除,但不能同时被5整除的所有数是:') while i <= 100: #判断循环是否结束 if i % 7 == 0 and i % 5 != 0: #判断本次的i是否满足条件 print i, '\t ' #打印满足条件的i i += 1 #每次循环 i 应自增 提问: 请问语句“i += 1”可以和语句 “print i, '\t ' ”对齐吗? 计算机编程导论

【例4-6】输出“水仙花数”。所谓水仙花数是指1个3位的十进制数,其各位数字的立方和等于该数本身。例如:153是水仙花数,因为153 = 13 + 53 + 33 。 【分析】 (1)本题需要对100 ~ 999范围内的所有数一一进行判断。 (2)本题的变量 i 既是循环变量,同时也是被判断的数。 (3)每次循环过程中需要用 if 语句进行条件判断。因此本题也是循环嵌套选择的结构。 计算机编程导论

提问: 程序: 变量 i 是一个三位整数,例如 i = 123 (1)请写出分离 i 的百位数的表达式。 print('所有的水仙花数是:') while i <= 999: #判断循环是否结束 bai = int(i / 100) #分离 i 的百位数 shi = int((i % 100) / 10) #分离 i 的十位数 ge = int(i % 10) #分离 i 的个位数 if bai ** 3 + shi ** 3 + ge ** 3 == i: #判断条件 print i, '\t', #打印水仙花数 i += 1 #变量 i 自增 计算机编程导论

第7次上机作业: 4.1 4.3 计算机编程导论