计算机程序设计基础.docx

上传人:b****5 文档编号:6640360 上传时间:2023-01-08 格式:DOCX 页数:12 大小:28.62KB
下载 相关 举报
计算机程序设计基础.docx_第1页
第1页 / 共12页
计算机程序设计基础.docx_第2页
第2页 / 共12页
计算机程序设计基础.docx_第3页
第3页 / 共12页
计算机程序设计基础.docx_第4页
第4页 / 共12页
计算机程序设计基础.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

计算机程序设计基础.docx

《计算机程序设计基础.docx》由会员分享,可在线阅读,更多相关《计算机程序设计基础.docx(12页珍藏版)》请在冰豆网上搜索。

计算机程序设计基础.docx

计算机程序设计基础

程序与程序文件

以前所学的在命令窗口中逐条输入命令或选择菜单来执行命令是以交互方式来操作。

一、程序:

能够完成一定任务的命令的有序集合。

这组命令被存放在称为程序文件或命令文件的文本文件中。

settalkoff设置交互方式开关为关

settalkon。

return退出程序

以note或*开头的代码行为注释行。

无实际意义

命令行后也可添加注释,以&&开头。

无实际意义

命令分行符“;”程序中每条命令都以回车键结尾,一行只能写一条命令

例:

计算圆的周长与面积:

Clear&&清除VFP主窗口或当前用户自定义窗口里的全部内容

*设置半径

r=3

*依次计算周长和面积

P=2*pi()*r&&函数pi()返回圆周率

a=pi()*r^2

*输出计算结果

“周长=”,p

“面积=”,a

return

二、程序文件的建立与执行

1、建立与修改(默认扩展名prg)

建立步骤:

“文件”—“新建”—“程序”

在文本编辑窗口输入程序内容。

保存程序文件:

“文件”—“保存”或ctrl+w

打开修改程序文件步骤:

Ø“文件”—“打开”,“文件类型”—“程序”

Ø选定文件文件,单击“确定”

Ø编辑修改后,选择“保存”。

若要放弃本次修改,“文件”—“还原”或按Esc键。

用命令建立和修改:

modifycommand<文件名>

注:

文件名可以写全称,也可以省略扩展名

若指定的文件名存在,则打开修改;若不存在,则建立一个新文件

2、执行程序文件

Ø菜单方式:

“程序”—“运行”,然后从文件列表框中选择程序文件,单击“运行”

Ø命令方式:

do<文件名>

文件中的一些命令:

a)cancal:

终止程序运行,清除所有的私有变量,返回命令窗口

b)do:

转移执行另一个程序(实现程序的嵌套)

c)return:

结束当前程序的执行,返回调用它的上级程序,若无上级程序则返回到命令窗口。

d)quit:

退出VFP系统,返回到操作系统。

3、简单的输入输出命令(三种)

Øinput[<字符表达式>to<内存变量>]

该命令等待用户从键盘输入数据,可输入任何类型的合法的表达式。

输入字符串、逻辑型常量、日期时间型常量时必须加定界符。

不能不

输任何内容直接按回车。

例:

opendatad

use学生in0

clear

input’请输入年龄:

’tomm

sele*from学生where年龄>mm

closedata

return

Øaccept[<字符表达式>to<内存变量>]

该命令等待用户从键盘输入字符串,且该命令只能输入字符串,输入时不需要加定界符。

若不输入任何内容按回车,系统会把空串赋给内存变量。

