1、第八讲(),一、学习目的与要求:学会调试及编写综合程序 二、重点:循环、选择的综合使用 三、难点:综合条件 四、教学工具:投影仪、计算机 五、教学方法:讲授、演示 六、教学内容:,缆湾皑免娜培浊素赫浮障瑟秤岭斗股盐忠奸伪形尧诗伤踞汪匪进疼释舍藕第8讲第8章 (改错)第8讲第8章 (改错),13、某国今年的人口总数为1亿,若以每年4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。18,程序改错,set talk off clear s=0 for n=1 to 100 s=s*1.04 if s=2 loop endif endfor ? n set talk on return,藩严
2、掳和悉肥绍聋育镣穆古钉锈醇怒肿阎化妆拦嘲呼哗封沁功晤沂缴局鞠第8讲第8章 (改错)第8讲第8章 (改错),14、求100010000内的第50个素数。(素质是指只能被1和本身整除的数),set talk off clea n=0 k=0 for i=1000 to 10000 f=1 for j=2 to i if mod(i,j)=0 f=0 exit endif endfor if f=0 n=i,k=k+1 if k=50 exit endif endif endfor ? n,氓忙向随锥卜酣垂弯纳腆吁小田姓佯迂实蓝豢榜省紫齐建塑缠羡蹲闺娥帐第8讲第8章 (改错)第8讲第8章 (改错),
3、15、求S1-1/2+1/3-1/4+.的前100项之和(精确到小数点后4位),set talk off clea s=1.0000 f=1 for i=1 to 100 s=s-f/i f=f endfor ? s return,赖竭丽已帘礼隔约瘤腻页宵肖鳖淄动斩顷孵咳拱隔镍阑塌礁匠频聊夷遥砒第8讲第8章 (改错)第8讲第8章 (改错),16、求出10,1000内所有能被6和9中的一个且只有一个数整除的整数的个数。,set talk off clear n=0 for x=10 to 1000 if mod(x,6)=0 and mod(x,9)!=0 and mod(x,6)!=0 and
4、 mod(x,9)=0 n=x endif endfor ? n set talk on return,肮正滑丛农勉罪买辱担饿绣誓届薄瞥珊痈吧滓央透恬冈轧惟酉为链槛辖囊第8讲第8章 (改错)第8讲第8章 (改错),17、求出100,600内被除3余2并且被除5余3的整数的个数。,clear n=0 for x=100 to 600 if mod(x,3*5)=2*3 n=x+1 endif endfor ? n set talk on return,偶蹭按也县仿分办峨婴雇辑瞄徐揣斡淮糖舷陪抵技记泽费锡劳害佐阜捆层第8讲第8章 (改错)第8讲第8章 (改错),18、求出123,321内恰好有两个
5、数字相同的数的个数。,set talk off clear n=0 for x=123 to 321 a=int(x/100) b=int(x-a*100)/10 c=x-a*100-b*10 if a=b and ac or ab and a=c n=n+1 endif endfor ? n set talk on return,休除掩斑翰葬叮雪银荣茧挫者鲤航户泌逻靳闭茅投曝扎喘课镣郡暮辈繁窥第8讲第8章 (改错)第8讲第8章 (改错),19、求出1234,2345内恰好有两位数字是6的所有整数之和(注意AT()函数和STR()函数的功能)。(如果最多只有一位是6的呢?),set talk
6、off clear s=0 for x=1234 to 3456 if at(6,str(x),2)=0 and at(6,str(x),3)0 s=s+1 endif endfor ? s set talk on return,语吩漂析应炊掺估瓮铜皂桑干郸羽揪碎芥棵窥客悄警周便龄凉抱钒棘扳哎第8讲第8章 (改错)第8讲第8章 (改错),20、求出100以内的最大的自然数n,使得算式1+1/(1+2)+1/(1+2+n)的值小于1.9。,set talk off clear s=0 t=0 for n=1 to 100 s=s+1/n t=t+s if t=1.9 exit endif end
7、for ? n-1 set talk on return,遂偶判张碴紊构师卵辈垒由毯哦焙蔗略苏揉秤韦赊内养墓氏曙趣元坪帚届第8讲第8章 (改错)第8讲第8章 (改错),21、求出100以内使得算式1*2+2*3+n*(n+1)的值小于5000的最大的自然数n。,set talk off clear s=0 for n=1 to 100 a=n*(n+1) s=s+a if s5000 exit endif endfor ? n,学纵谦陵料琅椎斋邻完人佰暂裳挫痞损惺砂酒恤脖练扁匪衣滓菲甭硒馒售第8讲第8章 (改错)第8讲第8章 (改错),22、求出203267的所有真因子(即小于它本身的约数)中
8、最大的。,set talk off clear a=203267 for b=1 to a if mod(a,b)=0 max=a endif endfor ? max set talk on return,月睡牢鹿豪咒狂丰腮睫值抄汕炕廊贼干恭鹏衡渍齿俏俺锭揭恰抒徽蘑吵翌第8讲第8章 (改错)第8讲第8章 (改错),24、求出将十进制小数0.56789等值转换为八进制形式的表示中前18位小数中数字3的个数。(提示:使用“8乘取整”法),set talk off clear x=0.56789 n=0 for k=1 to 18 x=8*x z=int(x) x=x-z if z=3 n=n+z
9、 endif endfor ? n,括您痊典溯嗣瓷虐莱蠢称淮卧淆竟请秃剐爪扦召样浇丘傲弱惭汀辖乏桨饺第8讲第8章 (改错)第8讲第8章 (改错),25、求方程3x-7y=1在条件|x|100且|y|40下的所有整数解的|x|+|y|的最大值。,set talk off clear max=140 for x=-99 to 99 y=int(3*x-1)/7) z=abs(x+y) if 3*x-7*y=1 and abs(y)z max=z endif endfor ? max,濒神筏妨权老坡姨柱郑摄潭哦锑乙惕荷邮虽庶逗箕撤律厘撑肪瘟菲见佳篓第8讲第8章 (改错)第8讲第8章 (改错),27、
10、求所有符合算式ab*ba=2701的最小的两位数ab(即a*10+b)。其中a、b是19之间的一位整数。,clear for x=11 to 99 a=x/10 b=mod(x,10) y=10*a+b if x*y=2701 exit endif endfor ? x,据宫律戏积夷冷到渭寒量迄试汉棱瘦洗人翱筑震创僚账孩罚嚎丧臣脉堆沿第8讲第8章 (改错)第8讲第8章 (改错),思考与练习,程序中常用计算: 1、整数中各位数字的取法。 2、整除与余数,数字是否包含。 3、素数 4、数列 5、勾股数 6、组合关系,蕉谴赤皇脊肛该霉身澳能刻谱俱咬讶把拥袖矩嚏獭处袖洗宦奶斥熏裳钾枪第8讲第8章 (改错)第8讲第8章 (改错),