VFP编程题类型总结.docx

上传人:b****2 文档编号:115992 上传时间:2023-04-28 格式:DOCX 页数:32 大小:37.87KB
下载 相关 举报
VFP编程题类型总结.docx_第1页
第1页 / 共32页
VFP编程题类型总结.docx_第2页
第2页 / 共32页
VFP编程题类型总结.docx_第3页
第3页 / 共32页
VFP编程题类型总结.docx_第4页
第4页 / 共32页
VFP编程题类型总结.docx_第5页
第5页 / 共32页
VFP编程题类型总结.docx_第6页
第6页 / 共32页
VFP编程题类型总结.docx_第7页
第7页 / 共32页
VFP编程题类型总结.docx_第8页
第8页 / 共32页
VFP编程题类型总结.docx_第9页
第9页 / 共32页
VFP编程题类型总结.docx_第10页
第10页 / 共32页
VFP编程题类型总结.docx_第11页
第11页 / 共32页
VFP编程题类型总结.docx_第12页
第12页 / 共32页
VFP编程题类型总结.docx_第13页
第13页 / 共32页
VFP编程题类型总结.docx_第14页
第14页 / 共32页
VFP编程题类型总结.docx_第15页
第15页 / 共32页
VFP编程题类型总结.docx_第16页
第16页 / 共32页
VFP编程题类型总结.docx_第17页
第17页 / 共32页
VFP编程题类型总结.docx_第18页
第18页 / 共32页
VFP编程题类型总结.docx_第19页
第19页 / 共32页
VFP编程题类型总结.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VFP编程题类型总结.docx

《VFP编程题类型总结.docx》由会员分享,可在线阅读,更多相关《VFP编程题类型总结.docx(32页珍藏版)》请在冰点文库上搜索。

VFP编程题类型总结.docx

VFP编程题类型总结

编程题类型总结(VFP)

①求和类:

1.

求N的阶乘。

(N的值由键盘输入,应小于20)

INPUT“输入N的值”TON

P=1

FORI=1TON

P=P*I

ENDFOR

N,“!

=”,P

计算S=1!

+2!

+3!

+4!

+。

+N!

S=0

K=1

INPUT"N="TON

FORi=1TON

K=K*i

S=S+K

Endfor

S

2.求

SUM=0

FORI=1TO21STEP2

SUM=SUM+I^3

ENDFOR

”SUM=”,SUM

3.有一分数序列,求前20项之和

M=1

N=2

SUM=0

FORI=1TO20

TERM=N/M

SUM=SUM+TERM

X=N

N=M+N

M=X

TERM=N/M

ENDFOR

”SUM=”,SUM

4.求Sn=a+aa+aaa+aaaa……,其中,a是一个数字,a的个数为n,a和n由键盘输入

INPUT"输入a的值:

"TOA

INPUT"输入项数n:

"TON

SN=0

B=A

FORI=1TON

SN=SN+A

A=A*10+B

ENDFOR

"数列之和为:

",SN

5.求ex的台劳级数展开式的前n项之和(运行时输入x=,n=4)

INPUT“X=”TOX

INPUT“N=”TON

SUM=1

P=1

FORI=1TON-1

P=P*I

T=X^I/P

SUM=SUM+T

ENDFOR

”SUM=”,SUM

6.求1*2+3*4+5*6+……21*22

SUM=0

FORI=1TO21STEP2

SUM=SUM+I*(I+1)

ENDFOR

"和为=",SUM(1892)

7.通过键盘输入n,求下列级数的

和:

1-1/2+1/3-1/4+…+1/n

INPUTTON

S=0

F=1

FORI=1TON

S=S+F*(-1)^(I-1)/I

ENDFOR

S

8.计算连续自然数之和,并且显示和刚大于1000的最后一个自然数

Sn=1+2+3+4+…+N

STORE0TOS,N

DOWHILES<=1000

N=N+1

S=S+N

ENDDO

N

9.求1^2+4^2+7^2+…一直加到超过1000为止,输出和数与项数。

I=1

S=0

N=0

DOWHILES<=1000

S=S+I^2

I=I+3

N=N+1

ENDDO

N

S

10.求1-100之间所有奇数之和

SUM=0

