普通专升本辅导vfp编程Word文档格式.docx

上传人:b****5 文档编号:21562431 上传时间:2023-01-31 格式:DOCX 页数:45 大小:2.13MB
下载 相关 举报
普通专升本辅导vfp编程Word文档格式.docx_第1页
第1页 / 共45页
普通专升本辅导vfp编程Word文档格式.docx_第2页
第2页 / 共45页
普通专升本辅导vfp编程Word文档格式.docx_第3页
第3页 / 共45页
普通专升本辅导vfp编程Word文档格式.docx_第4页
第4页 / 共45页
普通专升本辅导vfp编程Word文档格式.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

普通专升本辅导vfp编程Word文档格式.docx

《普通专升本辅导vfp编程Word文档格式.docx》由会员分享,可在线阅读,更多相关《普通专升本辅导vfp编程Word文档格式.docx(45页珍藏版)》请在冰豆网上搜索。

普通专升本辅导vfp编程Word文档格式.docx

一切可以使用简单变量的地方,都可以使用数组元素。

DIMENSIONX(6),Y(2,3)

可引用X

(1)~X(6),Y(1,1)Y(1,2)Y(1,3)Y(2,1)Y(2,2)Y(2,3)

整体赋值:

对数组名赋值时

定义数组:

X=5Y=X+5(Y=10)

4、表达式

运算符把运算量连接起来的式子。

数值表达式

数值表达式由算术运算将数值型数据连接起来构成,其运算结果仍是数值型数据。

VisualFoxPro中的算术运算符包括^或**,*,/,%,+及-等。

各运算的意义及优先级如表所示。

运算符

优先级

意义

^或**

1

乘方运算

*、/、%

2

乘、除、求运算

+、-

3

加、减运算

2^3,2**3,2/3,8%3等

字符表达式

字符表达式由字符串运算将字符型数据连接而成,其运算结果是字符型数据。

字符串运算符有以下两个。

+:

完全连接,将前后两个字符串首尾相连形成新的字符串。

-:

不完全连接,将前一个字符串的尾部空格移到新的字符串末尾

“AAA”+“BBBB”,“AAA”+“BBBB”等

关系表达式

关系表达式由关系运算符将两个数据连接而成,其运算结果是逻辑数据。

关系运算符的意义及作用如表所示。

作用

小于

=

等于

小于等于

==

字符串精确比较

>

大于

、#、!

不等于

大于等于

$

子串包含测试

其中:

==和$仅用于字符型数据,其他可用于任何数据。

1>

=3,1!

=4,”AA”$”AAABBBB”等

4.逻辑表达式

逻辑表达式由逻辑运算符将逻辑数据连接起来构成,其运算结果仍然是逻辑型数据。

逻辑运算符有逻辑非(.NOT.或!

)、逻辑与(.AND.)和逻辑或(.OR.)。

在VisualFoxPro中也可分别写成NOT,AND和OR。

其优先级顺序依次为NOT,AND和OR。

NOT1>

2等

5、常用函数

数值函数:

数值函数的自变量和返回值都是数值型数据

绝对值函数

格式:

ABS(数值表达式)

功能:

返回绝对值

平方根函数

SQRT(数值表达式)

返回数值表达式的平方根。

求整数函数

INT(数值表达式)

INT()返回数值表达式的整数部分。

求余数函数

MOD(数值表达式1,数值表达式2)

返回两个表达式相除后的余数。

对于该函数,应特别注意函数的结果,余数的正负号与除数相同。

如果两个表达式同号,则函数值为两个表达式相除的余数。

当两个表达式异号时,函数值为两个表达式相除的余数再加上除数的值。

求最大值和最小值函数

格式:

MAX(数值表达式1,数值表达式2[,数值表达式3…])

MIN(数值表达式1,数值表达式2[,数值表达式3…])

计算各自变量表达式的值,MAX()返回其中的最大值,MIN()返回其中的最小值。

字符函数

求字符串长度函数

LEN(字符表达式)

功能:

返回指定字符表达式值的长度,即字符表达式中所包含的字符个数。

大小写转换函数

LOWER(字符表达式)