Øwait[<字符表达式>[to<内存变量>][window[at<行>,<列>]][….]

该命令只能输入字符串,不用按回车,直接自动执行

例:

opendatad

use11in0

wait‘输入查询的姓:

’toss

sele*from11where姓名=ss

closedata

return

三、程序的基本结构

程序结构是指程序中命令或语句执行的流程结构。

三种基本结构:

顺序结构、选择结构、循环结构

1、选择结构(条件语句和分支语句)

Ø条件语句:

if<条件>注意:

if和endif必须成对出现,if是本结

<语句系列1>构的入口,endif是出口;条件语句

[else可以嵌套,但不能交叉。

系统规定

<语句系列2>]endif与最近的一条if配对。

endif

例:

某地至北京的邮路里程为1043KM,“特快专递”时应在24小时内到达,计费标准每克0.05元,但超过100克后,超出的每克0.02元。

试编写程序计算邮费。

Input‘请输入邮件重量:

’tow

Ifw<=100

f=w*0.05

else

f=100*0.05+(w-100)*0.02

endif

?

’邮费为:

’,f

例:

opendatad

use11

accept‘请输入学生姓名:

’toname

locatefor姓名=name

ifnoteof()

disp

else

?

’查无此人!

endif

closedata

Ø分支语句

docase

case<条件1>

<语句序列1>

case<条件2>

<语句序列2>

……..

[otherwise

<语句序列>]

endcase

 

例:

计算分段函f(x)=

 

settalkoff

input‘输入X的值:

’tox

docase

casex<0

f=2*x-1

casex<3

f=3*x+5

casex<5

f=x+1

casex<10

f=5*x-3

otherwise

f=7*x+2

endcase

?

‘f(’,’x’,’)=’,f

settalkon

return

2、循环结构(三种)

dowhile<条件>

循环体

enddo

注意:

当循环体包含exit命令,那么遇到时,就结束该语句的执行,转去执

行enddo后面的语句。

即跳出本层循环。

当循环体包含loop命令,那么遇到时,就结束循环体的本次执行,不

在执行其后面的语句,而是转回dowhile处重新判断条件。

例:

计算s=1+2+3…..+100?

S=0

i=1

dowhilei<=100

s=s+I

i=i+1

enddo

?

‘s=’,s

求1/1!

+1/2!

+1/3!

+…+1/10!

=?

i=1

u=1

s=0

dowhilei<=10

u=u/i

s=s+u

i=i+1

enddo

?

s

例7.8:

逐条输出1982年出生的学生记录。

Clear

opendata学生

use学生in0

sele学生

locateforyear(出生日期)=1982

dowhilenoteof()

display

wait

continue

enddo

closedata

3、for<循环变量>=<初值>to<终值>[step<步长>]

<循环体>

endfor/next

步长默认值为1,若为正,则判断条件为循环变量小于等于终值;若为负,

则判断条件为循环变量大于等于终值。

Fors=2to100step4

Fors=100to2step-4

例:

找出100-999之间的所有‘水仙花数’。

Clear

fori=100to999

a=int(i/100)

b=int((i-100*a)/10)

c=i-int(i/10)*10

ifi=a^3+b^3+c^3

?

i

endif

endfor

return

例:

从键盘输入10个数,然后找出其中的最大值和最小值。

Clear

input‘输入一个数据:

’toa

storatoma,mi

fori=2to10

input‘请输入一个数:

’toa

ifma

ma=a

endif

ifmi>a

mi=a

endif

endfor

?

’最大值:

’,ma

?

’最小值:

’,mi

return

判断:

(1)s=0

fori=1to100

s=s+i

endfor

?

s

(2)s=0

p=1

fori=1to100

p=p*i

s=s+p

endfor

?

s

4、scan[<范围>][for<条件1>][where<条件2>]

<循环体>

endscan

范围默认为all

例:

统计专业代码(学号的第3、4位)为03的男、女生人数。

opendata学生

use学生in0

sele学生

store0tom,w

scanforsubs(学号,3,2)=’03’

if性别=.t.

m=m+1

else

w=w+1

endif

endscan

clear

?

’男生人数:

’,m

?

’女生人数:

’,w

closedata

return

四、多模块程序

应用程序一般都是多模块程序,包含多个程序模块。

模块是一个相对独立的程序段,它可以被其他模块所调用,也可以调用其他的模块。

通常,把被调用的模块称为子模块;把调用其他模块而没有被其他模块所调用的模块称为主程序。

一般大型的程序是有多个人分工合作来完成的,每个人可以编写一个程序模块,最后合成一个总程序。

1、模块的定义和调用

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

过程的定义:

Procedure/function<过程名>

<命令序列>

[return[<表达式>]]

[endproc/endfunc]

过程文件的建立仍使用modifycommand命令,文件的扩展名是prg

打开过程文件的命令格式为:

setprocedureto[<过程文件1>,<过程文件2>,…][additive]

此命令若不带任何文件名,将关闭所有打开的过程文件。

关闭个别过程文件命令:

releaseprocedure<过程文件1>[<过程文件2>,…]

模块调用格式:

格式1:

do<文件名>|<过程名>

格式2:

<文件名>|<过程名>()

注意:

上面两种格式中,如果模块是程序文件代码,用<文件名>;否则用<过程名>。

例:

7.17

2、参数传递(实参、形参)

接收参数的命令有:

parameters<形参变量1>[,<形参变量2>,…]

lparameters<形参变量1>[,<形参变量2>,…]

注意:

第一条命令声明的形参变量是私有变量

第二条命令声明的形参变量是局部变量

不管是哪一条命令,都应该是模块程序中第一条可执行的命令。

调用模块程序格式:

格式1:

do<文件名>|<过程名>with<实参1>[,<实参2>…]

格式2:

<文件名>|<过程名>(<实参1>[,<实参2>…])

注意:

调用模块时,系统会自动把实参传递给对应的形参。

形参的数目不能少于实参的数目,否则系统会产生运行时错误。

如果形参的数目多于实参的数目,那么多于的形参取初值逻辑假.F.

采用格式1调用模块程序时,如果实参是常量或表达式,传递时按值传递;如果实参是变量,传递时按引用传递。

采用格式2调用模块时,默认情况下都以按值方式传递参数。

如果实参是变量,可以通过命令setudfparmstovalue/reference重新设置参数传递方式。

例:

7.18

注意:

当实参是数组元素时,总是采用按值传递。

当实参是数组名时,若传递方式是按值传递,那么就传递数组的第一个元素值给形参变量;若是按引用传递,那么传递的将是整个数组。

例:

7.19

3、变量的作用域

按作用域来分,内存变量可分为公共变量、私有变量、局部变量。

(1)公共变量:

在任何模块中都可使用,它必须通过命令先建立后使用。

命令建立:

public<内存变量表>

该命令建立公共变量后,并赋初值逻辑假.F.

公共变量一旦建立就一直有效,即使程序运行结束返回到命令窗口也不会消失。

除非执行clearmemory、release、quit等命令后才被释放。

(2)私有变量:

在程序中直接使用而有系统自动隐含建立的变量以及用户自己定义的变量都是私有变量。

例:

x=5

作用域是建立它的模块及其下属的各层模块,一旦建立它的模块程序运行结束,私有变量将自动清除。

(3)局部变量:

只能在建立它的模块中使用。

建立它的模块程序运行结束,局部变量将自动清除。

命令建立:

local<内存变量名表>

在开发程序中,子程序与主程序有可能所用的变量名同名,即子程序用到的变量在主程序中已经建立,那么子程序的运行会无意间改变主程序中变量的取值。

为了解决这个问题,可以使用private命令隐藏主程序中可能存在的变量,使它在子程序中暂时无效。

Private<内存变量表>

Privateall[like<通配符>/except<通配符>]

例:

7.21

用local定义了局部内存变量,若与上一级的变量名同名时,局部变量优先,即它具有隐藏上层模块中建立的同名变量的作用。

例;7.22

4、程序的调试(了解)

调用调试器的方法两种:

(1)‘工具’—‘调试器’

(2)在命令窗口输入debug命令。

了解它包含哪些子窗口以及子窗口的作用。

设置断点:

类型1:

在定位处断点

类型2:

如果表达式为真则在定位处中断。

类型3:

当表达式为真时中断

类型4:

当表达式值改变时中断。

例:

7.23

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

当前位置:首页 > 经管营销 > 金融投资

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

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