FORI=1TO100STEP2

SUM=SUM+I

ENDFOR

“SUM=”,SUM

10.输出100到200之间所有能被5或7整除的整数,并输出他们的和。

SUM=0

FORI=100TO200

IFMOD(I,10)=5ANDMOD(I,7)=0

SUM=SUM+I

I

ENDIF

ENDFOR

“SUM=”,SUM

11.编程输出100~500之间能被7整除的奇数的个数。

N=0

FORI=101TO500STEP2

IFMOD(I,7)=0

N=N+1

ENDIF

ENDFOR

“N=”,N

N=0

FORI=100TO500

IFI%7=0ANDI%2=1

N=N+1

ENDIF

ENDFOR

“N=”,N

12.求1/(1*2)+1/(3*4)+1/(5*6)+……+1/(99*100)

sum=0

fori=1to99step2

sum=sum+1/(i*(i+1))

endfor

"sum=",sum

13.

求如下级数前N项之和(X和N的值由键盘输入)

S=1

INPUTTOX

INPUTTON

FORI=1TON

S=S+X^I/I

ENDFOR

“SUM=”,S

14.输出3-100之间的所有素数,并求其和。

SUM=0

FORJ=3TO100

FLAG=.T.

FORI=2TOSQRT(J)

IFMOD(J,I)=0

FLAG=.F.

EXIT

ENDIF

ENDFOR

IFFLAG=.T.

J

SUM=SUM+J

ENDIF

ENDFOR

"奇数之和是:

",SUM

②方程类

1.完成下面分段函数的计算,程序运行时用户从键盘输入一个数值X,在屏幕上输出Y值。

INPUT"请输入X值:

"TOX

IFX>0

Y=X*X

ELSE

IFX=0

Y=0

ELSE

Y=-(X*X)

ENDIF

ENDIF

Y

2.现有一元2次方程AX^2+BX+C=0其中ABC是整数且A不等于0若存在实根,则输出“在实数范围内有解”若不存在实根则输出“在实数范围内无解”/求解

INPUTTOA

INPUTTOB

INPUTTOC

D=B*B-4*A*C

IFD>=0

"在实数范围内有解"

ELSE

"在实数范围内无解"

ENDIF

/

INPUTTOA

INPUTTOB

INPUTTOC

D=B*B-4*A*C

IFD>0

X1=(-B+SQRT(D))/(2*A)

X2=(-B-SQRT(D))/(2*A)

X1

X2

ELSE

IFD>0

X=-B/(2*A)

"X1=X2=",X

ELSE

"无解"

ENDIF

ENDIF

3.输入一个X的值,求Y的值。

Y=

INPUTTOX

DOCASE

CASEX<1

Y=X

CASEX<10

Y=2*X-1

CASEX>=10

Y=3*X-11

ENDCASE

Y

③数组类

1.输入10个数,输出其中小于平均值S的数。

DIMEA(10)

S=0

FORI=1TO10

INPUTTOA(I)

S=S+A(I)

ENDFOR

S=S/10

FORI=1TO10

IFA(I)

A(I)

ENDIF

ENDFOR

2.输入10个数,求其中最大数和最小数。

dimea(10)

fori=1to10

input“Enteranumber:

”toa(i)

endfor

big=a

(1)

small=a

(1)

fori=2to10

ifa(i)>big

big=a(i)

ENDIF

ifa(i)

small=a(i)

endif

endfor

“Thesmallestnumberis”,small

“Thebiggestnumberis”,big

3.输入10个数,求其中最大数和最小数,并确定它们的位置。

dimea(10)

fori=1to10

input“Enteranumber:

”toa(i)

endfor

big=a

(1)

BP=1

small=a

(1)

SP=1

fori=2to10

ifa(i)>big

big=a(i)

BP=I

ENDIF

ifa(i)

small=a(i)

SP=I

endif

endfor

“ThePLACEOFTHEsmallestnumberis”,sP

“Thesmallestnumberis”,small

“ThePLACEOFTHEbiggestnumberis”,bP

“Thebiggestnumberis”,big

4.从键盘输入10个整数,现从中查找某个数,若查到,输出“YES”,否则输出“NO”。

DIMENSIONA(10)

FORI=1TO10

