程序改错11.docx

上传人:b****7 文档编号:23665362 上传时间:2023-05-19 格式:DOCX 页数:41 大小:24.87KB
下载 相关 举报
程序改错11.docx_第1页
第1页 / 共41页
程序改错11.docx_第2页
第2页 / 共41页
程序改错11.docx_第3页
第3页 / 共41页
程序改错11.docx_第4页
第4页 / 共41页
程序改错11.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

程序改错11.docx

《程序改错11.docx》由会员分享,可在线阅读,更多相关《程序改错11.docx(41页珍藏版)》请在冰豆网上搜索。

程序改错11.docx

程序改错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()

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1