UPPER(字符表达式)

功能;

LOWER()将指定表达式值中的大写字母换成小写字母,其他字符不变。

UPPER()将指定表达式值中的小写字母换成大写字母,其他字符不变。

空格字符串生成函数

SPACE(数值表达式)

返回由数值表达式的值所指定数目的空格组成的字符串。

(4)取子串函数

LEFT(字符表达式,长度)

LEFT()从指定字符表达式值的左边取一个指定的子串作为函数值。

3.数据类型转换函数

数值转换成字符串函数

STR(数值表达式[,长度[,小数位数]])

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

小数位数默认值为0,长度的默认值为10。

字符串转换成数值函数

VAL(字符表达式)

将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型

型数据。

字符串出现非数字字符时,只转换前面部分;

当字符串首字符不是数字符号时返回数值0。

ASC(字符)

转换成相应字符的ASCII值

CHR(数值)

数值转换成相应ASCII字符

二、程序设计

1.程序与程序文件的概念

程序是指能够完成一定命令的有序集合。

存放这组命令的文本文件称为程序文件或命令文件.(VFP程序文件的扩展名是.PRG)

程序文件在书写时要遵守以下的规则:

.一行只能写一条命令;

每条命令以回车结尾;

一条命令需要分行书写时,应在上一行结束时加上续行符“;

”;

为提高程序的可读性,可在程序中插入注释,其中注释行以“*”开头,命令后添加的注释以“&

&

“开头。

2.简单的输入输出命令

INPUT命令

INPUT[〈字符表达式〉]TO〈内存变量〉

等待用户从键盘输入数据,当用户以“ENTER”键结束输入时,系统将表达式的值存入指定的内存变量,程序继续执行。

该命令中,用户可以输入任何合法的表达式。

说明:

.在命令中使用字符表达式时,系统先显示表达式的值作为提示信息;

.输入的数据利用是常量,变量或表达式如X+Y,但不能不输入任何内容直接按“Enter”键;

输出命令

换行输出?

不换行输出

例:

”A”

?

”B”

”A”

”B

3、程序的基本结构

顺序结构

程序的基本结构指程序中命令或语句执行的流程结构,有顺序,选择和循环三种基本结构。

顺序结构是最简单的程序结构,它按命令在程序中出现的次序依次执行。

流程图

例1:

将字符串大写字母变为小写字母。

分析:

LOWER()将指定表达式值中的大写字母换成小写字母,其他字符不变。

CLEAR&

清除内存变量

SETTALKOFF&

关闭人机对话

INPUT“输入一个字符串:

”TOS

S=LOWER(S)

“S值是:

”,S

SETTALKON&

打开人机对话

例2:

将两个字符串连接输出

分析:

+:

”TOS1

”TOS2

S=S1+S2

“两个字符串连接后值是:

例3:

输入三个数,要求按大小顺序输出

MAX(数值表达式1,数值表达式2[,数值表达式3…])

INPUT“输入一个数:

”TOA

”TOB

”TOC

“按大小顺序输出是:

”,MAX(A,B,C),A+B+C-MIN(A,B,C)-MAX(A,B,C),MIN(A,B,C)

2.选择结构

在VisualFoxpro中形成选择结构的语句有条件语句和分支语句。

分支语句

单一分支

IF〈条件〉

〈语句序列〉

ENDIF

条件为真,执行语句序列.

例4:

求|X|

”TOX

IFX<

X=-X

ENDIF

“X绝对值是:

”,X

打开人机对话

双分支

IF〈条件〉

〈语句序列1〉

[ELSE

〈语句序列2〉]

根据〈条件〉是否成立从两组语句序列中选择一组执行。

有else子句时,两组供选择的代码分别是〈语句序列1〉和〈语句序列2〉,

当〈条件〉成立时,执行〈语句序列1〉,否则〈语句序列2〉,然后转向ENDIF之后的下一条语句;

2无ELSE时,可认为第2组代码不包含任何命令,当〈条件〉成立时,执行〈语句序列〉,然后转向ENDIF之后的下一条语句;

否则直接转向ENDIF之后的下一条语句;

