• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 初中学习 > 正文

    体育大看台【循环大看台】

    时间:2020-02-21 12:12:13 来源:雅意学习网 本文已影响 雅意学习网手机站

      【摘要】算法有三种基本的逻辑结构:顺序结构、条件结构、循环结构,在这三种结构中,又当属循环结构最为繁琐,并且循环结构本身也包含了顺序结构、条件结构。本文就通过对循环结构的几个常见题型的深入剖析,来破解循环结构。
      【关键词】算法,程序框图,程序,循环结构,嵌套
      
      算法初步是课改后的新加内容。新课标对这一部分的要求是:学习算法的一些基本知识,体会算法的基本思想,发展有条理的思考与表达的能力,进而提高逻辑思维能力。而循环结构正是实现这一目标的有效载体。
      在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构,反复执行的步骤称为循环体��[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(第一版).

    推荐访问:看台 循环 循环大看台 大循环 三大循环

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章