VF程序设计复习资料.docx

上传人:b****5 文档编号:7297976 上传时间:2023-01-22 格式:DOCX 页数:51 大小:108.44KB
下载 相关 举报
VF程序设计复习资料.docx_第1页
第1页 / 共51页
VF程序设计复习资料.docx_第2页
第2页 / 共51页
VF程序设计复习资料.docx_第3页
第3页 / 共51页
VF程序设计复习资料.docx_第4页
第4页 / 共51页
VF程序设计复习资料.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

VF程序设计复习资料.docx

《VF程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《VF程序设计复习资料.docx(51页珍藏版)》请在冰豆网上搜索。

VF程序设计复习资料.docx

VF程序设计复习资料

第二部分结构化程序设计语句和算法

一、程序的概念

程序:

是计算机能够分析执行的命令序列的集合。

程序设计:

是计算机用户将解决某一实际问题所用的命令按一定的逻辑顺序编制成程序,并以文件的形式存放于磁盘的过程。

执行程序时,计算机按顺序自动执行程序文件中的命令。

例编程求1+2+3+……+100

clear

s=0

fori=1to100

s=s+i

endfor

?

“s=”,s

return

二、VF语言基础

1.数据类型

1)数值型:

由数字0-9以及正负号(+和-)和小数点(.)组成。

例如:

123,34.56,-100

2)字符型:

英文、汉字、数字、空格和标点符等组成的一串字符。

例如:

”hello”,”goodmorning”。

注意:

其表示方法用""将字符串括起来。

3)逻辑型:

表示的值为真和假两种状态,.T.或.t.表示真,.F.或.f.表示假。

2.常量

1)数值型常量:

例如:

123,34.56,-100

2)字符型常量:

”hello”,”goodmorning”。

3)逻辑型常量:

.T.表示真,.F.表示假。

3.变量

1)概念:

变量是指在程序运行期间其值可以变化的量,一个变量可以存放一个数据。

2)变量名:

每个变量应有一个名字,称为变量名。

(尽量用一个字母作为一个变量名)

如:

x,y,z,i,j等。

注意:

VF中变量不需要定义就可以直接使用。

4.运算符及表达式

●运算符:

用来进行运算的符号;

●表达式:

是指用运算符将变量、数组元素、常量、函数连接组合得到的一组有物理意义的式子。

表达式分为算术表达式、字符表达式、关系表达式和逻辑表达式4类。

表达式和常量一样,是具有数据类型的数据(求值之后),因此一个表达式中的各项必须具有相同类型。

1)算术运算符:

()^%*、/+、-

算术表达式:

10+3*4-152^3x^3/y+a%5

2)字符运算符:

完全连接“+”:

“Ihavea”+“Book”=“IhaveaBook”

包含运算“$”:

“abc”$“abcdef”=.t.

“ABC”$“abcdef”=.f.

3)关系运算符:

<>===<=>=<>

关系表达式:

<表达式><关系运算符><表达式>

关系表达式相当于一个命题,这个命题要么成立,要么不成立,如果成立,命题为真,如果不成立命题为假。

1244.33>=12结果:

.t.

10=20结果:

.f.

”A”<”B”结果:

.t.

”ABC”>”ABD”结果:

.f.

4)逻辑运算符:

!

NOT或.NOT.OR或.OR.AND或.AND.

逻辑表达式:

<关系表达式><逻辑运算符><关系表达式>

逻辑表达式也相当于一个命题,这个命题要么成立,要么不成立,如果成立,命题为真,如果不成立命题为假。

x>5ORy<10.T.或者.F.,取决于x,y的值

推导判断闰年的表达式:

闰年:

能被4整除,但是不能被100整除;或者能被400整除。

(y%4=0andy%100<>0)ory%400=0

5.常用函数

1)取绝对值函数:

abs(数值表达式)

2)取整函数:

int(数值表达式)

功能:

取数值表达式的整数部分。

int(12.3)=12

int(56.78)=56

3)求平方根函数:

sqrt(数值表达式)

4)求字符串长度函数:

len(字符串表达式)

len("hello")=5

len("你好")=4

说明:

一个汉字占两个字符的宽度。

5)取子串函数:

●Left(字符串表达式,长度)

●Right(字符串表达式,长度)

●substr(字符串表达式,起始位置,长度)

功能:

从指定表达式值的指始位置取指定长度的字符串作为函数值。

Substr(“hello”,2,3)结果:

ell

6)计算字串出现次数函数:

Occurs(字符串表达式1,字符串表达式2)

功能:

返回第一个字符串在第二个字符串中出现的次数。

Occurs(“a”,”abcaa”)结果:

3

7)大小写转换函数

Lower(字符串表达式):