IF和ENDIF必须成对出现,IF为此结构的入口,ENDIF表示此结构的出口;

例5:

商场优惠销售,消费不足200元八折,超过200元,按六六折.

INPUT“消费金额:

IFX>

=200

Y=X*0.66

ELSE

Y=X*0.8

“应付金额是:

”,Y

条件语句嵌套使用。

例6:

商场优惠销售,消费不足200元八折,超过200元不足500元7折,超过500元按六折.

三个分支,条件语句嵌套使用。

Y=X*0.7

IFX>

=500

Y=X*0.6

ENDIF

例7:

求符号函数的值.

当X<

0Y=-1,X=0Y=0,X>

0Y=1

INPUTTOX

Y=1

ELSE

Y=-1

IFX=0

Y=0

ENDI

“符号函数的值是:

8.求函数的值,当X<1时Y=X;

当1≤X<10时Y=2X-1;

当X≥10时Y=3X-11

INPUT“X=”TOX

1

Y=X

=1ANDX<10

Y=2*X-1

Y=3*X-11

“Y=”,Y

多分支语句

DOCASE

CASE〈条件1〉

〈语句序列1

CASE〈条件2〉

〈语句序列2〉

…….

CASE〈条件n〉

〈语句序列n〉

[OTHERWISE

〈语句序列n+1〉]

ENDCASE

依次判断CASE后面的条件是否成立,当发现某个CASE后面的条件成立时,就执行该CASE和下一个CASE之间的语句序列,然后执行ENDCASE后面的命令;

当所有的条件都不成立,则执行OTHERWISE和ENDCASE之间的语句序列,然后转向ENDCASE后面的语句。

当有多个CASE条件都成立时,只有最先成立的那个CASE条件对应的语句序列被执行;

如果所有CASE条件都不成立,且没有OTHERWISE子句,则直接跳出结构;

DOCASE和ENDCASE必须成对出现,DOCASE是本结构的入口,ENDCASE是本结构的出口。

例9:

当X<1时Y=X;

INPUT“X=”TOX

DOCASE

CASEX<1

CASEX>

=1andX<10

Y=2*X-1

OTHERWISE

ENDCASE

例10:

百分制转化为等级制

=90‘A’>

=80‘B’>

=70‘C’>

=60‘D’<

60‘E’

INPUT“成绩=”TOX

=90

?

“A”

=80

“B”

=70

“C”

=60

“D”

“E”

3.循环结构

循环结构是指程序在执行过程中,其中某段代码(语句序列)被重复执行若干次,被重复的代码段称为循环体.。

语句:

DOWHILE—ENDDO

格式1:

DOWHILE〈条件〉

[LOOP]

[EXIT]

〈语句序列3〉

ENDDO

格式2:

FOR<

循环变量>

=初值TO〈终值〉[STEP<

步长>

]

〈语句序列>

ENDFOR

先判断DOWHILE处的条件,如果条件成立,就执行DOWHILE与ENDDO之间的语句序列,即循环体,执行到ENDDO时,返回到DOWHILE,再次判断循环条件是否成立,以确定是否再次执行循环体,条件不成立时,结束该语句循环的序列,执行ENDDO后面的语句。

说明:

当第一次判断条件时,条件即不成立,则循环体一次都不执行;

循环体中包含LOOP命令,当遇到该命令时,结束循环体的本次执行,不再执行其后的语句,转回DOWHILE处重新判断条件;

循环体中包含EXIT命令,当遇到该命令时,结束该循环体的执行,转去执行ENDDO之后的语句;

循环结构举例

累加型

例11:

求∑I=1+2+3+4+…..+N

INPUT“值:

”TON

I=1

S=0

DOWHILEI<

=N

S=S+I

I=I+1

ENDD

“1+2+3+…+N=”,S

打开人机对话

***或使用FOR循环(适合已知次数的循环)

FORI=1TONSTEP1

ENDD

例12:

输出1,1,2,3,5,8,13,。

前四十项,每行输出四个数。

分析:

此题为斐玻拉比数列

第一项:

F1=1

第二项:

F2=1

