VF程序设计复习资料最新修订.docx
- 文档编号:8259038
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:27
- 大小:22.78KB
VF程序设计复习资料最新修订.docx
《VF程序设计复习资料最新修订.docx》由会员分享,可在线阅读,更多相关《VF程序设计复习资料最新修订.docx(27页珍藏版)》请在冰豆网上搜索。
VF程序设计复习资料最新修订
第二部分结构化程序设计语句和算法
一、顺序结构
程序设计的命令:
1.变量的赋值
变量=表达式
2.变量的输入
INPUT提示信息TO变量
3.表达式的输出
?
表达式
表示在当前光标的下一行输出;
?
?
表达式
表示在当前光标位置输出;
算法:
1.求园的面积
Clear
Input“r=”tor
S=3.14*r^2
?
”园的面积是:
”,s
Return
2.交换任意两个变量的值
Clear
Input“x=”tox
Input“y=”toy
t=x
x=y
y=t
?
x
?
y
RETURN
二、选择结构
2.1IF语句
IF条件
命令序列A
ELSE
命令序列B
ENDIF
如果命令序列B为空,则ELSE与命令序列B可以省略。
算法:
1.判断闰年
Clear
Input“y=”toy
If(y%4=0andy%100<>0)ory%400=0
?
”yes”
Else
?
”no”
endif
return
2.求3个数的最大值
Clear
Input“x=”toX
Input“y=”toY
Input“z=”toZ
Ifx>y
maxnum=x
else
maxnum=y
endif
ifmaxnum maxnum=z endif ? maxnum 3、判断一个数是否是水仙花数。 clear input"m="tom x=int(m/100) y=int((m%100)/10) z=m%10 ifx^3+y^3+z^3=m ? ”yes” else ? ”no” endif return 三、循环结构 程序设计的命令: 1.Dowhile条件 循环体 Enddo 2.For循环变量=初值TO终值STEP步长 循环体 Endfor 其中步长为1时,STEP1可以省略。 并且步长可以为正,也可以为负,步长为正时循环条件时循环变量<=终值,而步长为负时循环条件>=终值。 程序: 1. s=1+2+3…+100 Clear i=1 s=0 Dowhilei<=100 s=s+i i=i+1 Enddo ? s return 2.将上例用for语句实现 Clear s=0 Fori=1to100 s=s+i endfor ? s Return 3.求1-100奇数的和。 Clear s=0 Fori=1to100step2 s=s+i endfor ? s Return 4.求1-100偶数的和。 Clear s=0 Fori=2to100step2 s=s+i endfor ? s Return 5.求s=1-1/2+1/3-1/4+....+1/100 clear s=0 fori=1to100 s=s+1/i*(-1)^(i+1) endfor ? s Return 6.求N! =1×2×3×4…×N Clear Input“n=”ton t=1 Fori=1ton t=t*i endfor ? f return 7.求s=1! +2! +……+n! (即求阶乘之和) clear input"n="ton s=0 t=1 fori=1ton t=t*i s=s+t endfor ? "s=",s Return 8.计算s=1! +1/2! +1/3! ……+1/n! (即求阶乘之和) 用一重循环实现 clear input"n="ton s=0 t=1 fori=1ton t=t*i s=s+1/t endfor ? "s=",s return 9.计算s=1! +1/2! +1/3! ……(要求1/n! <10-6为止) clear s=0 t=1 i=1 dowhile1/t>=10^(-6) s=s+1/t i=i+1 t=t*i endfor ? "s=",s return 10.计算s=1! -1/2! +1/3! -1/4! ……(要求1/n! <10-6为止) clear s=0 t=1 i=1 dowhile1/t>=10^(-6) s=s+1/t*(-1)*(i+1) i=i+1 t=t*i endfor ? "s=",s Return 11.计算s=x/1! -x2/2! +x3/3! ……(要求xn/n! <10-6为止) Clear Input“x=”tox s=0 t=1 i=1 dowhilex^i/t>=10^(-6) s=s+(x^i/t)*(-1)*(i+1) i=i+1 t=t*i endfor ? "s=",s return 12.要求以5个为一组输出1-100的所有整数。 Clear c=0 fori=1to100 ? ? i ifi%5=0 ? Endif endfor return 13.要求以5个为一组输出1-100中所有能被3整除的整数。 Clear c=0 fori=1to100 ifi%3=0 ? ? i c=c+1 ifc%5=0 ? Endif endif endfor return 14.判断某个数是否是素数。 (除了1和它本身之外不能被任何一个整数所整除的自然数叫质数,又称为素数。 ) 设置变量f用于记录是否为素数, flag=.t.表示是素数; flag=.f.表示不是素数。 程序: clear input"m="tom flag=.T. fori=2tom-1 ifm%i=0 flag=.F. exit endif endfor ifflag=.T. ? "yes" else ? "no" endif return 15.输出100-1000以内的所有素数,并计算这些素数之和。 要求: 输出时按照每行5个数据方式输出。 clear s=0 n=0 form=100to1000 flag=.t. fori=2tom-1 ifm%i=0 flag=.f. exit endif endfor ifflag=.t. ? ? m c=c+1 ifc%5=0 ? endif s=s+m endif endfor ? "s=",s return 16.输出100—999之间的所有的水仙花数。 所谓水仙花数是指一个3位数,其每位数字的立方和等于它本身。 clear form=100to999 x=int(m/100) y=int((m%100)/10)或者y=int(m/10)%10 z=m%10 ifx^3+y^3+z^3=m ? m endif endfor return 17.求fibnocsi数列。 fibnocsi数列即: 数列第1个数为1,第2个数1,第3个数是第1、2两个数之和,以后的每个数都是其前两个数之和,要求输出这个数列的前20项。 (直接用数组) clear f1=1 f2=1 ? ? f1,f2 fori=3to20 f=f2+f1 ? ? f f1=f2 f2=f endfor return 18.求两个数的最大公约数。 算法: 采用辗转相除法: m除以n,得余数r;如果r不等于0,则将n赋予m,r赋予n,再用m除以n,得余数r;依次类推,直到r=0为止,此时的n就是最大公约数。 Clear Input"m="tom Input"n="ton r=m%n dowhiler<>0 m=n n=r r=m%n enddo ? n Return 最大公倍数: M和n的乘积除以最大公约数就是最小公倍数。 Clear Input"m="tom Input"n="ton x=m y=n r=m%n dowhiler<>0 m=n n=r r=m%n enddo ? x*y/n Return 18.穷举法: 百钱买百鸡问题。 假设用100元买了100只鸡,如果公鸡5元一只,母鸡3元一只,小鸡3只1元,如果买的鸡中公鸡、母鸡、小鸡都有,问到底有各有多少只鸡? clear forx=1to19 fory=1to33 z=100-x-y ifz%3=0and5*x+3*y+z/3=100 ? x,y,z endif endif endfor endfor return 19.设计1个程序,要求是: (1)在键盘上输入1个不小于3的自然数N(例输入10),求出其不到第N个自然数中奇数之和,并输出结果 (2)输出1到第N自然数中所有质数的个数 clear input"n="ton s=0 c=0 ifn>=3then fori=1ton-1step2 s=s+i endfor ? s fori=2ton flag=.T. forj=2toi-1 ifi%j=0 flag=.F. exit endif endfor iff=.T. c=c+1 endif endfor ? c endif return 四、一维数组 1、定义: dim数组名(长度) dima(10) 2、引用: 数组名(下标) a (1),a (2),a(3) 下标从1开始引用,并且下标可以是常量、变量和表达式。 a(i),a(i+1) 3、一维数组的赋值和输出 1)利用键盘给数组元素赋值 dimena(10) fori=1to10 input"输入数据: "toa(i) endfor return 2)利用rand()函数给数组元素赋值 随机产生10个两位整数 dimena(10) fori=1to10 a(i)=int(rand()*(80))+10 Endfor 4、一维数组的输出 fori=1to10 ? ? a(i) Endfor 例子: 1、从键盘上输入10个数,求其平均值。 Clear Dimea(10) S=0 Fori=1to10 S=s+a(i) Endfor ? s/10 Return 2、将具有n个元素的一维数组的值按逆序重新存放。 clear input"n="ton dimena(n) fori=1ton input"输入数据: "toa(i) endfor fori=1toint(n/2) t=a(i) a(i)=a(n-i+1) a(n-i+1)=t endfor fori=1ton ? ? a(i) endfor return 3、从键盘输入10个数,从中找出最大和最小的数,以及它们的位置。 求最小数和其位置: clear dimena(10) fori=1to10 input"输入数据: "toa(i) endfor minx=a (1) p=1 fori=2to10 ifminx>a(i) minx=a(i) p=i endif endfor ? minx ? p Return 求最大数和其位置: clear dimena(10) fori=1to10 input"输入数据: "toa(i) endfor maxx=a (1) p=1 fori=2to10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VF 程序设计 复习资料 最新 修订