INPUT"输入10个整数"TOA(I)

ENDFOR

INPUT"输入待查找的整数"TOX

FORI=1TO10

IFX=A(I)

"YES"

EXIT

ENDIF

ENDFOR

IFI>10

"NO"

ENDIF

5.已有按从小到大的顺序排列的10个数,现输入一个数,要求插入到数列中。

插入后数列仍然按从小到大顺序排列。

DIMENSIONA(11)

FORI=1TO10

INPUT“递增输入10个整数”TOA(I)

ENDFOR

INPUT“任意输入一个整数”TOX

FORI=10TO1STEP-1

IFX

IFI=1

A(I+1)=A(I)

A(I)=X

ELSE

A(I+1)=A(I)

ENDIF

ELSE

A(I+1)=X

EXIT

ENDIF

ENDFOR

FORI=1TO11

A(I)

ENDFOR

6.数组A中已存放了10个由小到大排列的数。

现从键盘输入一个数X,要求删除数组中与其相同的数,并将后续的数依次前移,最后输出剩余的数。

(7分)

考虑到有重复数的程序如下:

DIMEA(10)

FORI=1TO10

INPUT“按递增输入10个数”TOA(I)

ENDFOR

INPUT“输入待删除的数”TOX

I=1

J=1

N=0

DOWHILEI<=10

IFA(I)

I=I+1

J=J+1

ELSE

IFA(I)=X

I=I+1

N=N+1

ELSE

EXIT

ENDIF

ENDIF

ENDDO

FORK=ITO10

A(J)=A(K)

J=J+1

ENDFOR

FORK=1TO10-N

A(K)

ENDFOR

7.输入10个数,按升序排列后输出。

dimea(10)

fori=1to10

input“Enteraninteger:

”toa(i)

endfor

fori=1to9

forj=i+1to10

ifa(i)>a(j)

temp=a(i)

a(i)=a(j)

a(j)=temp

endif

endfor

endfor

fori=1to10

a(i)

endfor

以上是一维数组(数组中只有一个下标)程序举例。

在VFP中,还可以建立二维数组。

定义方法是:

DIMEA(2,3)

第一维代表行,第二维代表列,这样就在内存中开辟了6个连续的存储单元,数组元素的名称分别为:

A(1,1)A(1,2)A(1,3)

A(2,1)A(2,2)A(2,3)二维数组的元素赋初值及其处理通常要用二重循环,外循环代表行,内循环代表列。

如:

FORI=1TO2

FORJ=1TO3

INPUTTOA(I,J)

ENDFOR

ENDFOR

二维数组特别适合用来解决矩阵问题。

矩阵中有如下几个术语要掌握:

行列相等的矩阵叫方阵;方阵中有主对角线、辅对角线、下三角元素、外围元素等

1.建立一个六行六列的方阵,求出两条对角线上所有元素之和。

DIMEA(6,6)

FORI=1TO6

FORJ=1TO6

A(I,J)=I+J

ENDFOR

ENDFOR

SUM=0

FORI=1TO6

SUM=A(I,I)+A(I,7-I)

ENDFOR

“两条对角线上所有元素之和为”,SUM

2.一个四行五列的矩阵,求出其中最大元素的值,以及所在的行号与列号。

dimea(4,5)

fori=1to4

forj=1to5

inputtoa(i,j)

endfor

endfor

big=a(1,1)

row=1

col=1

fori=1to4

forj=1to5

ifa(i,j)>big

big=a(i,j)

row=i

col=j

DIMEA(3,4),B(3,4),C(3,4)

FORI=1TO3

FORJ=1TO4

INPUTTOA(I,J)

INPUTTOB(I,J)

C(I,J)=A(I,J)+B(I,J)

ENDFOR

ENDFOR

FORI=1TO3

FORJ=1TO4

STR(C(I,J),6)

ENDFOR

ENDFOR

endif

endfor

endfor

big,row,col

3.求两个矩阵之和,即C(3,4)=A(3,4)+B(3,4)

DIMEA(3,4),B(3,4),C(3,4)

FORI=1TO3

FORJ=1TO4

INPUTTOA(I,J)

ENDFOR

ENDFOR

FORI=1TO3

FORJ=1TO4

