运用循环结构描述问题描述求解过程吧(一)课件_第1页
运用循环结构描述问题描述求解过程吧(一)课件_第2页
运用循环结构描述问题描述求解过程吧(一)课件_第3页
运用循环结构描述问题描述求解过程吧(一)课件_第4页
运用循环结构描述问题描述求解过程吧(一)课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运用循环结构

描述问题求解过程for循环

3、循环结构while循环

循环嵌套循环控制复习:三种基本控制结构1、顺序结构2、选择结构导入问题:百钱百鸡问题今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只。问鸡翁母雏各几何?【故事】相传在南北朝时期(公元386年——公元589年),我国北方出了一个“神童”,他反映敏捷,计算能力超群,许多连大人一时也难以解答的问题,他一下子就给算出来了。远远近近的人都喜欢找他计算数学问题。“神童”的名气越来越大,传到当时宰相的耳中。有一天,宰相为了弄清“神童”是真是假,特地把“神童”的父亲叫了去,给了他100文钱,让第二天带100只鸡来。并规定100只鸡中公鸡、母鸡和小鸡都要有,而且不准多,也不准少,一定要刚好百钱百鸡。当时,买1只公鸡5文钱,买1只母鸡3文钱,买3只小鸡才1文钱。怎样才能凑成百钱百鸡呢?“神童”想了一会,告诉父亲说,只要送4只公鸡、18只母鸡和78只小鸡就行了。第二天,宰相见到送来的鸡正好满足百钱百鸡,大为惊奇。他想了一下,又给了100文钱,让明天再送100只鸡来,还规定不准只有4只公鸡。这个问题也没有难住“神童”。他想了一会,叫父亲送8只公鸡、11只母鸡和81只小鸡去。还告诉父亲说,遇到类似问题,只要怎样怎样就行了。第二天,宰相见到了送来的100只鸡,赞叹不已。他又给了100文钱,要求下次再送100只鸡来。岂料才一会儿,“神童”的父亲就送来了100只鸡。宰相一数:公鸡12只、母鸡4只、小鸡84只,正好又满足百钱百鸡……。这个“神童”就是张丘建。他继续勤奋学习,终于成为一个著名的数学家。他的名著《张丘建算经》里,最后一个题目就是这个有趣的“百鸡问题”。分析问题变量(几个?)变化范围验证条件(几个?)3个,设公鸡为x,母鸡为y,小鸡为zx:1----100?y:1----100?z:1----100?x+y+z=1005x+3y+z/3=100设计算法

算法描述:①令a=0②令b=0③令c=3④如果a+b+c=100且5a+3b+c/3=100,那么输出a,b,c,若不是则转⑤⑤如果c<100,则c+1返④⑥如果b<33,则b+1返③⑦如果a<20,则a+1返②⑧结束问1:我们可以用什么程序结构来解决这个问题呢?for循环可以依次得到序列循环中的每个元素,并依次处理。for循环语句一般格式:

for

循环变量in

列表:

语句或语句组自主探究:课本86页表4----9缩进循环示例(有缩进与无缩进),感受for循环内外缩进体的不同问题:编程求1-10的和?(参考课本86:列表的几种表达方式)方法一:列表直接罗列sum=0foriin[1,2,3,4,5,6,7,8,9,10]:

sum=sum+iprint(sum)方法二:列表先定义后使用a=[1,2,3,4,5,6,7,8,9,10]sum=0foriina:

sum=sum+iprint(sum)小试牛刀注意:①for循环依次把列表中的每个元素迭代出来。

②冒号“:”代表下一行是循环的第一行,但是循环体在书写时需要缩进。

③在for循环中,从for语句末尾的冒号开始至其下面没有缩进的代码之前都是其包含的需要重复执行的部分。因此for循环是以缩进为标志的。

小试牛刀方法三:使用range()函数s=0foriinrange(1,11):

sum=sum+iprint(sum)方法四:使用range()函数,数值列表降序且定义步长s=0foriinrange(10,0,-1):

sum=sum+iprint(sum)range()函数

range()函数是让Python从指定的第一个值开始数,并在到达所指的第二个值后停止,因此不包含第二个值。如range(1,6)其实是生成一个1-6的整数(不包含6)使用range()函数时,还可指定步长。

forvalueinrange(30,50,3):

print(value)

当然,使用range()函数时,数值列表也可以是降序的。如range(10,1,-2)

forvalueinrange(10,1,-2):

print(value)练习:有以下程序段:sum=1foriinrange(1,5)sum=sum*iprint(sum,i)程序的运行结果为()A.245B.1205C.244D.1204指出下面程序中的错误并解释:

(1)求1+2+3+4+5的和。s=1foriin[1,2,3,4,5]s=s+iprints(2)求5*4*3*2*1的值。s=0foriinrange(1,5):s=s*iprint(s)

(3)求7*5*3*1的值s=1foriinrange(7,0,-2)s=s*iprint("s=",s)暑假里假日小队的同学帮助计算居民楼内每户的电费,楼内共有10户居民,每度电0.7元,编一个程序,输入每一户的用电量,然后计算应缴纳的电费输出,再输入下一户的用电量,计算应缴纳的电费……一直重复下去直到全部用户计算完毕。问题:编程计算出以下每户居民的电费?学以致用1户3986度2户5477度3户6561度4户8796度5户3668度6户4712度7户8631度8户9164度9户8157度10户1661度foriinrange(1,11):A=eval(input())S=0.7*Aprint('电费S=',S)

百钱买百鸡:今有钱100元,要买100只鸡,公鸡5元一只,母鸡1元一只,小鸡1元3只,若公鸡、母鸡和小鸡都至少要买1只,请编程求出恰好用完100元钱的所有的买鸡方案。if语句中的条件判断执行了多少次,19*94*33次,我们发现循环嵌套层数越多,程序运行次数越多,效率越低,那我们能对上面的程序进行改进提高效率吗?折纸测珠峰珠穆朗玛峰的海拔约为8848.86米,是世界第一高峰。如果有一张足够大的纸(厚0.1mm),至少对折多少次,纸张的厚度可以超过珠峰的高度?请用python编程计算并输出。break语句在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。while语句格式while判断条件:循环体注意冒号与缩进。当判断条件的结果为True时,执行循环体语句,要注意循环的退出条件避免出现死循环,另while没有循环变量所以要计算循环次数时需要设置计数变量。用while语句实现折纸测珠峰问题。

引导问题:如何实现计数并输出?判断条件怎样表示?循环问题用for循环和while循环都

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论