第七章 程序设计基础_第1页
第七章 程序设计基础_第2页
第七章 程序设计基础_第3页
第七章 程序设计基础_第4页
第七章 程序设计基础_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、程序设计语言概述人与人之间的交流是通过语言来完成的。当人们和计算机打交道时,也要涉及到语言问题,这就是计算机语言。计算机语言是指一切用于人与计算机通信的语言,它包括编程语言、命令语言、查询语言、定义语言等。第七章程序设计基础第七章程序设计基础一、程序设计语言概述语言的种类机器语言汇编语言高级语言用二进制代码0和1描述的指令(机器指令)的集合用助记符描述机器指令的计算机指令的计算机语言接近人类的自然语言和数学语言的一种计算机语言一、程序设计语言概述是人们根据要处理的问题而事先安排好的需要计算机执行的处理步骤计算机程序第七章程序设计基础第七章程序设计基础

VFP程序设计包括结构化程序设计和面向对象程序设计,但结构化程序设计仍是面向对象程序设计的基础。7.1程序与程序文件7.1.2程序文件的建立与执行一、程序文件的建立与修改

MODIFYCOMMAND<文件名>文件名由用户指定,扩展名为.PRG程序文件由VFP命令组成二、关闭编辑窗口的方法

Ctrl+W:文件存盘推出

ESC:若程序文件修改过,将询问“放弃修改吗?”

双击左上角控制菜单:将询问“将所做的更改保存到*.prg吗?”

单双击右上角关闭按钮:将询问“将所做的更改保存到*.prg吗?”

“文件”菜单:“保存”、“另存为”或“还原”命令

7.1程序与程序文件7.1.2程序文件的建立与执行三、程序的执行

DO<文件名>

默认扩展名为.PRG,若为其它类型必须指明扩展名

7.1程序与程序文件7.1.2程序文件的建立与执行例如:DOMCZZ.QPR&&运行查询程序四、程序的书写规则

2、命令分行一行只写一条命令,结尾回车一行写不完,则加续行号“;”回车

7.1程序与程序文件7.1.2程序文件的建立与执行

1、命令注释注释行以“*”号开头,一条命令后可加“&&”引出注释

例如:

*本程序修改指定记录SETDATEUSA&&日期格式为MM-DD-YY

五、程序中的常用命令1.环境设置clear……清屏

7.1程序与程序文件7.1.2程序文件的建立与执行Settalkoff/on……是否将命令执行的结果传送到屏幕上Setdefaultto……默认路径Setpathto……搜索路径Setescapeon/off……允许ESCAPE退出/继续命令文件的执行(on为缺省值,ESC键可终止程序运行)五、程序中的常用命令二、赋值:Store或“=“

7.1程序与程序文件7.1.2程序文件的建立与执行三、显示?或??前者换行,后者不换行六、程序结尾的专用命令

7.1程序与程序文件7.1.2程序文件的建立与执行RETURN:使程序结束,返回到上级或命令窗口,准许缺省CANCEL:使程序正常终止,清除程序的私有变量,返回到命令窗口QUIT:退出VFP系统,自动删去临时文件,返回到WINDOWSInput“提示信息”to内存变量ACCEPT“提示信息”to字符变量TEXT显示内容ENDTEXT

7.1程序与程序文件7.1.3简单的输入输出命令WAIT命令暂停程序的运行,直到用户输入一个字符,也可用于输出一条提示信息WAIT[<字符表达式>][TO<内存变量>][WINDOW[AT<行>,<列>]][NOWAIT][NOCLEAR][TIMEOUT<数值表达式>]

7.1程序与程序文件7.1.3简单的输入输出命令<字符表达式>:提示窗口中的提示信息,可以缺省TO<内存变量>:将用户的输入值送入内存变量,可缺省WINDOWAT<行>,<列>:提示窗口所在的行和列号,可缺省[NOWAIT]:不停留,继续执行程序[NOCLEAR]:不清除提示窗口,缺省为清除[TIMEOUT<数值表达式>]程序在此处暂停的时间

CLEARWAIT"请检查输入内容!"WINDOWAT8,40RETURN

执行后显示如下:按任意键返回命令窗口7.2程序的基本结构