Upper(字符串表达式):

8)生成空格字符函数:

space(数值表达式)

功能:

生成若干个空格,空格的个数由数值表达式确定。

Space(5)其作用是产生5个空格

9)数值转换成字符串函数:

str(数值表达式,长度,小数位数)

功能:

将数值表达式的值转换为字符串,转换时根据需要自动四舍五入。

转换后的理想长度应该是数值表达式值的整数部分位数加上小数位数值,再加上一位小数点。

Str(“123.567”,7,3)结果:

123.567

Str(“123.567”,6,2)结果:

123.57

10)随机函数:

rand()

功能:

系统随机产生一个0到1之间的纯小数

产生某个范围的随机整数:

Int(rand()*(终值-初值+1)+初值)

例如:

随机产生两位随机整数。

Int(rand()*(99-10+1)+10)

三程序设计基本语句:

1.变量的赋值:

=

格式:

变量=表达式

功能:

将“=”(赋值号)右边表达式的值赋予左边的变量。

2.输入命令

1)input命令

格式:

input“提示信息”to变量

功能:

在屏幕上显示“提示信息”,并等待用户从键盘上输入表达式,再把表达式的值赋给指定的变量。

2)Accept命令

格式:

accept“提示信息”to变量

功能:

在屏幕上显示[<提示信息>],等待用户从键盘上输入,再把输入内容作为字符串常量赋值给指定的变量。

3.输出命令?

|?

?

格式:

表达式1,[<表达式2>…]

功能:

将表达式的结果在当前光标的下一行输出;

格式:

?

?

表达式1,[<表达式2>…]

功能:

将表达式的结果在当前光标位置输出;

四、VF程序基本结构

4.1顺序结构

顺序结构:

就是计算机要按照程序中语句出现的先后次序依次执行各条语句的结构。

顺序结构是程序设计中最常见、使用最多的结构。

顺序结构程序主要由赋值语句、输入语句和输出语句构成。

程序:

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=”,x

?

”y=”,y

return

3鸡兔同笼问题。

已知鸡兔的总头数为h,总脚数为f,求鸡兔各有多少只?

clear

input"h="toh

input"f="tof

x=(4*h-f)/2

y=(f-2*h)/2

?

”鸡的个数:

”,x

?

”兔的个数:

”,y

return

三、选择结构

1)IF语句格式:

IF条件表达式

语句序列1

ELSE

语句序列2

ENDIF

功能:

执行该语句时,如果条件表达式的值为.t.,则执行语句序列1,否则执行语句序列2,然后再执行endif之后的语句。

其中else可以省略,即如果语句序列2为空,则没有ELSE以及语句序列1。

程序

1.判断闰年。

从键盘任意输入一年份,判断其是否是闰年,是则输出“是“,不是则输出“否”。

Clear

Input“y=”toy

If(y%4=0andy%100<>0)ory%400=0

?

”是”

Else

?

”否”

endif

return

2.输出3个数中最大值

clear

input"x="tox

input"y="toy

input"z="toz

ifx>=y

m=x

else

m=y

endif

ifm

m=z

endif

?

m

return

3.判断一个数是否是水仙花数。

所谓水仙花数是指一个3位数,其每位数字的立方和等于它本身。

clear

input"m="tom

x=int(m/100)

y=int((m%100)/10)

z=m%10

ifx^3+y^3+z^3=m

?

"是"

else

?

"否"

endif

return

2)多分支语句:

DOCASE

CASE逻辑达式1

命令序列1

[CASE逻辑表达式2

命令序列2

CASE逻辑表达式n

命令序列N]

[OTHERWISE

命令序列]

ENDCASE

说明:

1)从第一个逻辑表达式开始判断,当找到一个逻辑表达式的值为.T.时,就执行紧跟其后的命令序列,然后执行ENDCASE之后的语句。

2)在一个DOCASE结构中,最多只能执行一个CASE语句后面的语句序列。

如果case后的所有逻辑表达式的值均为.F.,则执行OTHERWISE后面的语句序列。

4.输入一个成绩,输出其等级。

CLEAR

INPUT“请输入学生成绩:

”TOn

DOCASE

CASEn>=90andn<=100

?

“优秀”

CASEn>=80

?

“良好”

CASEn>=70

?

“中等”

CASEn>=60

?

“及格”

OTHERWISE

?

“不及格”

ENDCASE

return

四、循环结构

1)dowhile循环

Dowhile条件

循环体

Enddo

提示:

级数求和问题从累加求和到最难的求和一鼓作气学完。

算法:

1.求1-100的累加和:

s=1+2+3…+100

Clear

i=1

s=0

Dowhilei<=100

s=s+i

i=i+1

Enddo

