vf程序.docx
《vf程序.docx》由会员分享,可在线阅读,更多相关《vf程序.docx(14页珍藏版)》请在冰点文库上搜索。
![vf程序.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/74b6d126-14c2-4a8f-82e5-c1284b086e0e/74b6d126-14c2-4a8f-82e5-c1284b086e0e1.gif)
vf程序
维语网
1,计算1*2*3*4*5与5*4*3*2*1
clear
i=1
s=1
fori=5to1step-1
s=s*i
endfor
?
s
2,计算阶乘
clear
s=0
t=1
fori=1to5
t=t*i
s=s+t
endfor
?
s
注:
计算机运算步骤t=1*2*3*4*5
S=0+1*1+1*1*2+1*1*2*3+1*1*2*3*4+1*1*2*3*4*5
3,计算:
已知头10个脚32,计算鸡?
兔子?
clear
input"请输入头的个数:
"tol_head
input"请输入脚的个数:
"tol_foot
fori=1tol_head-1
ifi*2+(l_head-1)*4=l_foot
?
"鸡"+alltrim(str(i,10))+"只"+","+"兔子"+alltrim(str(l_head-1,10))+"只"
exit
endif
endfor
绿色部分可换成:
?
alltrim(str(i,10))+;此处分号有换行连接作用
"chicken,"+alltrim(str(l_head-i,10))+"rabbits"
Exit
clear
input"请输入头的个数:
"tol_head
input"请输入脚的个数:
"tol_foot
if(l_foot%2)=0andl_food>l_head*2andl_footfori=1tol_head-1
ifi*2+(l_head-i)*4=l_foot
?
i,l_head-i
exit
endif
endfor
else
?
"输入的数据不能满足要求,无法计算结果"
endif
4,计算S=1+2+3+…..+100
clear
s=0
i=1
dowhilei<=100
s=s+i
i=i+1
enddo
?
"1+2+3+4+...+100="+alltrim(str(s,10))
注:
如果把上一行紫色部分去掉就会显示出:
1+2+3+4+...+100=
完整的结果显示是:
1+2+3+4+...+100=5050
5,计算撒这是“运用+,-,%,/,号”
clear
input"请输入第一个数:
"tonum1
input"请输入第二个数:
"tonum2
accept"请输入运算符+-*/:
"tooperator
ifoperator="+"oroperator="-"oroperator="*"oroperator="/"
docase
caseoperator="+"
num=num1+num2
caseoperator="-"
num=num1-num2
caseoperator="*"
num=num1*num2
caseoperator="/"
num=num1/num2
else
?
"输入的运算符非法,不能计算结果"
return
endcase
endif
?
alltrim(str(num1,10,2))+operator+alltrim(str(num2,10,2))+"="+alltrim(str(num,10,2))
6,计算最小公约数与最小公倍数
(注:
这个是同时计算约数与倍数的。
去掉绿色部分既是求最小公约数的程序)
Clear
input"请输入第一个数:
"tonum1
input"请输入第二个数:
"tonum2
a=num1
b=num2
ifint(num1)<>num1orint(num2)<>num2ornum1<0ornum2<0
?
"非法"
else
dowhile.t.
yushu=num1%num2
ifyushu=0
?
num2
?
a*b/num2
exit
else
num1=num2
num2=yushu
endif
enddo
endif
7水仙花案例407=4^3+0^3+7^3
153=1^3+5^3+3^3
clear
fori=100to999
g=i%10
s=int(i%100/10)
b=int(i/100)
ifg^3+s^3+b^3=i
?
i
endif
endfor
8,计算:
9*9乘法表
clear
fori=1to9
forj=1toi
?
?
str(i,1)+"*"+str(j,1)+"="+str(i*j,2)+""
endfor
?
Endfor
9,计算1-1/3+1/5-1/7+1/9-…+(-1^(n-1))/(2n-1)
当n+无穷大时,计算结果趋向于π/4
clear
i=1
s=0
f=1
forn=1to20
s=s+1/i*f
f=-f
i=i+2
endfor
?
4*s
10,循环套嵌
clear
fori=1to4
forj=1to5&&此灰色三行即是内嵌的部分
?
?
i*j&&i*1
Endfor2
Endfor3
4
5
注:
此程序也可写成(不过这个不是很清楚,但如果把最后的i=i+1去掉就对了)
clear
i=1
fori=1to4
j=1
dowhilej<=5
?
?
i*j
j=j+1
enddo
i=i+1
endfor
?
i,j
11,作图, ×
×××
×××××
×××××××
就是这个:
clear
i=1
fori=1to4
j=1
dowhilej<=5
?
?
i*j
j=j+1
enddo
endfor
?
i,j
会出现上下两部分的程序:
*clear
fori=1to4
forj=1to4-i
?
?
""
endfor
fork=1to2*i-1
?
?
"*"
endfor
?
endfor
fori=1to3
forj=1toi
?
?
""
endfor
fork=1to7-2*i
?
?
"*"
endfor
?
Endfor
综合梯形(这一个可以得出任何星号的图形)
clear
fori=1to4
forj=1to4-i
?
?
""
endfor
fork=1to2*i-1
?
?
"*"
endfor
?
endfor
fori=1to3
forj=1toi
?
?
""
endfor
fork=1to7-2*i
?
?
"*"
endfor
?
endfor
input"请输入行:
"ton
fori=-(n-1)/2to(n-1)/2
forj=1toabs(i)
?
?
""
endfor
fork=1ton-2*abs(i)
?
?
"*"
endfor
?
Endfor
***************************************
12,p51页选择题1
go2
scannext4forleft(名称,2)="电"
ifright(名称,2)="线"
next
endif
endscan
?
名称
结果显示:
电话线
13,计算2/1+3/2+5/3+8/5+13/8+。
。
。
+
(一下是8月13日的讲课内容)
clear
fz=2
fm=1
s=0
fori=1to20
s=s+fz/fm
t=fm
fm=fz
fz=fz+t
endfor
?
s
替换原理可用
clear
a=3
b=4
?
a,b
c=a
a=b
b=c
?
a,b
来解释
14,程序模块调用
clear
s1="hello"
s2="student"
dom1
?
s1,s2主意一下
?
"asdfghjkl"
Return
M1子程序
clear
a=3
b=4
?
a+b
Return
程序调用
clear
dop2
dop3
dop1
如果上面的与下面的房子一个程序里面也可以运行出同样的结果。
与下面的一块
procp1
a=3
b=4
?
a+b
return
procp2
d="hello"
e="student"
?
d,e
return
procp3
a1=date()
a2={^1985-1-4}
?
a1-a2
Return
Clear
setproctom3
dop2
dop3
dop1
setprocto
这个程序可以调用上面的
下面模块的模板,适合多个此类程序编写()
?
"子程序f2开始"
?
"试用p2()"
x=p2()
?
"返回值为:
",x
?
"子程序f2结束"
这个放到程序f2中
?
"主程序开始"
setproctof3
f2()
dop1
?
"主程序结束"
setprocto
procp1
?
"过程p1开始"
?
"试用p3"
?
"返回值:
",p3()
?
"过程p1结束"
这个放到程序f3中
15,模块同名变量屏蔽
clear
val1=10
val2=15
dop7
?
val1,val2
procp7
privateval1
val1=50
val2=100
?
val1,val2
Return
结果显示50100
10100
16,第十章,结构化查询语言
select仓库号,面积fromck
select*fromgyswhere地址="北京"
sele*fromdgdwhere订购日期<={^2001-6-30}and订购日期>={^2001-1-1}
sele*fromdgdwhere供应商号isnotnull
sele职工号,订购单号fromdgdwhere供应商号isnotnull
seledgd.*fromdgdwhere供应商号isnotnull
sele*fromdgdwhere供应商号isnotnull
seledgd.*fromdgdwhere供应商号isnotnull
sele*fromzgwhere工资<1250and仓库号="wh1"or仓库号="wh2"
sele*fromzgwhere工资<1250and(仓库号="wh1"or仓库号="wh2")
sele*fromzgwhere工资<1250and仓库号="wh1"or工资<1250and仓库号="wh2"