INPUTTOB(I,J)

ENDFOR

ENDFOR

FORI=1TO3

FORJ=1TO4

C(I,J)=A(I,J)+B(I,J)

ENDFOR

ENDFOR

FORI=1TO3

FORJ=1TO4

STR(C(I,J),6)

ENDFOR

ENDFOR

④判断类

1.键盘输入一个年份,判断是平年还是闰年

INPUT“Enterayear:

”TOY、

IFMOD(Y,100)<>0ANDMOD(Y,4)=0ORMOD(Y,400)=0

Y,“isaleapyear.”

ELSE

Y,“isacommonyear”

ENDIF

2.从键盘输入一个整数,判断是偶数还是奇数。

INPUT"整数"TOX

IFMOD(X,2)=0

"这是个偶数"

ELSE

"这是个奇数"

ENDIF

3.输入一个字符,判断是否为英文字母。

ACCEPT"请输入一个字符:

"TOCH

IFASC(CH)>=65ANDASC(CH)<=90ORASC(CH)>=97ANDASC(CH)<=122

CH,"是英文字母"

ELSE

CH,"不是英文字母"

ENDIF

4.一个数如果恰好等于它的因子之和,这个数就称为“完数”,如:

6=1+2+3,故6是完数。

编程判断从键盘输入一个正整数是否为完数。

INPUT“输入一个正整数”TON

S=0

FORI=1TON-1

IFMOD(N,I)=0

S=S+I

ENDIF

ENDFOR

IFS=N

N,“是完数”

ELSE

N,“不是完数”

ENDIF

5.输入一个大于等于2的整数,判断是否为素数一个正整数,若只能被1和本身整除,则该数称为素数或质数

INPUT“请输入一个大于2的整数”TON

FLAG=.T.

FORI=2TON-1

IFMOD(N,I)=0

FLAG=.F.

EXIT

ENDIF

ENDFOR

IFFLAG=.T.

N,“是素数”

ELSE

N,“不是素数”

ENDIF

6.输入一个字符串,判断其中有多少个大写字母、小写字母、数字字符、空格字符以及其他特殊字符

STORE0TOUPPER,LOWER,DIGIT,SPACE,SPECIAL

ACCEPT“输入一个字符串”TOST

L=LEN(ST)

FORI=1TOL

CH=SUBST(ST,I,1)

DOCASE

CASEASC(CH)>=65ANDASC(CH)<=90

UPPER=UPPER+1

CASEASC(CH)>=48ANDASC(CH)<=57

DIGIT=DIGIT+1

CASEASC(CH)>=97ANDASC(CH)<=122

LOWER=LOWER+1

CASEASC(CH)=32

SPACE=SPACE+1

OTHERWISE

SPECIAL=SPECIAL+1

ENDCASE

ENDFOR

“字符串中大写字母的个数是”,UPPER

“字符串中小写字母的个数是”,LOWER

“字符串中数字字符的个数是”,DIGIT

“字符串中空格字符的个数是”,SPACE

“字符串中其他字符的个数是”,SPECIAL

⑤转换类

1.输入个大写字母,要求输出它的ASCII码及其对应的小写字母。

ACCEPT“输入一个大写字母:

”TOCH

CH,“的ASCII码为”,ASC(CH)

CH,“对应的小写字母为”,CHR(ASC(CH)+32)

2.从键盘输入一个八进制数,将其转换成等值的十进制数。

SETTALKOFF

CLEAR

s=0

accept"EnteraNOCTALnumber:

"ton

L=len(n)

fori=1toL

s=s+val(substr(n,i,1))*8**(L-i)

endfor

"s=",s

SETTALKON

CANCEL

3.从键盘输入一个十进制数,将其转换成等值的八进制数。

SETTALKOFF

CLEAR

input"EnteraDECIMALnumber:

"ton

oct=""

ifn=0

oct="0"

endif

dowhilen>0

R=mod(n,8)

oct=str(R,1)+oct

n=int(n/8)

enddo

oct

SETTALKON

CANCEL

4.从键盘输入一个二进制数,将其转换成等值的十进制数。

s=0

ACCEPT“Enterabinarynumber:

”ton

L=len(n)

fori=1toL