?

s

return

2.求1-100奇数的和。

Clear

i=1

s=0

Dowhilei<=100

s=s+i

i=i+2

Enddo

?

s

return

3.求1-100偶数的和。

Clear

i=2

s=0

Dowhilei<=100

s=s+i

i=i+2

Enddo

?

s

return

2)For循环

For循环变量=初值TO终值STEP步长

循环体

Endfor

其中步长为1时,STEP1可以省略。

4.将1-3题用for语句实现

1)1-100所有整数的和

Clear

s=0

Fori=1to100

s=s+i

endfor

?

s

Return

2)1-100所有奇数的和

Clear

s=0

Fori=1to100step2

s=s+i

endfor

?

s

Return

3)1-100所有偶数的和

Clear

s=0

Fori=2to100step2

s=s+i

endfor

?

s

Return

强调:

当循环次数确定的时候尽量用for循环实现。

5.求s=1+1/2+1/3+1/4+....+1/100

clear

s=0

fori=1to100

s=s+1/i

endfor

?

"s=",s

Return

6.求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

7.求s=1-1/2+1/3-1/4+....+1/n,n由键盘输入

clear

input“n=”ton

s=0

fori=1ton

s=s+1/i*(-1)^(i+1)

endfor

?

s

Return

8.求N!

=1×2×3×4…×N,其中N由键盘输入。

Clear

Input“n=”ton

t=1

Fori=1ton

t=t*i

endfor

?

t

return

9.求s=1!

+2!

+……+n!

,n由键盘输入。

(即求阶乘之和)

clear

input"n="ton

s=0

t=1

fori=1ton

t=t*i

s=s+t

endfor

?

s

Return

10.s=1+(1*2)+(1*2*3)+...+(1*2*3*…*10)

此题相当于求:

s=1!

+2!

+……+10!

clear

t=0

s=0

fori=1to10

t=t+i

s=s+t

endfor

?

s

Return

11.s=1+(1+2)+(1+2+3)+...+(1+2+3+4+5+6+7+8+9+10)

clear

t=0

s=0

fori=1to10

t=t+i

s=s+t

endfor

?

s

Return

12.s=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+4+5+6+7+8+9+10)

clear

t=0

s=0

fori=1to10

t=t+i

s=s+1/t

endfor

?

s

return

13.计算s=1!

+1/2!

+1/3!

……+1/n!

,n由键盘输入(即求阶乘倒数之和)

clear

input"n="ton

s=0

t=1

fori=1ton

t=t*i

s=s+1/t

endfor

?

s

Return

14.计算s=1!

+1/2!

+1/3!

……+1/n!

(要求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

15.计算s=1!

-1/2!

+1/3!

-1/4!

……±1/n!

(要求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

16.计算s=x/1!

+x2/2!

+x3/3!

……+xn/n!

,x由键盘输入。

(要求xn/n!

<10-6为止)

Clear

Input“x=”tox

s=0

t=1

i=1

dowhilex^i/t>=10^(-6)

s=s+(x^i/t)

i=i+1

t=t*i

endfor

?

"s=",s

return

17.计算s=x/1!

-x2/2!

+x3/3!

……±xn/n!

(要求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

18.ex=1+x+x2/2!

+x3/3!

……+xn/n!

(要求xn/n!

<10-6为止)

Clear

Input“x=”tox

s=1

t=1

i=1

dowhilex^i/t>=10^(-6)

s=s+x^i/t

i=i+1

t=t*i

endfor

?

"s=",s

return

19.求s=2!

+4!

+6!

+8!

+10!

S=0

T=1

Fori=2to10step2

T=t*(i-1)*i

S=s+t

Endfor

?

s

return

20.求s=1/2!

+1/4!

+1/6!

+1/8!

+1/10!

S=0

T=1

Fori=2to10step2

T=t*(i-1)*i

S=s+1/t

Endfor

?

s

return

21.求s=1/2!

-1/4!

+1/6!

-1/8!

+1/10!

S=0

T=1

d=1

Fori=2to10step2

T=t*(i-1)*i

S=s+1/t*d

d=-d

Endfor

?

s

return

22.求s=1!

+3!

+5!

+7!

+9!

可以看成s=1+3!

+5!

+7!

+9!

令s=1,只需求出3!

+5!

+7!

+9!

即可

S=1

T=1

Fori=3to9step2

T=t*(i-1)*i

S=s+t

Endfor

?

s

return

23.求s=1/1!

-1/3!

+1/5!

-1/7!

+1/9!

S=1

T=1

D=1

Fori=3to9step2

T=t*(i-1)*i

S=s+1/t*d

Endfor

?

s

return

24.

25.cos(x)=1-x2/2!

+x4/4!

-x6/6!

……±xn/n!

(精度为10^(-8))

Clear

Input“x=”tox

s=1

t=2

i=2

d=-1

dowhilex^i/t>=10^(-8)

s=s+x^i/t*d

i=i+1

t=t*i

d=-d

endfor

?

"s=",s

return

26.输出所有的水仙花数。

提示:

先判断某个数是否是水仙花数。

clear

forn=100to999

x=int(n/100)

y=int((n%100)/10)

z=n%10

ifx^3+y^3+z^3=nthen

?

n

endif

endfor

return

27.从键盘任意输入一个整数,判断其是否是素数。

除了1和它本身之外不能被任何一个整数所整除的自然数叫质数,又称为素数。

例如3,5,17是素数,而4,6,8,9就不是素数。

特殊:

1既不是质数也不是合数,2是最小的质数。

clear

input"n="ton

fori=2ton-1

ifn%i=0

exit

endif

endfor

ifi=m

?

"是"

else

?

"否"

endif

return

exit作用:

退出循环。

28.以5个为一组输出1-100的整数。

Clear

C=0

fori=1to100

?

?

i

ifi%5=0

?

Endif

endfor

return

29.以5个为一组输出1-100能被3整除的数。

Clear

C=0

fori=1to100

ifi%3=0

?

?

i

c=c+1

ifc%5=0

?

Endif

endif

endfor

return

30.以5个为一组输出100-1000以内的所有素数,并计算这些素数之和。

(两重循环的应用)

分析:

1)先找出所有素数

2)以5个数据为一组显示

3)计算所有素数的和

