循环大看台

来源 :新时代教师 | 被引量 : 0次 | 上传用户:hhttllzzwei
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】算法有三种基本的逻辑结构:顺序结构、条件结构、循环结构,在这三种结构中,又当属循环结构最为繁琐,并且循环结构本身也包含了顺序结构、条件结构。本文就通过对循环结构的几个常见题型的深入剖析,来破解循环结构。
  【关键词】算法,程序框图,程序,循环结构,嵌套
  
  算法初步是课改后的新加内容。新课标对这一部分的要求是:学习算法的一些基本知识,体会算法的基本思想,发展有条理的思考与表达的能力,进而提高逻辑思维能力。而循环结构正是实现这一目标的有效载体。
  在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构,反复执行的步骤称为循环体[1]。既然按照一定的条件反复执行,我们可以设计一个算法步骤,将这些反复的操作的步骤交给计算机去完成,从而可以将人从重复的劳动中解脱出来。
  循环结构有两种,一种是当型循环结构,
  
  当型循环是这样执行的:首先是对循环的条件进行判断,如果满足条件,则执行循环体,否则执行循环体下面的步骤。
  还有一种是直到型循环结构,
  
  直到型循环是这样执行的:首先执行循环体,再判断是否满足条件,如果满足条件,则执行循环体下面的步骤,否则,返回去接着执行循环体。下面本文就通过几道典型例题,来探究循环结构,以期达到抛砖引玉的效果。
  题型一、计算累加求和
  例1(顺序和):设计一个算法步骤,计算S=1+2+3+…+100的值。
  算法分析:第一步,计算0+1=1,第二步,计算1+2=3,第三步,计算3+3=6,…,第100步,计算4950+100=5050,由于第i(i=1,2,3,…,100)步执行的步骤是Si=Si-1+i,即后一步的和是在前一步和的基础上再累加上变量i的值,所以可以用循环结构来实现。
  算法步骤:
  第一步,将计数变量i的值初始化为1,将求和变量S的值初始化为0;
  第二步,将S+i的值仍赋值为S;
  第三步,将i+1的值仍赋值为i;
  第四步,判断i>100是否成立,若是,则输出S的值,结束算法,否则,返回第二步。
  
  评注1:当型循环结构的判断条件是执行循环体的条件,直到型循环结构的判断条件是跳出循环体的条件。本题采用的是直到型循环结构,s=s+i,i=i+1是循环体,i>100是循环的终止条件。如果采用当型循环结构,则i≤100是循环的条件,s=s+i,i=i+1是循环体。
  评注2:在含有循环结构的算法步骤中,第一步是对循环变量的初始赋值。在累加求和中,由于加“0”不改变求和的值。所以,一般对求和变量S的初始赋值为“0”。
  例2(倒序和):设计一个算法步骤,计算S=100+99+98+…+1的值。
  算法分析:例2与例1的区别是例2求的是倒序和,所以解决本问题同样需要两个变量,计数变量i,累加变量S,只是变量i初始化为100,i的值是从大到小的方向变化,每次减少1,当i<1时终止循环。
  算法步骤:
  第一步,将变量i初始化为100,将变量S初始化为0;
  第二步,将S+i的值仍赋值为S;
  第三步,将i-1的值仍赋值为i;
  第四步,判断i<1是否成立,若是,则输出S,结束算法,否则,返回第二步。
  
  例3(交错和):设计一个算法步骤,计算S=1-3+5-7+…-99。
  算法分析:本题也可以看作累加求和,只不过是将变量i连同它前面的符号一起累加给求和变量S。当项数为奇数时,在变量S的基础上累加上变量i,当项数为偶数时,在变量S的基础上减去变量。当变量i>99时终止循环。
  算法步骤:
  第一步,将累加变量i初始化为1,求和变量S初始化为0,符号变量k初始化为1,通项t初始化为1;
  第二步,判断i≤99是否成立,若是,执行第三第六步,否则,输出S,结束算法。
  第三步,将S+t的值仍赋值给S;
  第四步,将i+2的值仍赋值给i;
  第五步,将-k的值仍赋值给k;
  第六步,将k与i的乘积赋值给t后返回第二步。
  
  评注3:本问题也可以仿后面例6的循环结构内嵌套条件结构来实现。为此,需要引入三个变量,计数变量n(n=1,2,……,50),n从1开始,每次循环变化1;累加变量i,从0开始,每次循环变化2;求和变量S,S从0开始。当n为奇数时,在S的基础上累加上变量i,当n为偶数时,在S的基础上减去变量i,当n>50时终止循环输出S。
  题型二、计算累乘问题
  例4:设计一个算法步骤,计算T=1×2×3×…×n的值。
  算法分析:解决本问题需两个变量,计数变量i,累乘变量T。
  算法步骤:
  第一步,输入一个正整数n
  第二步,将变量i初始化为1,变量T初始化为1;
  第三步,判断i≤n是否成立,若是,执行第四第五步,否则,输出T,结束算法;
  第四步,将T×i的值仍赋值给T;
  第五步,将i+1的值仍赋值为i后返回第三步。
  
  评注4:在累乘求积中,由于乘“1”不改变乘积的值。所以,一般对累积变量T的初始赋值为“1”。
  题型三、求最大(最小)值问题
  例5:设计一个算法步骤,输出满足1×2×3×…×n>1000的最小正整数。
  算法分析:本题的左端是一个累乘,所以可模仿上例的累乘问题来解决。但要特别注意的是循环的执行步骤是先计算累乘积T,再让变量的值增加1,所以,在执行最后一次循环时,虽然累乘变量T已经大于1000,但变量i的值又增加了1,因而,输出的最小整数n比此时的i值小1。
  算法步骤:
  第一步,将变量i初始化为1,将变量T初始化为1;
  第二步,将T×i的值仍赋值给T;
  第三步,将i+1的值仍赋值给i;
  第四步,判断T>1000是否成立,若是,执行下一步,否则返回第二步;
  第五步,将i减1的值赋值给n;
  第六步,输出n,结束算法。
  
  题型四、计算加乘混合问题
  例6:设计一个算法步骤,计算S=11!+12!+13!…+1n!的值。(其中n!=1×2×3×…×n)
  算法分析:解决本题需三个变量,计数变量i,累乘变量T,累加变量S。
  算法步骤:
  第一步,输入一个正整数n;
  第二步,将变量i初始化为1,将变量T初始化为1,将变量S初始化为0;
  第三步,将T×i的值仍赋值给T,将S+1T的值仍赋值给S;
  第四步,将i+1的值仍赋值给i;
  第五步,判断i>n是否成立,若是,则输出S,结束算法,否则,返回第三步。
  
  题型五、循环结构内嵌套条件结构
  例7:设计一个算法步骤,输出100以内所有能被3整除的正整数。
  算法分析:解决本问题的思路是从i=1开始检验,如能被3整除,则输出这个数,否则,将变量i的值增加1以后再重新检验,当i>100时结束检验。所以本题在对变量i循环的同时,还要对变量i是否能被3整除做出条件判断。
  算法步骤:
  第一步,将变量i的值初始化为1;
  第二步,判断i能否被3整除,若是,则输出i,否则,转至第三步;
  第三步,将i+1的值仍赋值给i;
  第四步,判断i是否大于100,若是,则结束算法,否则,返回第二步。
  
  题型六、循环结构内嵌套循环结构
  例8:设计一个算法步骤,输出所有满足m+n<10的正整数对(m,n)[2]。
  算法分析:解决本问题需先定一个变量m,再从小到大搜索变量n,然后让变量m由小到大变化。因而,本题需两次用到循环结构。
  算法步骤:
  第一步,将变量m的值初始化为1;
  第二步,判断m≤8是否成立,若是,执行第三 第六步;否则,结束算法;
  第三步,将n的值初始化为1;
  第四步,判断n≤9-m是否成立,若是,执行第五 第六步,否则,将m+1的值仍赋值给m后返回第二步;
  第五步,输出m,n;
  第六步,将n+1的值仍赋值给n后返回第四步。
  
  评注4:应用循环结构内嵌套循环结构可解决二维数组的搜索、计算问题。
  上述几道例题,基本可以包括循环结构的所有题型,相信通过上述的分析,你会对循环结构有更加深入的理解。只有在平时的学习中善于归纳总结,将知识系统化、条理化,我们才能将知识记得更久、记得更牢。不仅如此,学习循环结构,无论是对于了解算法思想,还是对于启迪智慧,都是大有裨益的。下面还给出了几道配套练习,供读者练习,以检测学习的效果。
  练习1:设计一个算法步骤,求S=1+12+13+…+1100的值。
  练习2:设计一个算法步骤,求S=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)。(其中n为任意大于1的正整数)
  练习3:设计一个算法步骤,求S=11×2+12×3+…+1n×(n+1)的值。(其中n为任意大于1的正整数)
  练习4:设计一个算法步骤,输出满足1×2×3×…×n≤1000的最大正整数n。
  练习5:设计一个算法步骤,输出1~100内所有被7除余1的正整数。
  练习6:仿例8,用直到型循环结构,输出所有满足m+n≤10的正整数对(m,n)。
  
  参考文献
  [1] 张淑梅等.普通高中课程标准实验教科书.数学3(必修),北京,人民教育出版社,2007(第三版).
  [2] 张登军,岳雪普.高中新课程全程学习方略.数学3(必修),陕西,未来出版社,2007(第一版).
