计算机算法设计中引号的作用,2.条件语句的主要功能是来实现算法中的条件结构. 因为人们对计算机运算的要求不仅仅是一些简单的代数运算.而是经常需要计算机按照条件进行分析.比较.判断.并且按照判断后的不...

本文详细介绍了在算法设计中如何使用条件语句和循环语句,特别是嵌套循环的运用,以解决计算阶乘和通话费用等实际问题。强调了减少循环变量和嵌套层数以提高程序效率的重要性,并提供了两种不同效率的Fibonacci数列求和程序作为对比。同时,给出了实际应用问题——中国网通通话费用计算的算法步骤和程序设计,展示了将实际问题转化为数学模型并用程序实现的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.条件语句的嵌套可多于两层,可以表达算法步骤中的多重限制条件。

题型4:循环语句

例7.设计一个计算1×3×5×7×…×99的算法,编写算法程序。

解析:

算法如下:

第一步:s=1;

第二步:i=3;

第三步:s=s×i;

第四步:i=i+2;

第五步:如果i≤99,那么转到第三步;

第六步:输出s;

程序如下:(“WHILE型”循环语句)

s=1

i=3

WHILE i<=99

s=s*i

i=i+2

WEND

PRINT s

END

点评:你能用“UNTIL”型循环语句表示“典例1”中的程序吗?

例8.编写一个程序,求1!+2!+…+10!的值

9817d248696e69cf73040b872e7a65c4.png

解析:这个问题是求前10个正整数的阶乘之和,可以用“WHILE+ WHILE”循环嵌套语句格式来实现

9817d248696e69cf73040b872e7a65c4.png

程序结构要做到如下步骤:

①处理“N!”的值;(注:处理N!值的变量就是一个内循环变量)

②累加“N!”的值。(注:累加N!值的变量就是一个外循环变量)

显然,通过10次循环可分别求出1!、2!、…、10!的值,并同时累加起来, 可求得S的值。而求T=N!,又可以用一个循环(内循环)来实现。

程序为:

s=0

i=1

WHILE i<=10

j=1

t=1

WHILE j<=i

t=t*j

j=j+1

WEND

s=s+t

i=i+1

WEND

PRINT s

END

上面程序中哪个变量是内循环变量,哪个变量是外循环变量?

(1)内循环变量:j,t

(2)外循环变量:s,i

“典例2”程序是一个的“WHILE+WHILE”型循环嵌套语句格式。这是一个比较好想的方法,但实际上对于求n!,我们也可以根据求出的(n-1)!乘上n即可得到,而无需重新从1再累乘到n。

程序可改为:

s=0

i=1

j=1

WHILE i<=10

j=j*i

s=s+j

i=i+1

WEND

PRINT s

END

显然第二个程序的效率要比第一个高得多。第一程序要进行1+2+…+10=55次循环,而第二程序进行10次循环。如题目中求的是1!+2!+…+1000!,则两个程序的效率区别更明显

9817d248696e69cf73040b872e7a65c4.png

点评:解决具体的构造循环语句的算法问题,要尽可能的少引入循环变量,否则较多的变量会使得设计程序比较麻烦,并且较多的变量会使得计算机占用大量的系统资源,致使系统缓慢。另外,也尽可能使得循环嵌套的层数少,否则也浪费计算机的系统资源。

题型5:实际应用

例9.中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按以一分钟计算。设通话时间为t(分钟),通话费用y(元),如何设计一个程序,计算通话的费用。

解析:

算法分析:

数学模型实际上为:y关于t的分段函数。

关系是如下:

de12174de4fc7bdc4ac272d490171e23.gif

其中[t-3]表示取不大于t-3的整数部分

9817d248696e69cf73040b872e7a65c4.png

算法步骤如下:

第一步:输入通话时间t;

第二步:如果t≤3,那么y = 0.22;否则判断t∈Z 是否成立,若成立执行y= 0.2+0.1× (t-3);否则执行y = 0.2+0.1×([t-3]+1)。

第三步:输出通话费用c 。

算法程序如下:

INPUT “请输入通话时间:”;t

IF  t<=3  THEN

y=0.22

ELSE

IF  INT(t)=t  THEN

y=0.22+0.1*(t-3)

ELSE

y=0.22+0.1*(INT(t-3)+1)

END IF

END IF

PRINT “通话费用为:”;y

END

点评:实际应用问题,在高考中是一个热点。如何将实际问题转化成数学问题是解题的关键,最后还要用算法步骤和程序进行表达。如:中国网通通话费的规定在数学中就是通话时间到通话费用的分段函数。日常生活中的分段函数问题还有很多:出租车的计费问题、个人所得税问题、银行利率问题等等

9817d248696e69cf73040b872e7a65c4.png

例10.编写程序,计算数列{an}的前20项的和。(其中数列的前几项分别为1,1,2,3,5,8,……)

解析:这是“Fibonacci数列”的典型特征,从第三项起每一项都是它前两项的和,即858fcd399db32457b1d9f484d21ba1ab.gif

程序如下:

a=1

b=1

s=0

i=3

WHILE i<=20

s=s+a+b

t=a

a=b

b=b+t

i=i+1

WEND

PRINT s

END

点评:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值