顺序结构:按命令的书写顺序依此执行选择结构:根据指定条件的当前值在两条一、基本结构或多条路径中选择一条执行循环结构:由指定条件的当前值来控制循环体中的语句(或命令)序列是否要重复执行。

7.2程序的控制结构7.2.1选择结构

VFP可用条件语句或分支语句实现分支结构一.简单的条件语句IF<条件><语句序列>ENDIF

二.带else的条件语句IF<条件><语句序列1>ELSE<语句序列2>ENDIFIIF函数IIF(逻辑表达式,表达式1,表达式2)当逻辑表达式为真时,返回表达式1,否则返回表达式2。例:iif(chj>=90,”优秀”,”通过”)7.2程序的控制结构当chj不低于90分时成绩为优秀,否则只是通过例:iif(chj<60,”不合格”,iif(chj>=90,”优秀”,”通过”)当chj低于60分时成绩为不合格,60到89分为通过,90到100分为优秀分支语句嵌套If……If……If……If……endifendifendifendifelse三、多分支语句

DOCASECASE<逻辑表达式1><语句序列1>CASE<逻辑表达式2><语句序列2>……………CASE<逻辑表达式n><语句序列n>[OTHERWISE<语句序列n+1>]ENDCASE一、请说出下列程序段的输出结果accepttoa&&输入内存变量A的值ifA=[123456]&&当A的值为”123456”时s=0&&执行s=0,即给s赋0值EndifS=1&&给s赋1值?s&&输出s的值7.2程序的控制结构结果应该为:1因为不论A为什么值,s=1都会执行,赋值语句的特点总是以新的值替代旧的值从键盘输入二个整数,并将其中较大的数显示出来clearinput"请输入第一个整数:"toainput"请输入第一个整数:"tobmax=iif(a>b,a,b)?maxclearinput"请输入第一个整数:"toainput"请输入第一个整数:"tobifa>b?aelse?bendif二、请说出下列程序段的输出结果

设当前记录的”计算机”字段的值是89Docasecase计算机<60?“计算机成绩是:”+”不及格”case计算机>=60?“计算机成绩是:”+”及格”case计算机>=70?“计算机成绩是:”+”中”case计算机>=80?“计算机成绩是:”+”良”case计算机>=90?“计算机成绩是:”+”优秀”endcase7.2程序的控制结构结果应该为:计算机的成绩是:及格因为docase语句中,当满足其中最靠前的条件时,将执行相应的语句,然后就不做其他的判断(见164页注释①)cleardocasecaseyue=3oryue=4oryue=5jj="春"caseinlist(yue,6,7,8)jj="夏"caseinlist(yue,9,10,11)jj="秋"caseinlist(yue,12,1,2)jj="冬"endcasewaitjjwindowat8,30&&当前季节显示在WAIT窗口7.2程序的控制结构settalkoffclearinput"请输入月份:"toyuedocasecaseyue=3oryue=4oryue=5jj="春"caseinlist(yue,6,7,8)jj="夏"caseinlist(yue,9,10,11)jj="秋"caseinlist(yue,12,1,2)jj="冬"endcasewaitjjwindowat8,30&&当前季节显示在wait窗口settalkoninlist(

)

函数一、功能判断一个表达式是否与一组表达式中的某一个相匹配。二、格式INLIST(eExpression1,

eExpression2

[,

eExpression3

...])

三、返回值逻辑型

7.2.2循环结构一、条件循环

1.格式

DOWHILE<逻辑表达式><语句序列>ENDDO

循环体循环条件7.2程序的控制结构2.执行过程(见166页图7.5)首先判断dowhile处的循环条件是否成立,若为真,则执行循环体,然后回到dowhile处再次判断条件是否为真,若为真,则又执行循环体,若为假,则跳出循环,执行enddo后面语句[P166例7.7]计算s=1+2+3+……+100s=0i=1dowhilei<=100s=s+ii=i+1enddo?”s=”,s7.2.2循环结构7.2程序的控制结构一、条件循环s=s+I是累加器循环变量循环体循环条件四、循环辅助语句(见书166页图7.6)

LOOP:使执行转向循环语句的头部继续循环

DOWHILE<逻辑表达式>……LOOP……ENDDO

EXIT:立即退出循环,转去执行循环外的语句

DOWHILE<逻辑表达式>……EXIT……ENDDO

二、步长循环

1.格式

FOR<变量>=<初值>TO<终止值>[STEP步长]

<语句序列>

ENDFOR|NEXT

7.2.2循环结构7.2程序的控制结构给循环变量赋初值判断条件循环体循环变量增步长值endfor语句的下一语句TF

2.执行过程

见右图

默认为1[P166例7.7]计算s=1+2+3+……+100

s=0fori=1to100s=s+inext?"s=",s三、扫描循环

SCAN[<范围>][FOR<逻辑表达式1>][WHILE<逻辑表达式2>]<语句序列>ENDSCAN在<范围>内依此寻找满足FOR条件或WHILE条件的记录,并对找到的记录执行<语句序列>,scan循环自动移动记录指针

usee:\仓库表scanif面积=370?”面积=”,面积endifendscanuse有一个数据库表stock.dbf内容如下:股票代码股票名称单价交易所600600青岛啤酒7.84上海600601方正科技15.20上海600602广电电子10.40上海600603兴业房产12.76上海600604二纺机9.96上海600605轻工机械14.59上海000001深发展7.84深圳000002深万科12.50深圳closeallusestockgo1x=0scanfor交易所=“上海”x=x+Ⅰendscan问x等于多少?closeallusestockgotopx=0dowhile.not.eof()if单价>10x=x+Ⅰendscanskipenddo问x等于多少?store0toi,s,tdowhilei<100i=i+1s=s+iifint(i/2)=i/2loopendift=t+ienddo?"1+2+3+...+100=",s?"1~100奇数和为",t求1到100的奇数和五、多重循环

循环体内包含其它循环→循环嵌套

外循环每执行一次,内循要全部执行完一遍

例程序段fori=0to2forj=0to4则循环次数3×5=15次……endforendfor具体:i=0时j=0,1,2,3,4五次i=1时j=0,1,2,3,4五次共15次i=2时j=0,1,2,3,4五次7.2.3编程实例7.2程序的控制结构例1:求T=10!t=1fori=1to10t=t*iendfor?”t=”,tt=t*i是累乘器例1改成求任意数的阶乘该怎样改?

input“请输入一个整数:”tont=1fori=1tont=t*iendfor?”t=”,t

7.2.3编程实例7.2程序的控制结构例1:求T=1!+2!+……+10!

方法1:p=1t=0fori=1to10p=p*it=t+pendfor?”t=”,t例1改成求T=1!+2!+……+m!

方法2:

t=0forn=1to10p=1fori=1tonp=p*iendfort=t+pendfor?“t=",t7.3多模块程序子程序一、调用与返回两个具有调用关系的程序文件,称调用程序为主程序,被调用程序为子程序主程序遇到DO命令,转向子程序执行,称为调用子程序。子程序执行到RETURN语句(或缺省该语句),返回到主程序中的DO命令的下一个语句执行,称为返回主程序二、带参数子程序的调用和返回1.主程序中,用DO命令带一个WITH子句来向子程序传入参

数和从子程序带回运算结果

DO<文件名>|<过程名>[WITH<实参表>](参数至少有一个)2.相对应的参数在子程序中用PARAMETERS来接收和回送参数。

PARAMETERS|LPARAMETERS<形参1>[,形参2……>注意:该语句应为子程序的第一条命令,PARAMETERS参数与WITH的参数是按位置一一对应的1.参数的种类:(1)实参:主程序中调用模块时的参数(2)形参:模块程序中接收时的参数三、参数的种类及调用方式2.参数的传递方式:(1)按值传递:当实参是常量或一般形式的表达式或数组元素(2)按地址传递(或称按引用传递):当实参是变量或数组名3.不同传递方式的特点:(1)按值传递:形参的改变不影响实参值(2)按地址传递(或称按引用传递):形参变量值的改变,影响到实参值的改变

以变量的作用域来分,可以分为:公共变量、私有变量和本地变量1、公共变量

公共变量是在一个程序中的任何模块都可以使用的变量.建立命令格式:

PUBLIC<公共变量表>公共变量在建立时赋初值.F.一个公共变量一经定义,直到使用RELEASE或CLEARmemory等命令释放它,

一直有效.

VFP命令窗口定义的变量均为公共变量,但这些变量在程序中使用无效.四、变量的作用域(变量的使用范围)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论