第三项始:

F1=F1+F2,F2=F2+F1。

循环变量(一次输出二项):

I=0。

19,每行输出四个数,为偶数换行。

I=0

F1=1

F2=1

=19

STR(F1,10),STR(F2,10)

F1=F1+F2

F2=F2+F1

IFMOD(I,2)==0

例13:

求2/1,3/2,5/3,8/5,13/8,21/13。

数列的前20项和。

分子:

2,3,5,8,13。

分母:

1,2,3,5,8。

变量设定:

I1=2,I2=3,I1=I1+I2,I2=I2+I1。

分母:

J1=1,J2=2,J1=J1+J2,I2=J2+J1。

项值:

T1=I1/J1,T2=I2/J2。

和数:

S=0(初值),S=S+T1+T2

循环变量:

I=1。

10

程序如下:

I1=2

I2=3

J1=1

J2=2

=10

T1=I1/J1

T2=I2/J2

S=S+T1+T2

I1=I1+I2

I2=I2+I1

J1=J1+J2

J2=J2+J1

“2/1,3/2,5/3,8/5,13/8,21/13。

数列的前20项和=”,S

例14:

求1,-1/2,1/3,-1/4,1/5,-1/6。

符号:

+,-间隔

FLAG=+1

I=1,2,3…,

项值:

T=FLAG*1/I

和数:

S=0(初值),S=S+T

循环变量:

20

=20

S=S+T

I=I+1

FLAG=-FLAG

T=FLAG*1/I

“1,-1/2,1/3,-1/4,1/5,-1/6。

例15:

.求E的值(E=1+1/1!

+1/2!

+1/3!

+。

+1/N!

精确到1E-6)

S=1

Fm=1

T=1

DOWHILEt>

=1E-6

Fm=fm*i

T=1/Fm

“E=1+1/1!

=”,S

累积型

例16:

求N!

S=S*I

“N!

嵌套型(循环嵌套)

例17:

求1!

+2!

+3!

+….+10!

此题为循环嵌套

外循环变量:

I取值1,2,3,4,5,6,7,8,9,10

内循环求I!

内循环变量:

J取值1,2,…,I

累加变量:

S=S+T

J=1

T=1

DOWHILEJ<

=I

T=T*J

J=J+1

I=I+1

“1!

3、多模块程序

1、模块的概念(过程或函数)

模块是一个相对独立的程序段,一个应用程序中包含了多个模块,模块间的执行采用调用的方式,一个模块可以被其他模块调用,也可以调用其他的模块。

被其他程序调用的模块称为子模块,调用其他模块而没有被其他模块调用的模块称为主程序。

2、模块的定义和调用

在VISUALFOXPRO中,模块可以是命令文件,也可以是过程。

定义格式:

PROCEDURE/FUNCTION〈过程名〉

PARAMETERS〈形参变量1〉[,〈形参变量2〉,…]

〈命令序列〉

[RETURN〈表达式〉]

3、模块调用

过程文件处于打开状态时,可以调用过程。

调用格式:

DO〈过程名〉WITH参数表

实参可以是常量、变量或表达式;

调用模块时,自动把实参传递给对应的形参;

例18:

求长方形面积.

*SUB1.PRG

PARAA,B,C

CLEAR

C=A*B

RETURN

*MAIN.PRG

INPUT“长:

”TOL

INPUT“宽:

”TOW

DOSUB1.PRGWITHL,W,S

“面积是:

例19:

计算CMN=M!

/(N!

*(M-N)!

此题为组合问题求解:

X!

求解三次。

编一求解X!

的函数/过程,调用三次即可

代码如下:

CF。

PRG(求解X!

的函数/过程)

PARAP

J=1

R=1

DOWHILEJ<

=P

R=R*J

RETUEN

MAIN。

PRG(调用三次,求解组合问题)

INPUT“M=”TOM

INPUT“N=”TON

MN=M-N

MC=CF(M)/(CF(N)*CF(MN))

“C(M,N)=”,MC

经典例题分析

1.输入两个正整数,求最大公约数

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

当前位置:首页 > 工程科技 > 电子电路

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

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