
练习
1.解:算法步骤:
第一步,给定一个正实数r.
第二步,计算以r为半径的圆的面积S=πr2.
第三步,得到圆的面积S.
2.解:算法步骤:
第一步,给定一个大于1的正整数n.
第二步,依次以2~(n-1)的整数d为除数去除n,检查余数是否为0.若是,则d是n的因数;若不是,则d不是n的因数.
第三步,在n的因数中加入1和n.
第四步,得到n的所有因数.
点拨:找一个数的因数,需要判断这个数是否能被比它本身小且大于1的数整除,能够整除的数就是它的因数,最后加上1和n,输出所有因数.本题是一个可以用“遍历”的算法解决的问题.
练习
算法步骤:第一步,给定精确度d,令i=1.
第二步,取出的到小数点后第i位的不足近似值,记为a;取出的到小数点后第i位的过剩近似值,记为b.
第三步,计算m=5b-5a.
第四步,若m<d,则得到的近似值为5a;否则,将i的值增加1,返回第二步.
第五步,得到的近似值为5a.
程序框图:
习题1.1
A组
1.解:下面是关于城市居民生活用水收费的问题.
为了加强居民的节水意识,某市制定了以下生活用水收费标准:每户每月用水未超过9 m3时,每立方米收费1.0元,并加收0.2元的城市污水处理费;超过9 m3的部分,每立方米收费1.5元,并加收0.4元的城市污水处理费.
设每户每月用水量为x m3,应交纳水费y元,那么y与x之间的函数关系为:
我们设计一个算法来求上述分段函数的值.
第一步,输入每月用水量x.
第二步,判断输入的x是否超过9.若不超过9,则计算y=1.2x;若超过9,则计算y=1.9x-10.8.
第三步,输出应交纳的水费y.
程序框图:
2.解:算法分析:用循环结构解决本题,设累加变量sum,其初始值为0;记数变量为i,其值从1变到100.
算法步骤:第一步,令i=1,sum=0.
第二步,若i≤100成立,则执行第三步;否则输出sum.
第三步,计算sum=sum+i2.
第四步,计算i=i+1,返回第二步.
具体算法用程序框图表示如左下图.
3.解:算法步骤:
第一步,输入人数x,设收取的卫生费为m元.
第二步,判断x与3的大小,若x>3,则费用为m=5+(x-3)×1.2;若x≤3,则费用为m=5.
第三步,输出m.
程序框图表示如右上图.
B组
1.解:一般的二元一次方程组的形式为
其中a1b2-a2b1≠0.
算法步骤:
第一步,判断a1是否等于0.如果a1≠0,令,由②+①×u,得(b2+b1u)y=c2+c1u. ③
如果a1=0,计算,执行第三步.
第二步,解③,得,输出y.
第三步,将y值代入②,得,输出x.
程序框图表示如图所示.
点拨:本题使用的方法是高斯消元法.首先,消去变量x,得到一元一次方程,求得变量y的值,从而使整个方程组得解.
2.解:算法步骤:
第一步,把计数变量n的初值设为1.
第二步,输入一个成绩为r,判断r与6.8的大小.若r≥6.8,则执行下一步;若r<6.8,则输出r,并执行下一步.
第三步,使计数变量n的值增加1.
第四步,判断计数变量n与成绩个数9的大小.若n≤9,则返回第二步;若n>9,则结束.
程序框图表示如图所示.
点拨:对于多个数据的判断,使用循环结构简化程序设计过程.本题在由一个计数变量控制的循环结构中包含了一个条件结构,说明各种逻辑结构是可以互相嵌套的,在使用的时候只要注意使用的方式,遵循使用的规则即可.
