资源描述:
《第8讲第8章 (改错).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第八讲()一、学习目的与要求:学会调试及编写综合程序二、重点:循环、选择的综合使用三、难点:综合条件四、教学工具:投影仪、计算机五、教学方法:讲授、演示六、教学内容:13、某国今年的人口总数为1亿,若以每年4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。18程序改错settalkoffclears=0forn=1to100s=s*1.04ifs>=2loopendifendfor?nsettalkonreturn14、求1000-10000内的第50个素数。(素质是指只能被1和本身整除的数)settalkoffcl
2、ean=0k=0fori=1000to10000f=1forj=2toiifmod(i,j)=0f=0exitendifendforiff=0n=ik=k+1ifk=50exitendifendifendfor?n15、求S=1-1/2+1/3-1/4+.....的前100项之和(精确到小数点后4位)settalkoffcleas=1.0000f=1fori=1to100s=s-f/if=fendfor?sreturn16、求出[10,1000]内所有能被6和9中的一个且只有一个数整除的整数的个数。settalko
3、ffclearn=0forx=10to1000ifmod(x,6)=0andmod(x,9)!=0andmod(x,6)!=0andmod(x,9)=0n=xendifendfor?nsettalkonreturn17、求出[100,600]内被除3余2并且被除5余3的整数的个数。clearn=0forx=100to600ifmod(x,3*5)=2*3n=x+1endifendfor?nsettalkonreturn18、求出[123,321]内恰好有两个数字相同的数的个数。settalkoffclearn=0
4、forx=123to321a=int(x/100)b=int(x-a*100)/10c=x-a*100-b*10ifa=banda<>cora<>banda=cn=n+1endifendfor?nsettalkonreturn19、求出[1234,2345]内恰好有两位数字是6的所有整数之和(注意AT()函数和STR()函数的功能)。(如果最多只有一位是6的呢?)settalkoffclears=0forx=1234to3456ifat('6',str(x),2)=0andat('6',str(x),3)>0s=s+
5、1endifendfor?ssettalkonreturn20、求出100以内的最大的自然数n,使得算式1+1/(1+2)+…+1/(1+2+…+n)的值小于1.9。settalkoffclears=0t=0forn=1to100s=s+1/nt=t+sift>=1.9exitendifendfor?n-1settalkonreturn21、求出100以内使得算式1*2+2*3+…+n*(n+1)的值小于5000的最大的自然数n。settalkoffclears=0forn=1to100a=n*(n+1)s=s
6、+aifs<5000exitendifendfor?n22、求出203267的所有真因子(即小于它本身的约数)中最大的。settalkoffcleara=203267forb=1toaifmod(a,b)=0max=aendifendfor?maxsettalkonreturn24、求出将十进制小数0.56789等值转换为八进制形式的表示中前18位小数中数字3的个数。(提示:使用“8乘取整”法)settalkoffclearx=0.56789n=0fork=1to18x=8**xz=int(x)x=x-zifz=
7、3n=n+zendifendfor?n25、求方程3x-7y=1在条件
8、x
9、<100且
10、y
11、<40下的所有整数解的
12、x
13、+
14、y
15、的最大值。settalkoffclearmax=140forx=-99to99y=int((3*x-1)/7)z=abs(x+y)if3*x-7*y=1andabs(y)<40andmax>zmax=zendifendfor?max27、求所有符合算式ab*ba=2701的最小的两位数ab(即a*10+b)。其中a、b是1~9之间的一位整数。clearforx=11to99a=x/10b=mod
16、(x,10)y=10*a+bifx*y=2701exitendifendfor?x思考与练习程序中常用计算:1、整数中各位数字的取法。2、整除与余数,数字是否包