VFP程序设计第六章程序设计

  • 格式:doc
  • 大小:71.04 KB
  • 文档页数:10

1.有一函数:(分支嵌套)

x (x<1)

y= 2x-1 (1≤x<10)

3x-11 (x≥10)

编写程序,输入x,输出y的值。

clear

input "Enter x please!" to x

if x<1

y=x

else

if x<10

y=2*x-1

else

y=3*x-11

endif

endif

? 'x=',x,'y=',y

2.编写程序,从键盘输入一个年份,判断它是否闰年。

clear

input "Enter year number please!" to y

if y%4=0 and y%100<>0 or y%400=0

? y,"is a leap year!"

else

? y,"is not leap year."

endif

3.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。90分以上为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”。(多分支)

clear

input “请输入一百分制成绩” to cj

do case

case cj>=90

?” A”

case cj>=80 ?” B”

case cj>=70

?” C”

case cj>=60

?” D”

otherwise

?” E”

endcase

4.编写程序,判断输入三个数a,b,c大小。(分支嵌套)

Input “输入第一个数为:”to a

Input “输入第一个数为:”to b

Input “输入第一个数为:”to c

If a>b

If a>c

?”最大数为” a

Else

?”最大数为” c

Endif

Else

If b>c

?“最大数为”b

Else

?”最大数为”c

Endif

Endif

5.编写程序,从键盘输入5个数,找出其中的最大数和最小数。

INPUT "请输入第1个数:" TO MAX

MIN=MAX

FOR I=2 TO 5

INPUT "请输入第"+STR(I,2)+"个数:" TO X

IF X>MAX

MAX=X ELSE

MIN=X

ENDIF

ENDFOR

? 'MAX=',MAX

? 'MIN=',MIN

7.写程序,输入一个三位自然数,判断该数是否为水仙花数。所谓水仙花数是指一个三位自然数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153=13+53+33。

input to zrs

gw=zrs%10

sw=int(zrs/10)%10

bw=int(zrs/100)

if bw**3+sw**3+gw**3=zrs

?”yes!”

else

?”no.”

endif

dfu

8.编写程序,输入一个自然数,判断该数是否为素数。

clear

input to zrs

sf=.t.

for i=2 to sqrt(zrs)

if zrs%i=0

sf=.f.

exit

endif endfor

if sf=.t.

?”yes”

else

?”no”

endif

9.编写程序,输出如图所示的图形。

clear

for i=1 to 5

?space(6-i)+repl(„*‟,2*i-1)

endf

for i=1 to 4

?space(i+1)+repl(„+‟,9-2*i)

endf

10.阶乘

(1)求单个数阶乘(以5为例)

Clear

J=1

I=1

Do while i<=5

J=j*i

I=i+1

Enddo

?j

Return

(2)求阶乘和(求1到5阶乘的和)

Clear

S=0

I=1 补充(循环嵌套)

输出 图形:

*****

*****

*****

*****

*****

For i=1 to 5(多少行)

?

For j=i to 5(每行多少个)

??”*”

Endfor

endfor *

***

*****

*******

*********

+++++++

+++++

+++

+

J=1

Do while i<=5

J=j*i

S=s+j

I=i+1

Enddo

?s

Return

11.输出下面图形:

a

bbb

ccccc

ddddddd

ccccc

bbb

a

clear

for i=1 to 4

??space(4-i)

for j=1 to 2*i-1

?? chr(96+i) &&chr()函数 ASCII码转换字符函数

endfor

?

endfor

for i= 1 to 3

??space(i)

for j=1 to 5-2*(i-1)

??chr(100-i)

endfor

?

endfor

12.利用双重循环编程求sum=1+(1+2)+(1+2+3)+…+(1+2+3+…+10)之值。

后三行第二种方法:

For i =3 to 1 step -1

??Space(4-i)

For j=1to 2*i-1

??Chr(96+i)

endfor

? "1+(1+2)+(1+2+3)+…+(1+2+3+…+10)

13.九九乘法表

set talk off

clear

X=1

DO WHILE X<=9

Y=1

DO WHILE Y<=X

S=X*Y

??STR(Y,1)+"*"+STR(X,1)+"="+STR(S,2)+" "

Y=Y+1

ENDDO

?

X=X+1

ENDDO

SET TALK ON

RETURN

14.图形: *

***

*****

*******

*********

***********

for i=1 to 6 && 用于控制行

?space(6-i)

for j=1 to 2*i-1 && 用于控制每行的字符个数

??“*” && 每行输出的字符

endfor

endfor

15.计算1!+2!+3!+......+n!

set talk off

clea input "请输入一个数" to n

s=0

t=1

for i=1 to n

t= t*i

s=s+t

endfor

?S

Return

16. 公有,私有,局部变量的应用。

clear

public a,b,c

a=1

b=2

c=3

d=5

local e

e=6

do P1

?"在全程序中:"

?"a=", a, "b=", b, "c=", c, "d=", d, "e=", e

return

procedure P1

private a

a=20

local c, e

f=6

e=30

c=100

?"在p1中:"

?"a=", a, "b=", b, "c=", c, "d=", d, "e=", e, "f=", f

do p2

return

procedure p2

?"在p2中:"

?"c=", c

return

执行结果: 在P1中

a= 20 b= 2 c= 100 d= 5 e= 30 f=6

在P2中

c=3

在主程序中

a= 1 b= 2 c= 3 d= 5 e=6

17.奇偶数,求和(do while循环结构中循环体s=0)

1)s=1+2+3+......100 : i<101 s=s+i i=i+1

2)S=1+...+100 奇数和: i<51 s=s+2*(i-1) i=i+1

3)S=1+...+100 偶数和: i<51 s=s+2*i i=i+1

4)S=1+1/2+1/3+...+1/100: i<101 s=s+1/i i=i+1

5)S=1-1/2+1/3-1/4+...-1/100: i<101 s=s+1/i*(-1)^(i+1) i=i+1

6)S=1*2+3*4+...+99*100: i<51 s=(2*i-1)*(2*i) i=i+1

18.子程序,过程,自定义函数求任意两个圆面积

Set talk off

Clea

S=0

Input”输入圆1的半径” to r1

Input”输入圆2的半径” to r2

Do sub with r1,r2,s

?”圆1的面积为” s

?”圆2的面积为” s

1)子程序sub.prg

Para r,s

S=pi()*r*r

return