0  250250  250258  250264  250268  250274  250276  250280  250286  250288  250294  250300  250304  250306  250310  250316  250318  250324  250328  250330  250334  250336  250340  250342  250344  250345  250346  250348  250349  250350  250352  250354  250358  250360  250364  250366  250370  250376  250378  250384  250388  250390  250394  250400  250406  250408  250414  250418  250420  250426  250430  250436  250444  447090 

1.进一步掌握循环语句结构,并能进行简单的综合应用.

试题详情

4. 1,1,2,3,5,8,13,…这一列数的规律是:第1、第2个数是1,从第3个数起,该数是其前面2个数之和,试用循环语句描述计算这列数中前20个数之和的算法?

[解](完成算法)

a←1

b←1

S←2

Print S

试题详情

3.2000年我国人口数约为13亿,如果每年的人口自然增长率为15‰,那么多少年后我国人口数将达到或超过15亿?

   这个问题可通过循环方式计算完成,即每一次在原有的基础上增加15‰,直到达到或超过15亿,再记下循环次数,试用循环语句表示这一过程。

[解](完成算法)

s←1300000000

i←0

Print i

试题详情

2.我们曾研究过问题   >2004,试用“While”语句描述这一问题的算法过程。

[解](完成算法)

S←0

I←1

Print I

试题详情

1.下面的伪代码中,“For”语句的循环体是__________________________.

[解]循环体是

试题详情

1.问题:

设计计算的一个算法。

[解析]将上述表达式看成49个乘法,用公式表示为:

S←S×I

S初始为1,I为1,将每次的乘积都赋予S,I从1到99,每次增加2,公式S←S×I会被重复执行,这种执行过程可用循环结构表示。

算法一:

S1  S←1;

S2  I←1;

S3  I←I+2;

S4  S←S×I;

S5  如果I小于99,那么转S3;

S6  输出S

上述算法用流程图表示如下:

[说明]算法一是先执行后判断的直到型循环结构,常用“Do”语句表示,我们不再学习。

 

算法二:

S1  S←1;

S2  I←1;

S3  当I不大于99时转S4,否则转S6;

S4  S←S×I;

S5  I←I+2;

S6  输出S

上述算法用流程表示如图所示:

 

[说明]算法二可以理解为:当I>99时, 才循环执行S4和S5两步,这种先判断后执行的循环结构我们称为当型循环,常用“While”语句和“For”语句表示,其中“While语句”可以用如下代码表示:

用伪代码表示为:

S←1

I←1

While I≤99

  S←S×I

  I←I+2

End While

Print S

由此可见,同一个问题可以用不同的循环方式来解决,直到型循环和当型循环的控制条件是不同的,请注意流程图中判断分支的流向条件。

在算法二的伪代码中,可以看成I从1到99,每次增加2,用For语句写成I From 1 To 99 Step 2,“Step 2”意为I每次增加2。写成一般形式为:

 

注意黑体字部分是For循环语句的关键词,在“For”和“End For”之间的步骤称为循环体,如果省略“Step 2”,那么循环时I的值默认增加1。

上述问题用For循环语句的伪代码可以表示为:

S←1

For I From 1 To 99 Step 2

S←S×I

End For

Print S

[总结]当循环的次数确定时,我们通常用For循环语句,而当循环的次数不确定时,我们通常用While循环语句,这两种语句都是前测试语句,即先判断后执行。若初始条件不成立,则一次也不执行循环体中的内容,任何一种需要重复处理的问题都可以用这种前测试循环来实现。

[经典范例]

例1  分别用While语句和For语句写出求1+2+3+…+100的和的一个算法。

[解]用伪代码表示为:(完成算法)

S←0

For

End For

Print S

或:

S←0

  While

  End While

  Print S

[注意]在累加的算法中,S的初始值一般设为0,在累乘的算法中,S的初始值一般设为1,为什么?

例2  问题:将前面的问题改为

   >10000,那么,如何寻找满足条件的最小整数呢?请用伪代码写出一个算法。

[分析]这个问题中,因为不知道循环需要进行的次数,所以不能用For循环语句。

[解]算法:

S1  S←1;

S2  I←1;

S3  如果S≤10000,那么I←I+2,S←S×I,重复S3;

S4  输出I。

上述算法可以理解为:当S≤10000时,循环执行S3。

伪代码如下:(完成算法)

  S←1;

  I←1

While

End While

Print I

在“For”语句中,I的变化是通过“Step”设置的,在程序运行时自动改变,所以循环体中没有如“I←I+2”这样的语句,而在“While”语句中,则需要手工编写如“I←I+2”这样的代码以控制程序的运行,避免出现“死循环”。

例3  抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先做出确定的判断是不可能的,但是假如硬币的质量均匀,那么当抛掷次数很多时,出现正、反面的机率都应接近于50%,试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的机率。

分析:抛掷硬币的过程实际上是一个不断重复的地做同一件事情的过程,这样的过程我们可以通过循环语句模拟。

在程序语言中,有一个随机函数“Rnd”,它能产生0与1之间的随机数,这样,我们可以用大于0.5的随机数表示出现正面,不大于0.5的随机数表示出现反面,

[解]用伪代码表示为:(完成算法)

S←0   {求累计和,初始值设为0}

  Read n

  For I From 1 To n

   If Rnd>0.5 Then    

  End For

  Print 出现正面的频率为

{单行条件语句不需要结束标志“End If”}

 

追踪训练

试题详情

2.理解并掌握循环语句在计算机程序语言中的作用,掌握两种循环语句应用的实例:数列求和、求积;

[课堂互动]

自学评价

试题详情

1.正确理解循环语句的概念,并掌握其结构;会应用循环语句编写程序;并能进行简单的综合应用;

试题详情

5.到银行办理个人异地汇款(不超过100万)时,银行要收取一定的手续费,汇款不超过100元,收取1元手续费;超过100元但不超过5000元,汇款额的1%收取;超过5000元,一律收取50元手续费。试用条件语句描述汇款额为x(元)时,银行收取的手续费y(元)的算法过程,并画出流程图。

[解]完成下面算法:

Read x  (x≤1000000)

If _______ Then

  y←1

Else If _______ Then

y←0.01x

Else

y←50

End If

Print y

流程图:

试题详情

4.已知函数,试写出计算y值的一个算法。

[解]伪代码:

试题详情


同步练习册答案