程序改错11.docx
- 文档编号:23665362
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:41
- 大小:24.87KB
程序改错11.docx
《程序改错11.docx》由会员分享,可在线阅读,更多相关《程序改错11.docx(41页珍藏版)》请在冰豆网上搜索。
程序改错11
VFP改错题(上机)
1、本程序求给定两个正整数的最小公倍数和最大公约数。
SETTALKOFF
CLEA
INPUT'N='TON
INPUT'M='TOM
X=MIN(N,M)
******1******
FORI=1TOX FORI=XTO1STEP-1
******2******
IFM/I=INT(M/I)ORN/I=INT(N/I) IFM/I=INT(M/I)ANDN/I=INT(N/I)
GYS=I
******3******
LOOP EXIT
ENDIF
ENDFOR
?
'最大公约数 最小公倍数'
?
GYS,M*N/GYS
SETTALKON
2、本程序实现:
输入一个正整数M,判断并显示1~M中有哪些数可以分为两个相等的素数。
(如M=10,有3个数符合,即2+2=4,3+3=6和5+5=10)
SETTALKOFF
CLEA
INPUT'M='TOM
IFINT(M)!
=MORABS(M)!
=M
?
'不符合题目要求!
'
ELSE
S=0
FORJ=2TOM/2
******1******
FORI=2TOJ/2 FORI=2TOJ-1
IFJ%I=0
EXIT
ENDIF
******2******
ENDDO ENDFOR
IFI=J
S=S+1
?
ALLTRIM(STR(J*2,19))+'="+ALLTRIM(STR(J,19))+'+'+ALLTRIM(STR(J,19))
ENDIF
ENDFOR
?
STR(M,19))+'中共有:
'+STR(S,3))+'个数满足条件'
ENDIF
SETTALKON
3、本程序实现:
输入一个数,判断是否是素数。
SETTALKOFF
CLEA
INPUT'X='TOX
FORI=2TOX-1
******1******
IFINT(X/I) IFINT(X/I)=X/I
EXIT
ENDIF
ENDFOR
******2******
IFI<=X IFI=X
?
'是素数!
'
ELSE
?
'不是素数!
'
ENDIF
SETTALKON
4、本程序实现:
将给定的正整数的值分解因子,并输出各个质数因子(如24的因子有2、2、2和3)
SETTALKOFF
CLEA
******1******
ACCEPT 'M='TOM INPUT'M='TOM
IFINT(M)!
=MORABS(M)!
=M
?
'输入的数据不符合题目要求!
'
******2******
ENDIF ELSE
I=2
DOWHILI<=M
IFM%I=0
?
?
STR(I,6)
M=INT(M/I)
LOOP
ENDIF
I=I+1
?
STR(M)+'的质数因子有:
'
ENDDO
ENDIF
SETTALKON
5、本程序实现:
:
利用公式SIN(X)=X/1!
-X3/3!
+X5/5!
+…+(-1)n-1X2n-1/(2n-1)!
,直到最后一项的绝对值小于等于10-5为止。
SETTALKOFF
CLEA
INPUT'X='TOX
S=X
T1=X
T2=1
N=1
T=-1
******1******
DOWHILABS(T1/T2)<1E-5 DOWHILABS(T1/T2)>1E-5
T1=T1*X*X
******2******
T2=T2*(2*N)*(2*N+1) T2=T2*(2*N)*(2*N+1)*T
S=S+T1/T2
T=T*(-1)
N=N+1
ENDDO
?
S
SETTALKON
6、本程序实现:
利用公式ex=1+X+X2/2!
+X3/3!
+…+Xn/n!
,输入X和N,计算ex的近似值。
SETTALKOFF
CLEA
INPUT'X=' TO X
INPUT'N=' TO N
******1******
STORE1TOA,B STORE1TOS,A,B
FOR I=1 TO N
A=A*X
B=B*I
******2******
S=A/B S=S+A/B
ENDFOR
?
'S=',S
SETTALKON
7、本程序实现:
对任意一个正数值型数据(该数可有小数若干位,整数部分不超过12位)自动进行小数部分四舍五入取2位,并将其转换为中文大写金额。
SETTALKOFF
C1='零壹贰叁肆伍陆柒捌玖'
C2='分角元拾佰仟万拾佰仟亿拾佰仟'
INPUT'输入一个正数='TOY
Y=Y*100
Y=ROUND(Y,2)
I=1
D=SPACE(0)
DOWHILY>0
P=MOD(Y,10)
******1******
D=D+SUBSTR(C1,2*P+1,2) D=SUBSTR(C2,2*I-1,2)+D
******2******
D=D+SUBSTR(C2,2*I-1,2) D=SUBSTR(C1,2*P+1,2)+D
I=I+1
Y=INT(Y/10)
ENDDO
SETTALKON
8、本程序首先对矩阵按行读入数据,并将它转置。
SETTALKOFF
INPUT'N='TON
DIMEA(N,N)
FORI=1TON
FORJ=1TON
******1******
INPUT'A('+STR(I,1)+','+STR(J,1)+')='TOA(J,I) TOA(I,J)
ENDFOR
ENDFOR
FORI=1TON
******2******
FORJ=1TON FORJ=1TOI
T=A(I,J)
A(I,J)=A(J,I)
A(J,I)=T
ENDFOR
ENDFOR
SETTALKON
9、本程序实现:
对输入的正整数,判别其中包含指定数码的个数(如2312132中包含数码1的个数为2)。
SETTALKOFF
INPUT'输入数值='TOM
INPUT'输入数码'TON
S=0
DOWHIL.T.
******1******
Y=MOD(M/10) Y=MOD(M,10)
IFY=N
S=S+1
ENDIF
************
M=INT(M/N) M=INT(M/10)
IFM=0
EXIT
ENDIF
ENDDO
?
S
SETTALKON
10、本程序实现:
已知某表中有数值型字段X1,X2。
如果记录中X1,X2字段的值都大于0,则显示两值之和,并将上述和累加。
SETTALKOFF
CLEA
ACCEPT'请输入表名:
' TO NAME
******1******
USENAME USE&NAME
Z=0
DOWHIL.NOT.EOF()
IFX1>0ANDX2>0
Y=X1+X2
?
'记录号'+STR(RECNO(),2)+':
'+STR(Y)
Z=Z+Y
ENDIF
******2******
CONT SKIP
ENDDO
USE
?
Z
SETTALKON
11、本程序用于输入一个表名,若表存在则打开,并显示出其各个字段名。
SETTALKOFF
DOWHILE .T.
ACCEPT'请输入表名:
' TOFNAME
******1******
IFFILE()<>FNAME IF.NOT.FILE(FNAME)
WAIT'此表不存在'
ELSE
USE&FNAME
ZDSM=FCOUNT()
******2******
?
'此表中的字段有:
'+ZDSM+'个' ?
'此表中的字段有:
'+STR(ZDSM)+'个'
FORI=1TOZDSM
?
STR(I)+' '
?
?
FIELD(I)
ENDFOR
ENDIF
ENDDO
SETTALKON
12、本程序比较从键盘输入的若干个数的大小,并输出其中的最大和最小数。
SETTALKOFF
CLEA
INPUT'M='TOM
STOREMTOD,X
DOWHIL.T.
INPUT'N='TON
IFD D=N ENDIF IFX>N X=N ENDIF YN='A' ******1***** DOWHILUPPER(YN) NOT(UPPER(YN)='Y'ORUPPER(YN)='N') WAIT'是否继续(Y/N)'TOYN ENDDO ******2****** IFLOWER(YN)='Y' UPPER(YN)='Y'或LOWER(YN)='y' EXIT ENDIF ENDDO ? '最大的数是: ',D ? '最小的数是: ',X SETTALKON 13、本程序实现口令验证。 输入次数在3次以内,给予重输的提示,超过3次,则进入死循环。 SETTALKOFF CLEA I=1 DOWHIL.T. ? '请输入口令=' ******1****** SETCONSOLE SETCONSOLEOFF ACCEPTTOKL ******2****** SETCONSOLE SETCONSOLEON IFKL='21211' ? '欢迎使用本系统! ' EXIT ENDIF IFI>3 DOWHIL.T. ENDDO ENDIF I=I+1 ? '口令第'+STR(I,1)+'错,再试一次! ' ENDDO SETTALKON 14、本程序实现: 输入三个正数,判定是否构成一个三角形,如果构成一个三角形,则返回.T.,否则返回.F.。 另外通过参数的引用将三角形的面积传回。 *主程序 SETTALKOFF INPUT'X1='TOX1 INPUT'X2='TOX2 INPUT'X3='TOX3 ******1****** ? TARER(X1,X2,X3) ? TARER(@X1,X2,X3) ? X1 SETTALKON *自定义函数 FUNCTARER PARAA,B,C ******2****** IFA>B>C IFA S=(A+B+C) A=SQRT(S*(S-A)*(S-B)*(S-C)) RETU.T. ELSE A=0 RETU.F. ENDIF 15、本程序实现: 从键盘输入学生的学号,在表GRADE.DBF中计算该生的平均成绩,并说明成绩的档次(优、良、中、及格和不及格)。 表结构如下: GRADE 学号 课程号 成绩 C,6 C,4 N,3 SETTALKOFF CLEA USEGRADE C='不及格 及格 中 良 优' ACCEPT'输入学号='TOX LOCAFOR学号=X IFFOUND() ******1****** TOTAL成绩TOCJ AVER成绩TOCJFOR学号=X IFCJ<60 R=0 ELSE R=INT(CJ/10)-5 ENDIF ******2****** DC=STR(C,6) DC=SUBSTR(C,6*R+1,6) ? X,CJ,DC ELSE ? '查无此人! ' ENDIF USE SETTALKON 16、本程序用于计算S=1+2+3+…+10的和。 SETTALKOFF S=0 I=0 ******1****** DOWHILI<=10 DOWHILI<10 I=I+1 S=S+I ******2****** ENDFOR ENDDO ? S SETTALKON 17、本程序在表FILE中增加一条记录,并在名称字段写入“总计”,在今日早报和钱江晚报字段写入订报总数。 表结构: FILE 编号 名称 今日早报 钱江晚报 N,2 C,10 N,6 N,6 SETTALKOFF USEFILE MLD=0 MDD=0 DOWHIL.NOT.EOF() MLD=MLD+今日早报 MDD=MDD+钱江晚报 SKIP APPENDBLANK ENDDO ******1****** SKIP ******2****** REPLNAMETO'总计' REPL名称WITH'总计',今日早报WITHMLD,钱江晚报WITHMDD USE SETTALKON 18、本程序将表STU.DBF中的成绩小于60分的人显示出来。 表结构: STU.DBF 学号 姓名 成绩 C,5 C,8 N,3 SETTALKOFF CLEA USESTU ? '------------------------------------------' ? ' 不及格学生名单 ' ? '------------------------------------------' ? '学号 姓名 成绩' ******1****** GOBOTTOM GOTOP DOWHIL.NOT.EOF() IF成绩<60 ? 学号+SPACE(5)+姓名+SPACE(5)+STR(成绩,3) ENDIF SKIP ENDDO ? '---------------------------------------------' ******2****** ? '当前日期'+CTOD(DATE()) ? '当前日期'+DTOC(DATE()) USE SETTALKON 19、本程序把输入的字符串倒置后输出(如: 'ABCD'倒置后的字符串为'DCBA')。 SETTALKOFF C=SPACE(0) ACCEPT'请输入字符串='TO ST I=LEN(ST) DOWHILI>0 Q=SUBST(ST,I,1) ******1****** C=Q+C C=C+Q ******2****** I=I+1 I=I-1 ENDDO ? C SETTALKON 20、本程序实现任意查询功能。 SETTALKOFF CLEA ACCEPT'请输入表名: (扩展名略)' TOFNAME ******1****** IF.NOT.FILE(FNAME) IF.NOT.FILE(&FNAME..DBF) WAIT'此表不存在' ELSE USE&FNAME ZDSM=FCOUNT()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 改错 11
![提示](https://static.bdocx.com/images/bang_tan.gif)