其他文献
【摘要】在现在的音乐教学中,人们都很注重教学的拓展。音乐拓展是新课程标准提倡并强调的。在教学过程中,教师要通过不断学习,开阔视野,善于发现音乐与相关文化之间的内在联系,这样的拓展是落实课程的具体体现。科学适度地拓展教学会更有效地为达成教学目标服务。  【关键词】音乐,教学,拓展课,认识,空间    近年来,学校在初一年级增设了多学科的拓展课。拓展课的开设是学校实施教育的重要举措,学生通过拓展课的学
期刊
《机械制图》是机械专业中一门理论性和实践性都较强的动手基础课,它主要培养学生看图、画图、空间想象力和应用能力。而无论看图还是绘图都要求学生具有一定的空间想象力,职业学校的学生因其知识结构的差距,这方面的能力比较缺乏。就如何培养学生的空间想象力,我在这里简单的谈谈自己的几点看法。  1.给学生补充有关空间形式的数学几何知识  数学几何知识的学习是培养学生空间想象力的前提,特别是空间形式的数学知识,如
期刊
【摘要】体育教学的创新发展很快,体育教学的形式丰富多彩,但学生的体质连续多年的下降,这使得我们必须重新审视学习体育教育,在发展教学形式的同时,还应抓住体育的本质,真正做到“发展体育运动,增强人们体质”的蓝图。  【关键词】创新,体育本质,学校体育,身体素质,测试    近几十年来,体育教学改革风起云涌、乘风破浪,这使得体育教学出现了许多创新和特色,体育教育在思路、形式、行为、方法、效果上都有了翻天
期刊
【摘要】本文从多方面分析了在焊接教学中造成厌学,考核不良的各种原因,提出了将“厌学”学生转变为“爱学”学生的具体措施。  【关键词】焊接,教学,措施    中、高级焊工的职业培养是传统的培养专业。近年来,焊接技术已越来越广泛的应用在国民经济中的各行各业中,所以优秀的焊工越来越受到企业的重视。  但是,在焊接教学过程中,总有一些学生考核成绩不良,造成人力、物力和财力的浪费。那么采用合理的管理模式,采
期刊
新课改倡导培养学生的科学探究能力和实验创新能力。作为以实验为基础的自然学科——生物学,其实验教学是教学中必不可少的环节。然而,现实中我们的实验教学现状令人堪忧。有些乡镇学校不能充分利用当地的环境优势,使生物实验形同虚设。部分城市学校则以各种理由,将生物实验演变成演示实验或老师讲实验;更有甚者有的老师认为生物学是小科,中考不考,没有必要这样“劳命伤财”。可想而知,我们的生物实验教学又何谈培养学生的实
期刊
【摘要】信息技术的飞速发展,带来了人类生活的深刻变化,推进了各个领域的创新,也使教育的面貌日新月异,促进了各科教学效率和质量的提高。美术教学如何利用信息技术是广大美术教师要潜心研究和探讨的重要课题。  【关键词】美术教学,信息技术,优势,运用,方法    随着信息技术的迅猛发展与普及,信息技术广泛应用于教学的各个领域,有力地推进了教学改革的深入。实践证明:信息技术的运用在教学中具有强大的生命力。在
期刊
《基础教育课程改革纲要(试行)》提出:要使学生养成健康的审美情趣,把它列为新课程的培养目标之一,这是基础教育的美育任务在新课程培养目标上的体现。也可以说,基础教育课程在美育方面主要的任务是培养学生健康的审美情趣。从美学角度看,只有形成正确的审美情趣,才能有深刻的审美体验、主动的审美意识、正确的审美评价,进而形成创造美的个体。由此可见审美情趣是审美教育的基础。  中学美术教材为我们提供了培养审美情趣
期刊
【摘要】化学是重要的基础学科,要准确、全面、有效地提高教学的效率与质量,必须解决好几个关键性的课题。  【关键词】化学教学,新课程,改革,问题,解决方法    落实化学新课标的要求,加大化学教学改革的力度,提高化学教学的效率与质量是素质教育对我们化学教师的紧迫要求。自己通过对新课标的学习,并总结过去的教学经验,认为必须着力解决好以下几个关键性的问题:  1.要着力解决教育观念转变的问题  素质教育
期刊
【摘要】素质教育要求数学教学重视学生的主体地位,重视数学思想的渗透,重视智力的开发和能力的培养,重视非智力因素的作用。面对新的课程改革,不仅需要有改革意识的数学教师认真体会新课程标准体系中所包含的思想,树立正确的教育观,接受各种教师培训,但更重要的是根据数学新课程标准的要求,改变自身的教学行为。  【关键词】素质教育,新课程改革,主动学习,教学行为    1.应注重智力的发展转向关注学生的能力的发
期刊
教学不仅是一门科学,而且是一种艺术。成功的教学本身就是一种艺术的创造。如果掌握了这种艺术,就可以使物理课满堂生辉,给学生以激情和美的享受,从而激起他们高涨的学习情绪。教师是课堂教学的设计者、组织者、实施者,教学效果的好坏很大程度上取决于教师的教学手段和教学艺术。下面就物理课堂教学艺术谈一些浅见。  1.激发求知欲望  捷克教育家夸美纽斯认为:“教育者的艺术表现在使学生能够透彻地、迅速地、愉快地学习
期刊