当前位置:文档之家› VF程序设计复习资料

VF程序设计复习资料

第二部分结构化程序设计语句和算法一、程序的概念程序:是计算机能够分析执行的命令序列的集合。

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

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

例编程求1+2+3+……+100clears=0for i=1 to 100s=s+iendfor? “s=”,sreturn二、VF语言基础1.数据类型1)数值型:由数字0-9以及正负号(+和-)和小数点(.)组成。

例如:123,34.56,-1002)字符型:英文、汉字、数字、空格和标点符等组成的一串字符。

例如:”hello”,”goodmorning”。

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

3)逻辑型:表示的值为真和假两种状态, .T.或.t.表示真,.F.或.f.表示假。

2.常量1)数值型常量:例如:123,34.56,-1002)字符型常量:”hello”,”good morning”。

3)逻辑型常量: .T.表示真,.F.表示假。

3.变量1)概念:变量是指在程序运行期间其值可以变化的量,一个变量可以存放一个数据。

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

(尽量用一个字母作为一个变量名)如:x,y,z,i,j等。

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

4.运算符及表达式●运算符:用来进行运算的符号;●表达式:是指用运算符将变量、数组元素、常量、函数连接组合得到的一组有物理意义的式子。

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

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

1)算术运算符:( ) ^ % *、/ +、-算术表达式:10+3*4-15 2^3 x^3/y+a%52)字符运算符:完全连接“+”:“I have a ” +“Book”= “I have a Book”包含运算“$”:“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>5 OR y<10 .T.或者.F.,取决于x,y的值推导判断闰年的表达式:闰年:能被4整除,但是不能被100整除;或者能被400整除。

(y%4=0 and y%100<>0) or y%400=05.常用函数1)取绝对值函数:abs(数值表达式)2)取整函数:int(数值表达式)功能:取数值表达式的整数部分。

int(12.3)=12int(56.78)=563)求平方根函数:sqrt(数值表达式)4)求字符串长度函数:len(字符串表达式)len("hello")=5len("你好")=4说明:一个汉字占两个字符的宽度。

5)取子串函数:●Left(字符串表达式,长度)●Right(字符串表达式,长度)●substr(字符串表达式,起始位置,长度)功能:从指定表达式值的指始位置取指定长度的字符串作为函数值。

Substr(“hello”,2,3) 结果:ell6)计算字串出现次数函数:Occurs(字符串表达式1,字符串表达式2)功能:返回第一个字符串在第二个字符串中出现的次数。

Occurs(“a”,”abcaa”) 结果:37)大小写转换函数Lower(字符串表达式):Upper(字符串表达式):8)生成空格字符函数:space(数值表达式)功能:生成若干个空格,空格的个数由数值表达式确定。

Space(5) 其作用是产生5个空格9)数值转换成字符串函数:str(数值表达式,长度,小数位数)功能:将数值表达式的值转换为字符串,转换时根据需要自动四舍五入。

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

Str(“123.567”,7,3) 结果:123.567Str(“123.567”,6,2) 结果:123.5710)随机函数: 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求园的面积clearinput “r=” to rs=3.14*r^2?sreturn2交换任意两个变量的值clearinput “x=” to xinput “y=” to yt=xx=yy=t? “x=”,x?”y=”, yreturn3鸡兔同笼问题。

已知鸡兔的总头数为h,总脚数为f,求鸡兔各有多少只?clearinput "h=" to hinput "f=" to fx=(4*h-f)/2y=(f-2*h)/2?”鸡的个数:”,x?”兔的个数:”,yreturn三、选择结构1) IF语句格式:IF 条件表达式语句序列1ELSE语句序列2ENDIF功能:执行该语句时,如果条件表达式的值为.t.,则执行语句序列1,否则执行语句序列2,然后再执行endif之后的语句。

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

程序1.判断闰年。

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

ClearInput “y=” to yIf (y%4=0 and y%100<>0) or y%400=0?”是”Else?”否”endifreturn2.输出3个数中最大值clearinput "x=" to xinput "y=" to yinput "z=" to zif x>=ym=xelsem=yendifif m<z thenm=zendif?mreturn3.判断一个数是否是水仙花数。

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

clearinput "m=" to mx=int(m/100)y=int((m%100)/10)z=m%10if x^3+y^3+z^3=m?"是"else?"否"endifreturn2) 多分支语句:DO CASECASE 逻辑达式1命令序列1[CASE 逻辑表达式2命令序列2…CASE 逻辑表达式n命令序列N][OTHERWISE命令序列]ENDCASE说明:1)从第一个逻辑表达式开始判断,当找到一个逻辑表达式的值为.T.时,就执行紧跟其后的命令序列,然后执行ENDCASE之后的语句。

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

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

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

CLEARINPUT “请输入学生成绩:” TO nDO CASECASE n>=90 and n<=100? “优秀”CASE n>=80? “良好”CASE n>=70? “中等”CASE n>=60? “及格”OTHERWISE? “不及格”ENDCASEreturn四、循环结构1)do while循环Do while 条件循环体Enddo提示:级数求和问题从累加求和到最难的求和一鼓作气学完。

算法:1.求1-100的累加和:s=1+2+3…+100i=1s=0Do while i<=100s=s+ii=i+1Enddo? sreturn2.求1-100奇数的和。

Cleari=1s=0Do while i<=100s=s+ii=i+2Enddo? sreturn3.求1-100偶数的和。

Cleari=2s=0Do while i<=100s=s+ii=i+2Enddo? sreturn2)For循环For 循环变量=初值 TO 终值 STEP 步长循环体Endfor其中步长为1时,STEP 1 可以省略。

4.将1-3题用for语句实现1)1-100所有整数的和Clears=0For i=1 to 100s=s+iendfor? sReturn2)1-100所有奇数的和s=0For i=1 to 100 step 2s=s+iendfor? sReturn3)1-100所有偶数的和Clears=0For i=2 to 100 step 2s=s+iendfor? sReturn强调:当循环次数确定的时候尽量用for循环实现。

5.求s=1+1/2+1/3+1/4+....+1/100clears=0for i=1 to 100s=s+1/iendfor?"s=",sReturn6.求s=1-1/2+1/3-1/4+....+1/100clears=0for i=1 to 100s=s+ 1/i*(-1)^ (i+1)endfor?sReturn7.求s=1-1/2+1/3-1/4+....+1/n,n由键盘输入clearinput “n=” to ns=0for i=1 to ns=s+ 1/i*(-1)^ (i+1)endfor?sReturn8.求N!=1×2×3×4…×N,其中N由键盘输入。

相关主题