clear

c=0

s=0

form=100to1000

fori=2tom-1

ifm%i=0

exit

endif

endfor

ifi=m

?

?

m

c=c+1

ifc%5=0

?

endif

s=s+m

endif

endfor

?

“素数的和:

”,s

return

31.百钱买百鸡问题。

公鸡5元一只,母鸡3元一只,小鸡3只一块钱,假设用100元买了100只鸡,问公鸡、母鸡、小鸡各有多少只?

穷举法:

所谓穷举法就是将各种组合的可能性全部一一测试一遍,对每一组合检查它是否符合给定的条件,将符合条件的解全部输出即可。

clear

forx=1to19

fory=1to33

z=100-x-y

ifz%3=0and5*x+3*y+z/3=100

?

x,y,z

endif

endfor

endfor

return

32.请显示如下图所示的九九乘法表。

clear

fori=1to9

forj=1to9

?

?

str(i,1)+"*"+str(j,1)+"="+str(i*j,2)+space(3)

endfor

?

endfor

return

33.要求显示如下乘法表。

 

clear

s=0

fori=1to4

forj=ito4

?

?

str(i,1)+"*"+str(j,1)+"="+str(i*j,2),space(3)

endfor

?

endfor

return

34.请显示如下图所示的九九乘法表。

clear

fori=1to9

forj=ito9

?

?

str(i,1)+"*"+str(j,1)+"="+str(i*j,2)+space(3)

endfor

?

space(i*9)

endfor

return

35.设计1个程序,要求是:

(1)在键盘上输入1个不小于3的自然数N(例输入10),求出其不到第N个自然数中奇数之和,并输出结果

(2)输出1到第N自然数中所有质数的个数

clear

input"n="ton

ifn<3

?

”请输入大于等于3的数!

else

s=0

fori=1ton-1step2

s=s+i

endfor

?

”奇数的和:

”,s

c=0

fori=1ton

forj=2toi-1

ifi%j=0

exit

endif

endfor

ifj=I

c=c+1

endif

endfor

?

”质数的个数”,c

Endif

Return

36.求两个数的最大公约数。

算法(采用辗转相除法):

m除以n(m>n),得余数r;如果r不等于0,则将n赋予m,r赋予n,再用m除以n,得余数r;依次类推,直到r=0为止,此时的n就是最大公约数。

例如:

30和20的最大公约数为10

采用辗转相除法(要求m>n):

1)m除以n,得余数r;

2)如果r不等于0,则将n赋予m,r赋予n,再用m除以n,得余数r;

3)依次类推,直到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

37.求两个数的最小公倍数。

M和n的乘积除以最大公约数就是最小公倍数

例如:

30和20的最小公倍数为60

Clear

input"m="tom

input"n="ton

x=m

y=n

r=mod(m,n)

dowhiler<>0

m=n

n=r

r=mod(m,n)

enddo

?

x*y/n

Return

38.猴子摘桃问题。

已知猴子第一天摘了2个桃子,第二天摘的桃子是第一天的2倍多一个;以此类推,第n天摘了多少个桃子?

(递推法)

clear

input"n="t

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

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1