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