s=s+val(substr(n,i,1))*2**(L-i)

endfor

“等值的十进制数为”,s

从键盘输入一个十进制数,将其转换成等值的二进制数。

input"Enteradecimalnumber:

"ton

bin=“”

ifn=0

bin=“0”

endif

dowhilen>0

R=mod(n,2)

bin=str(R,1)+bin

n=int(n/2)

enddo

“等值的二进制数为”,bin

⑥真实情况类

1.输入乘车的公里数,输出乘车费(计费标准:

公里之内是6元,公里以外,每超过1公里增加1元2角)

INPUT"输入公里数"TOX

IFX>

PAY=*+6

ELSE

PAY=6

ENDIF

"应付费",PAY,"元"

2.设交纳所得税的规定如下:

DOCASE语句

收入<=1500元免交所得税

1500元<收入<=3000元所得税为5%

3000元<收入<=6000元所得税为8%

6000元<收入<=10000元所得税为10%

10000元<收入<=50000元所得税为15%

收入>50000元所得税为20%

请编程,从键盘输入一个数,计算应交纳的所得税。

INPUT“income=”tox

docase

casex<=1500⑦

tax=0

casex<=3000

tax=(X-1500)*

casex<=6000

tax=(X-3000)*+(3000-1500)*

casex<=10000

tax=(X-6000)*+(6000-3000)*+(3000-1500)*

CASEX<=50000

TAX=(X-10000)*+(10000-6000)*+(6000-3000)*+(3000-1500)*

otherwise

tax=(X-50000)*+(50000-10000)*+(10000-6000)*&

+(6000-3000)*+(3000-1500)*

endcase

“INCOMETAXIS”,TAX,“元”

3.键盘输入学生的成绩,若95-100则输出优秀,85-94是很好,70-84则输出好,60-69是一般60分以下输出不及格。

INPUT"成绩"TOFS

DOCASE

CASEFS>=95

"优秀"

CASEFS>=85

"很好"

CASEFS>=70

"好"

CASEFS>=60

"一般"

OTHERWISE

"不及格"

ENDCASE

4.编写学生成绩统计程序。

设有三位同学,考数学、物理、化学三门课,统计每个同学的总分和平均分

SETTALKOFF

CLEAR

dimes(3,6)

fori=1to3

forj=1to4

input"inputSTUDENT-NOANDSCORE:

"tos(i,j)

endfor

endfor

fori=1to3

s(i,5)=s(i,2)+s(i,3)+s(i,4)

s(i,6)=round(s(i,5)/3,1)

endfor

space(5),"stuno",space(4),"math",space(4),"phy",space(5),"che",space(4),

"total",space(5),"aver"

fori=1to3

forj=1to6

s(i,j)

endfor

endfor

SETTALKON

CANCEL

5.某班有45名参加考试的同学,现在要求从键盘输入全班一门课的成绩,输出该课程的平均分,以及及格人数和半分比。

SUM=0

N=1

FORI=1TO45

INPUT"全班一门课的成绩"TOX

SUM=SUM+X

IFX>=60

N=N+1

ENDIF

ENDFOR

"平均分",SUM/45

"几个人数",N

"合格率",N/45*100,"%"

⑦矩阵类

1.建立一个五行五列的矩阵,求出外围所有元素之和。

DIMENSIONA(5,5)

S=0

S1=0

FORI=1TO5

FORJ=1TO5

INPUTTOA(I,J)

S=S+A(I,J)

ENDFOR

ENDFOR

FORI=2TO4

FORJ=2TO4

S1=S1+A(I,J)

ENDFOR

ENDFOR

S-S1

⑧打印图形类

1.打印如下图形:

*****

*****

*****

*****

CLEAR

FORI=1TO5

SPACE(I)

FORJ=1TO5

”*”

ENDFOR

ENDFOR

附:

打印如下图形:

*****

****

***

**

*

**

***

****

*****

FORI=5TO1STEP-1

SPACE(5-I)

FORJ=1TOI

”*”

ENDFOR

ENDFOR

FORI=2TO5

SPACE(5-I)

FORJ=1TOI

”*”

ENDFOR

ENDFOR

2.打印如下所示的九九乘法表

①clear

forN=1TO9

for

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

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2