师:同学们,今天我们来学习初二信息技术第二章第四节循环结构第一课时。之前我们学过顺序结构,它是从上到下顺序执行;还有分支结构,根据条件选择其中一条分支执行。今天我们要学习新的程序结构——循环结构。

  我们今天的学习目标有两个:一是了解程序的循环结构;二是掌握for循环语句的格式及其运行过程,学会使用range函数控制循环次数。

  小梁和小刘两位同学在家研究出了两个不同的输出0 - 9的程序作品,我们一起来看看。

  小梁:我先编写print(0)语句,然后复制粘贴9次,再修改括号里的数字,运行程序就输出了0到9。

  小刘:我也编写了一个输出0到9的程序。程序是这样的,输入for i in range(10): 回车,print(i),运行程序,输出0到9。

  师:感谢两位同学的展示。我们来看看这两个程序的代码,左边这个程序运用了顺序结构,由上到下依次执行10个print语句。右边这个程序应用了循环结构的for循环语句。我们一起来认识for循环语句的格式:for循环变量 in range(循环次数): 语句块。它的功能是根据range函数中的循环次数参数循环执行语句块。注意,range括号后面需加上英文冒号,需要循环执行的语句块要缩进。

  刚刚循环输出0 - 9的程序,i就是循环变量,10就是循环次数,print(i)就是循环的语句块。我们把这种实现语句块重复执行的程序结构称为循环结构,当满足循环条件时,重复执行循环的语句块,直到不满足循环条件,跳出循环执行循环语句的下一条语句。现在请同学们动手输出0 - 9的数字的程序,看看会不会遇到什么问题。

  生:老师,我编写的输出0 - 9的程序运行时出错,请问是什么问题呢?请您帮我看一下。

  师:感谢小许同学的提问。for循环语句的格式是for循环变量 in range(循环次数): 执行循环语句块。注意,range括号后面需要加上英文冒号,需要循环执行的语句块要缩进。小许同学的程序有两个问题,第一个是range括号后面没有加上英文冒号,第二个是循环的语句块没有缩进。小许同学你试试修改一下程序吧。

  生:我试试在range括号后面加上英文冒号,print缩进,运行成功了,谢谢老师。

  师:小许同学研究出了一个有趣的程序,可以计算1 + 2一直加到n的值,我们一起来欣赏一下吧。

  生:我编写的程序是这样的,运行输入时按回车,程序依次输出了i等于1,i等于2,直到i等于10以及总和等于55。换一个值试试,输入88,按回车,程序依次输出了i等于1,i等于2,直到i等于88,以及总和等于3916。

  师:这个程序是怎样实现的呢?我们一起来分析一下。这个程序的功能主要有4个:一是输入n的值;二是输出i的值,依次为1到n;三是计算1 + 2 + 3一直加到n的值;四是输出总和结果。第一个和第四个功能,根据前几节课学习的知识点比较容易实现,第二个和第三个是难点。我们先从第三个入手,用循环变量s来保存求和结果,初值为0,也就是要解决1 + 2 + 3一直加到n赋值给s的问题。从1到n有n个数,我们把这n个数分n次和s相加,赋值给s,每一次加一个数。如表格所示,第一次把s + 1的值赋值给s得到新的s,第二次把s + 2的值赋值给s得到新的s,第三次把s + i赋值给s,如此重复,第n次把s + n的值赋值给s得到最后的s。我们用循环变量i来表示1到n。这里重复n次加的操作中,重复执行的是s + i赋值给s。for循环语句中我们知道从0开始的n个数可以用range(n)来实现,要产生从1开始的n个数,指定开始的值是1,就需要多一个参数,可以用range(1, n + 1)来实现。所以求1 + 2 + 3一直加到n赋值给s的和,我们可以用这个循环语句来实现:for i in range(1, n + 1): s = s + i 。我们解决了第三个问题,其实第二个问题也可以用这个循环语句来实现,只需要在循环的语句里增加输出i的值就可以了。所以我们来看一下完整的程序代码,如左边的图所示,这个程序我们叫做累加求和程序。通过累加求和程序我们就可以依次输出i的值,从1逐渐变大到n,并且输出总和的值。现在请同学们动手编写累加求和程序,看看会不会遇到什么问题?

  生:老师,我编写的累加程序运行时出现了这样的错误,您请看,请问是什么问题呢?我该怎么解决?

  师:感谢小刘同学的提问。for循环语句的格式是for循环变量 in range(循环次数): 语句块,s = s + i是需要循环执行的,所以要缩进才能循环执行哦。小刘同学,请你修改程序试试。

  生:我把这个语句缩进,再运行,输入10,求和结果对了,我明白了,谢谢老师。

  师:小刘同学在做累加求和程序的时候,把i的值从大到小输出,一起来看看程序的运行。

  生:老师,我编写的程序是这样的,我来运行一下,输入10,程序把i的值从10、9、8开始到1输出。

  师:感谢小刘同学的展示,这个程序是怎样实现的呢?我们一起来对比一下两个程序的代码。原来小刘同学修改了range函数里面的参数,增加了一个参数 - 1,并且把比较大的数n放到了比较小的数0的前面,就实现了i的值从n开始逐渐变小到1。我们来看看range(n, 0, - 1)产生怎样的一组数?为了方便理解,我们以n的值取10为例,range(10, 0, - 1),第一个数是10,第二个数是9,第三个数是8,第四个数是7,第五个数是6,第六个数是5,第七个数是4,第八个数是3,第九个数是2,最后一个数是1,从10、9、8、7一直到1,是从大到小的,所以range(n, 0, - 1)产生一组从n开始逐渐减1变小,一直到1的数。range函数有3个参数,参数1、参数2决定了循环次数,参数1可以省略,默认为0,参数3也可以省略,默认为1。参数3可以是正数,也可以是负数,但不能为0,当它是正数时产生的数从小到大,当它是负数时产生的数从大到小。好,下面我们一起来练一练。

>> 点击阅读全文
《8年级下册信息技术 第4节 循环结构1 逐字稿-4,217字 第5版》.docx
将本文下载保存,方便收藏和打印
导出文档