- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]结构化程序设计应用举例
* * * 实验九 结构化程序设计综合实例 * *P85二、程序题1.一个素数,若将其数字位置任意对换后仍为素数,则称为绝对素数。求两位数的绝对素数的和及个数。程序中有两个错误,请改正。prog21.prg * SET TALK OFF CLEA T=0 S=0 FOR I=10 TO 99 P=.T. FOR J=2 TO SQRT(I) IF MOD(I,J)=0 P=.F. LOOP 正确语句为 EXIT ENDIF ENDFOR IF P A=INT(I/10) B=MOD(I,10) K=B*10+A 方法一 * W=.T. FOR J=2 TO SQRT(K) IF MOD(K,J)=0 W=.F. EXIT ENDIF ENDFOR IF W=.F. 正确语句为 IF W 或者 IF W=.T. ?I S=S+I T=T+1 ENDIF ENDIF ENDFOR ?“S=“,S ,T=,T set talk on return * SET TALK OFF CLEAR P=0 S=0 for m=11 to 99 if prime(m) n=10*mod(m,10)+int(m/10) if prime(n) ?m P=P+1 S=S+M endif endif endfor ?“S=+ALLT(STR(S)) FONT , 46 ?P=+ALLT(STR(P)) FONT , 46 CAncel 方法二 * func prime para n flag=.t. k=int(sqrt(n)) j=2 do while j=k and flag if mod(n,j)=0 flag=.f. endif j=j+1 enddo return flag * P85二、程序题3. 若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数。如5和76都是自同构数,因为它们的平方分别是25和5776。求[2,99999]内所有自同构数之和。 set talk off CLEAR ?同构数有: for n=2 to 99999 L=LEN(ALLT(STR(N))) if n=mod(n^2,10^L) ?n endif endfor set talk on * SET TALK OFF CLEAR SUMX=1 FOR K=9 TO 1 STEP -1 SUMX=2*(SUMX+1) ENDFOR ?SUMX RETURN ◆ P85二、程序题5.猴子吃桃子问题。小猴子第一天摘下若干个桃子,立即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩余的吃了一半,又多吃了一个。以后每天早上都吃了剩余的一半又一个。到第十天早上想吃桃子时,只剩余一个了。问第一天共摘了多少个 * *思考题 *1:已知S=2+(2+4)+(2+4+8)+……求S6000的S的最小值 CLEAR DIME SUM2(10000) S=0 SUM1=0 FOR N=1 TO 10000 SUM1=SUM1+2^N S=S+SUM1 SUM2(N)=S ?SUM2(N) IF S6000 EXIT ENDIF ENDFOR ?S=,SUM2(N-1) RETURN * *2求S=1+1/1!+1/2!+1/3!+……+1/n! SET TALK OFF CLEAR S=1 T=1 FOR N=1 TO 25 T=T*N S=S+1/T ENDFOR ?S=,ROUND(S,4) SET TALK ON RETURN * *3求[100,900]之间相差为12 的素数对的个数SET TALK OFFCLEARdime a(400)k=0p=0FOR M=100 TO 900 IF PRI(M) k=k+1 a(k)=m * ?A(“+allt(str(K))+)=,A(K) ENDIFENDFOR *?K * for i=2 to K if a(i)-a(i-1)=12 * ?a(i),a(i-1) p=p+1 endif endfor ?p=,p SET TALK ON RETURN * FUNC PRI PARA N J=2 FL=.T. X=INT(SQRT(N)) DO WHILE J=X AND FL IF MOD(N,J)=0 FL=.F. EXIT EN
文档评论(0)