计算机基础知识第9章第5版_第1页
计算机基础知识第9章第5版_第2页
计算机基础知识第9章第5版_第3页
计算机基础知识第9章第5版_第4页
计算机基础知识第9章第5版_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第9章VBScript程序设计

计算机之所以能自动连续地进行工作,最根本的原因就在于“存储程序”和“程序控制”。计算机能自动进行信息处理,实际上就是执行特定程序的结果。第9章VBScript程序设计本章主要内容退出VBScript程序设计概述VBScript编程基础

程序控制

过程程序调试9.1VBScript程序设计概述9.1.1

程序设计语言的发展程序设计语言大致分为三类:机器语言、汇编语言和高级语言。由低级向高级发展。程序设计语言的发展也大致经历了面向过程程序设计、面向对象程序设计、面向组件程序设计几个阶段。

结构化程序设计方法采用自顶向下、逐步求精的方式对复杂的问题进行逐步分解,将一个较大规模的程序系统分解成若干个功能相互独立、简单的模块,再将模块分解成更简单的子模块,直至最简。每一个模块最终都可用顺序、选择、循环三种基本结构来实现。

面向对象方法引入新的概念和思维方式,使人们对复杂系统的认识过程与系统的程序设计与实现过程尽可能地一致,它不再将问题分解为过程,而是将问题分解为对象。对象将自己的属性和方法封装成一个整体,供程序设计者使用。可以重用现存的对象,把对软件的改动限制在很小的范围内

VBScript是一种解释性的网页脚本语言。它是VisualBasic(简称VB)语言的一个子集(或称简化版本),使用VB语言的语法,语法简单和适合在客户端边解释边执行,而且执行的效率比较高。

VBScript删除了VB语言中有安全性顾虑的一些功能,如读写、删除本地硬盘文件等,使设计者可放心地在Internet上传递的网页中使用VBScript。9.1.2一个简单的VBScript程序例9-1已知a=6,b=9,计算c=

编写的VBScript程序代码如下:

<HTML><HEAD><TITLE>例9-1</TITLE><SCRIPTLANGUAGE="VBScript">Dima,b,c

'声明变量a,b,c

a=6b=9c=Sqr(a+b)

‘Sqr是VBScript的开方根函数

Document.Write("c="&c)

'输出c的值

</SCRIPT></HEAD><BODY></BODY></HTML>

输入和保存该程序后,按F12键执行程序,输出结果如图所示。例9-11.使用纯文本编辑器

如Windows的记事本

优点:简单、易用;

缺点:不支持VBScript的语言特性。

2.使用SPD2007

在“网页”视图中的“代码”选项卡下可以直接编制HTML文档,也可以输入和编辑VBScript脚本程序代码,并能“浏览”执行的效果。

3.使用MicrosoftScriptEditor(MicrosoftOffice内置的脚本调试器)

在SPD2007中打开或新建任意一个HTML文档,选择“网页”视图下的“代码”选项卡,执行“工具”/“宏”命令,然后从弹出的子菜单中选择“MicrosoftScriptEditor”选项,即可打开MicrosoftOffice内置的脚本编辑器。9.1.3编制VBScript程序的工具

在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。

(1)一行写多条语句。冒号分隔

Sum=Sum+x:Count=Count+1

(2)一条语句写成多行

使用续行符(一个空格后面跟随一个下划线“_”),将长语句分成多行。例如:

Document.Write("尊敬的"&name&"先生:欢迎您进入"&└┘_

"计算机基础教育网!")(3)VBScript支持注释语句,以帮助其他程序员理解该程序文件。注释语句以单引号(´)或Rem表示。例如:

r=2:Remr表示圆的半径

s=3.14158*r*r´求圆的面积

(4)不区分大小写字母

9.1.4

程序代码编写规则

(5)各关键字之间,关键字和变量名、常量名、过程名之间一定要有空格分隔。

示例:For└┘k=1└┘To

└┘8

(6)使用缩进

在编写程序代码时,可以使用缩进来反映代码的逻辑结构和嵌套关系。例如:

Sub└┘Button1_OnClick()

x=4

If└┘x<1└┘Then

Document.Write("x<1")

Else

Document.Write("x>=1")

End└┘If

End└┘Sub空格空格

(7)严格按照VB规定的格式和符号编写程序。

与其他高级语言一样,在VB中使用的分号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。

许多程序错误都是由此而起!!!!

例如:

Ifa<5Thenx=10

Document.Write("x<1")

不能写成

Ifa<5Thenx=10

Document.Write(“x<1”)全角符号中文符号9.2VBScript编程基础

程序设计语言的两个重要方面是数据及程序控制。数据是程序要处理的对象,处理的结果也用数据来表示和存储;而程序控制则是对程序运行流程的控制。

9.2.1数据类型

VBScript只有一种数据类型,称为Variant(变体型)。Variant是一种宽松型的数据类型,它可以包含数字或字符串等不同类别的信息,并能根据使用方式确定数据子类型,例如:

a=1a=3.2a="VBScript脚本语言"

其中,第1行定义变量a为整型,第2行定义变量a为单精度数,第3行定义变量a为字符串型。一般情况下,Variant变量会将其数据类型自动转换,还会按照最适合于其包含的数据的方式进行操作。当需要时,可以使用VBScript中的转换函数强制转换。VBScript数据子类型

VBScript数据子类型(1)字符型数据(或称字符串)是指用双撇号(英文符号)括起来的一串字符。例如,"Canton"、"1+2=?"、"Good└┘Morning"(└┘表示空格)、"程序设计方法"等。字符串长度。

(2)单精度数和双精度数可以采用一般形式和指数形式表示。

(3)日期型数据用来表示日期和时间。例如

#08/20/2001##2001-08-20##08/20/2001└┘2:55:10└┘AM#表示格式:#日期#表示格式:

"一串字符"双撇号

一般形式:如34.5、1.23、.23等指数形式:如6.53E8(=6.53×108)、3.736014D-13(=3.736014×10-13)9.2.2变量

变量是内存中的临时存储单元,用于存储数据.变量在程序运行期间其值可以发生变化。

(1)变量的命名规则遵守一些规则(P245)①变量名必须以字母开头;②只能由字母、数字和下划线组成。不能含有小数点、空格等字符;

……

例如可以作为变量名:a、a_1、sum等不能作为变量名:1a、b.1等

(2)变量的声明用Dim语句来声明变量例如:Dimsum,total

′声明两个变量sum和Total

(1)“值可变”:当将某个数据存放到一个变量时,就把变量中原有的值“冲”掉,换成新的值。例如,以下2个赋值语句:

a=3a=8

同一变量在不同时刻可以取不同的值

(2)“取之不尽”:在运算过程中,如果没有改变该变量的值,那么,不管使用变量的值进行多少次运算,其值始终保持不变。例如

x=5a=3+x′x的值始终保持为5b=x*x–4*x变量的两个重要特点

五类表达式:算术表达式、字符串表达式、关系表达式和逻辑表达式

1.算术运算符运算符及其优先级:

^(乘方)→-(求负)→*/→\→Mod→+-P246

示例:5*x^10+x/6–x^(1/3)

15Mod6

2.连接运算符(两个):&和+

示例:”计算机”

&”网络”

结果为”计算机网络”

3.比较运算符

<、<=、>、>=、=、<>

示例:3<=8结果为True(真)

4.逻辑运算符

And、Or、Not

示例:“3”<=”3”And5<2结果为False(假)

9.2.3

运算符和表达式可以改为+号求整除后的余数,结果为31+2*14Mod17\6/2=?

求出下列表达式的值想一想思考题

1+28Mod5

结果为41.按运算符的优先级分成若干运算步骤

先乘除,再整除\和求Mod,后加运算

2.根据运算符的运算功能求出各步骤的结果

内部函数是由VB系统提供的。

函数调用的一般格式为:

函数名(参数1,参数2,…)

返回函数值

例如:

y=Sqr(x)Sqr是内部函数名,x为参数,运行时该语句调用内部函数Sqr来求x的平方根,其计算结果由系统返回给变量yVB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。9.2.4函数VBScript提供了Int(x)[取整]、Abs(x)[求绝对值]、Rnd[产生随机数]…等十多种数学函数。说明:

(1)

函数Int(x)是求小于或等于x的最大整数。例如Int(2.1)=2,Int(-2.5)=-3,Int(-3)=-3

利用Int函数可以对数据进行四舍五入。例如,对一个正数x舍去小数位时进行四舍五入,可采用如下式子:

Int(x+0.5)

当x=9.4时,Int(9.4+0.5)=9

当x=9.5时,Int(9.5+0.5)=101.数学函数

P248

(2)随机函数Rnd可以模拟自然界中各种随机现象。它可产生一个(0,1)的随机数。在VB中,有一个称为随机数生成器的随机数生成程序,能产生一个随机数序列,用户每次调用Rnd即可得到这个随机数序列中的一个。使用Randomize语句可以为随机数生成器指定不同的初值或者称为随机数序列的“种子”,这样可以得到不同的随机数序列。

Rnd通常与Int函数配合使用生成[a,b]区间范围内的随机整数,可以采用

Int((b-a+1)*Rnd+a)

例如Int(4*Rnd+1)可以产生1~4之间(含1和4)的随机整数。可以是1,2,3或4,这由VB运行时随机给定。

生成[1,4]区间范围内的随机整数,可以采用

Int(4*Rnd+1)

产生的随机数可以是1,2,3或4,这由VB运行时随机给定。4*Rnd的结果为下列的一种:

0.……1.……2.……3.……编写的窗体单击事件过程代码如下:

<HTML><HEAD><TITLE>例9-3</TITLE><SCRIPTLANGUAGE="VBScript">Dima,b,cRandomize'初始化随机数生成器

a=Int(100*Rnd+1)'产生[1,100]区间内的随机整数

b=Int(100*Rnd+1)c=a+b'求两数之和

Document.Write("两个随机数:"&a&","&b&"<BR>")

'显示本行后换行

Document.Write("和数:"&c)</SCRIPT></HEAD><BODY></BODY></HTML>

通过“预览”执行程序,输出结果是:两个随机数:5671

和数:127例9-2通过随机函数产生2个1~100的整数,求这2个数之和并显示出来

再次“预览”执行程序,输出另一组结果是:两个随机数:1837

和数:55例9-2

进行字符串处理说明:(1)函数Mid(字符串,p[,n])

从第P个开始取n个字符

示例:Mid(”ABCDEG”,3,2)的结果为”CD”

若省略n,则得到的是从P开始的往后所有字符,如

Mid(”ABCDE”,2)

的结果为”BCDE”

(2)在函数Instr中,f和k均为可选参数,f表示开始搜索的位置(默认值为1),k表示比较方式,若k为0(默认),表示区分大小写;若k为1,则不分大小写。格式:Instr(f,字符串1,字符串2,k)

例如Instr(3,”A12a34A56”,

”A”)

的结果为7

Instr(3,”A12a34A56”,”A”,1)

的结果为4

Instr(”A12a34A56”,

”A”)

的结果为1

(3)函数Left(字符串,n)取左边n个字符示例:Left(”ABCDE”

,2)

的结果为”AB”2.

字符串函数P249

从字符串中取出头部、尾部各一个字符,连接后组成一个新字符串并显示出来

。<HTML><HEAD><TITLE>例9-3</TITLE><SCRIPTLANGUAGE="VBScript">Dimx,a,b,yx="computer" '假设该字符串x内容为"computer"a=Left(x,1) '取左边一个字符

b=Right(x,1) '取右边一个字符

y=a&b '连接起来

Document.Write("新组成的字符串:"&y)</SCRIPT></PRE></HEAD><BODY></BODY></HTML>

输出结果是:

新组成的字符串:cr例9-3

使用字符串函数示例例9-3

程序的三种基本控制结构

VB支持结构化的程序设计方法,其程序结构清晰,可读性好,也易于查错和修改

结构化程序设计方法有三种基本控制结构:

顺序结构、选择结构和循环结构具有单入口,单出口的特点

(a)(b)(c)

顺序结构选择结构循环结构AB假真LE真假ABE9.3

程序控制

在顺序结构中,按程序中语句编写的先后顺序逐条执行。主要有包括以下一些简单语句。

输入数据

赋值语句

变量=表达式为变量赋值

InputBox函数通过输入对话框接收数据

输出结果

Document.Write方法输出信息到网页

MsgBox函数以消息框形式输出信息8.3.1

顺序结构通常程序包含三部分内容:输入→处理→输出

格式:[Let]变量=表达式

功能:计算右端的表达式,并把结果赋值给左端的变量。Let表示赋值,通常省略。符号“=”被称为赋值号。例如:

sum=99

'把数值99赋给变量sum

txt1="程序设计"

'把字符串赋给变量txt1

txt2="学习"&txt1

'把右端字符串表达式的值赋给txt2

说明:(1)表达式中的变量必须是赋过值的,否则变量的初值自动取零值(变长字符串变量取空字符)。例如:

a=1c=a+b+3

′b未赋过值,为0

执行后,c值为41.赋值语句(2)赋值语句跟数学中等式具有不同的含意,例如

x=x+1

表示把变量x的当前值加上1后再将结果赋给变量

“先读后写”:读出x的内容→加1→

写回x(覆盖原有内容)

(3)变量出现在赋值号的右边和左边,其用途是不相同的。出现在右边表达式中时,变量是参与运算的元素(其值被读出);出现在左边时,变量起存放表达式的值的作用(被赋值)。例如

x=2a=3x=2*a+5

当执行第3行语句“x=2*a+5”时,将读出变量a的值(即3),把该值乘2后加5,然后将结果(11)赋值给变量x。编写的VBScript程序代码如下:

<HTML><HEAD><TITLE>例9-4</TITLE><SCRIPTLANGUAGE="VBScript">Dimx,a,b,c

'声明4个变量

x=36'给定一个2位数

a=Int(x/10)'求十位数

b=xMod10'求个位数

c=b*10+a'生成新的数

Document.Write("处理后的数:"&c)'输出c的值

</SCRIPT></HEAD><BODY></BODY></HTML>

执行程序后,输出结果是:

处理后的数:63

例9-4给定一个两位数(如36),交换个位数和十位数的位置,把处理后的数显示在网页上例9-4

处理方法两位数

ab

b②取出个位数

a①取出十位数

③组成新两位数:b*10+a假设这个两位数x为36

编写的VBScript程序代码如下:

<HTML><HEAD><TITLE>例9-4A</TITLE><SCRIPTLANGUAGE="VBScript">Dimx,a,b,c

'声明4个变量

x=InputBox("输入一个2位数")'给定一个2位数

a=Int(x/10)'求十位数

b=xMod10'求个位数

c=b*10+a'生成新的数

Document.Write("处理后的数:"&c)'输出c的值

</SCRIPT></HEAD><BODY></BODY></HTML>

执行后,弹出一个输入对话框,若用户输入“83”,输出结果:处理后的数:38

例9-4A运行时由用户任意给定一个两位数,交换个位数和十位数的位置,把处理后的数显示在网页上。例9-4A通过输入对话框输入两位数

Document(文档)对象是Web浏览器中的一个重要对象,它代表当前的整个网页。使用Document对象的Write方法可以向网页输出信息。常用格式:

Document.Write(输出项)

举例:

Document.Write(x)Document.Write("x="&x)Document.Write("x="&x&",y="&y)2.Document.Write输出方式3.消息对话框使用MsgBox函数可以产生一个消息对话框。一般格式如下:

MsgBox(输出信息)或

MsgBox输出信息

4.输入对话框格式:InputBox(提示信息)

功能:产生一个输入对话框,在对话框中显示“提示信息”,并能接收用户输入的一行信息。

例9-5使用InputBox函数输入一个姓名,使用Msgbox输出信息

<HTML><HEAD><TITLE>例9-5</TITLE><SCRIPTLANGUAGE="VBScript">Dimnamename=InputBox("请输入您的姓名")MsgBox"尊敬的"&name&":欢迎您进入我的网站!"</SCRIPT></HEAD><BODY></BODY></HTML>例9--5例9-5程序的执行用户输入“张三”

③Dima,b,ta=InputBox("输入第一个变量值,a=")b=InputBox("输入第二个变量值,b=")Document.Writeln("交换前,a="&a&",b="&b)

'输出交换前变量的值

t=a:a=b:b=t'交换变量a和b的值

Document.Write("交换后,a="&a&",b="&b)

‘输出交换后的结果例9-6

交换两个变量的值,两个变量的值由InputBox函数输入例9--6abt②①必须借助于第3个变量

先从x中找出逗号字符,再以此字符为界拆分成两个字符串。

Dimx,a,b,px=InputBox("输入“收件人”栏的内容")p=InStr(x,",")'查找逗号,得到逗号的位置

a=Left(x,p-1)'取逗号左边部分

b=Mid(x,p+1)'取逗号右边部分

Document.Write("第一个邮件地址:"&a&"<BR>")Document.Write("第二个邮件地址:"&b)

执行后,输入“zhang1999@,wuwc2010@163.com”,则输出结果:

第一个邮件地址:zhang1999@

第二个邮件地址:wuwc2010@163.com例9-7分解“收件人”栏中的两个邮件地址例9-7

选择程序结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程

VBScript中实现选择结构的语句主要有:

条件语句(If)和多分支语句(SelectCase,不介绍)

两种格式的条件语句:

If...ThenIf...Then...Else9.3.2

选择结构If条件

Then

语句块

EndIf

功能:若条件成立(值为真),则执行语句块,否则直接执行“EndIf”的下一条语句。

1.If...Then语句

格式:

If条件

Then

语句块1(A)Else

语句块2(B)EndIf

功能:首先测试条件(E),如果条件成立(即值为真),则执行Then后面的语句块1,如果条件不成立(即值为假),则执行Else后面的语句块2。而在执行Then或Else之后的语句块后,会从EndIf之后的语句继续执行。真假ABE

2.If...Then...Else语句

在IF条件中,有时需要判断字符的大小。字符大小是按其ASCII码值进行比较的(见书P247)

1.下列字符中,____字符最大,____字符最小。

A.1B.ZC.*D.a2.假设a=1,b=2,下列逻辑表达式中其值为真的有

A.a<=0B.a>=0Andb>2C.a<=0Or"b">"ab"D.a>=0AndNotb<2E.2*a=-bOra>0Andb>0

请你给出答案想一想思考题最大字符:D最小字符:CFFTTTa=1:b=3

c=4*a-bIfa*2-1<=bThenb=2*b+cEndIfIfb-a>cThena=a+1c=c-1Elsea=a-1EndIf

下列程序段运行后,a、b、c的值是?想一想思考题270<HTML><HEAD><TITLE>例9-8</TITLE><SCRIPTLANGUAGE="VBScript">Dimx,y,mx=Csng(InputBox("输入第一个数"))y=Csng(InputBox("输入第二个数"))m=x'm存放较大值,先把x放入m

Ifm<yThen'若y比m大

m=y'把y放入mEndIf Document.Write("最大数是:"&m)'显示最大值

</SCRIPT></HEAD><BODY></BODY></HTML>例9-8

任给两个数,判断其中较大数并显示出来。

例9-8将输入的内容转为数值(单精度数),见P250<PRE><SCRIPTLANGUAGE="VBScript">Dima,b,c,mRandomizea=Int(90*Rnd+10)b=Int(90*Rnd+10)c=Int(90*Rnd+10)Document.Writeln("产生的3个两位数为:“&a&","&b&"和"&c)Ifa>bThenm=aElsem=bEndIfIfc>mThenm=cEndIfDocument.Write("最大数是:"&m)</SCRIPT></PRE>例9-9

产生3个两位随机数a、b、c,求出其中最大数。例9-9假假真

开始产生3个随机数分别存放在a,b,ca>bm=bc>m结束m=a真m=c在文本框Text4中显示m值程序流程图

Then和Else后面的语句块包含另一个条件语句

例9-10

输入某课程的百分制成绩,显示出对应的成绩等级,如输入54,则显示“不及格”。

<SCRIPTLANGUAGE="VBScript">Dimmarkmark=Cint(InputBox("输入成绩"))Ifmark<60ThenDocument.Write("不及格!")ElseIfmark<80Then

Document.Write("及格!")ElseDocument.Write("优秀!")

EndIfEndIf</SCRIPT>

使用条件语句嵌套时,一定要注意If与Else,If与EndIf的配对关系。3.条件语句的嵌套例9-10<HTML><HEAD><TITLE>例9-2错</TITLE><SCRIPTLANGUAGE="VBScript">Dima,b,c,Randomize

'初始化随机数生成器

a=Int(100*Rnd+1)'产生[1,100]区间内的随机整数

b=Int(100*Rnd+1)c=a+bDocument.Write("两个随机数:"&a&","&b&“<BR>”)

'显示本行后换行

Document.Write("和数:&c")</SCRIPT></HEAD><BODY></BODY></HTML>

下列程序错在什么地方?想一想思考题例9-2(错)多一个空格不能是中文引号C变为文本内容,而不是变量后面不能有逗号

采用循环程序可以解决一些按一定规则重复执行的问题。循环是指在指定的条件下多次重复执行一组语句被重复执行的一组语句称为循环体常用循环语句有

For...NextDo...Loop(不介绍)9.3.3

循环结构假真循环体循环条件1.循环语句For...NextFor...Next循环语句是按指定次数执行循环体的。

例9-11在网页上显示2~10各偶数的平方数

DimkFork=2To10Step2'初值、终值和步长值分别为2、10和2Document.Write(k^2&"<BR>")Next

程序执行后,输出结果如下例9-11For...Next语句的语法格式如下:

For循环变量=初值To终值[Step步长值]

循环体

Next

功能:控制重复执行循环体中的一组语句。本语句使用一个起计数器作用的循环变量,每重复执行一次循环之后,循环变量就会按一定的步长增加或者减少,直到超过某规定的终值时退出循环。

For...Next语句的执行步骤(P257)For...Next语句Step1可以省略

例9-12求S=1+2+3+…8,把结果显示在网页上。

s=0'累加器初值为0Fork=1To8s=s+k'累加器,在原有和的基础上每次加一个数

Next

Document.Write("s="&s)

程序执行结果是:s=36

分析例9-12累加器

s=s+k旧值。前n项之和新加的数k=1s←s+k

01k=3s←s+k1+23k=2s←s+k

12k=8s←s+k1+2+…7

8……

例9-13

计算T=8!=1×2×3×…8,把结果显示在网页上。

t=1'累乘器初值为1

Forc=1To8t=t*c'累乘器,在原有积的基础上每次乘一个数

NextDocument.Write("T="&t)

程序执行结果是:T=40320

分析例9-13c=1t←t*c

11c=3t←t*c1*23c=2t←t*c

12c=8t←t*c1*2*

…78……累乘器

t=t*k旧值。前n项之积新乘的数

程序代码如下:

Dimpi,s,cpi=0s=1's表示加或减运算

Forc=1To10000Step2pi=pi+s/cs=-s'交替改变正、负号

NextDocument.Write(("π="&pi*4)

程序执行结果是:

π=3.141397例9-14

用π/4=1-1/3+1/5-1/7+……级数求

π的近似值

(取前5000项来进行计算)例9-14Fort=1To3Ift<=1Thena=3Ift<=2Thena=2Ift<=3Thena=1Document.Write(a&"")NextDocument.Write(t)A.3333B.1234C.3214D.1114

下列程序的运行结果是?想一想思考题D例9-14AFort=1To3Ift>=1Thena=3Ift>=2Thena=2Ift>=3Thena=1Document.Write(a&"")NextDocument.Write(t)A.3334B.1234C.3214D.1114

下列程序的运行结果是?想一想思考题C例9-14B

运行下面程序后,循环体执行了___(1)___次,s值为___(2)___。

s=0Fork=1To9Step3s=s+2*kNextDocument.Write("s="&s)(1)A.1B.2C.3D.4(2)A.11B.21C.24D.42

请回答问题想一想思考题C例9-14CC执行下列语句后,在浏览器窗口中的输出结果为_____。

Forx=1To4Ifxmod2=0ThenDocument.Write("*")EndIfDocument.Write("&")NextA.&*&*B.&*&&*C.&*&*&D.&*&&*&

下列程序的运行结果是?想一想思考题D例9-14Ds="ABCDEFGHIJ":c=""Fork=2ToLen(s)Step3a=Mid(s,k)c=c+Left(a,1)NextDocument.Write(c)

A.BDFB.CFIC.BEHD.BEI

下列程序的运行结果是?想一想思考题C例9-14E

多重循环是指循环体内含有循环语句的循环,又叫多层循环或嵌套循环。多重循环的一个执行规则是,外层循环每执行一次,内层循环就要从头开始执行一轮。

例9-15多重循环程序示例

Fori=1To3'外循环

Forj=5To7'内循环

Document.Writeln(i&","&j&"<BR>")NextNext

程序执行结果:2.多重循环例9-15循环变量i,j的变化情况i=1j=5,6,7i=2j=5,6,7i=3j=5,6,7例9-16输出“九九乘法表”

分析:显然“九九乘法表”是一个9行9列的二维表,行和列都以一定规则变化。可以采用两重循环进行控制。

<BODY><FONTFACE="黑体"SIZE="4"COLOR="red">

九九乘法表</FONT><BR><SCRIPTLANGUAGE="VBScript">Dimi,jFori=1To9Forj=1ToiDocument.Write(i&"*"&j&"="&i*j&",")NextDocument.Write("<BR>")'换行

Next</SCRIPT></BODY>

例9-163.累加、连乘和计数

在循环程序中,常用累加、连乘和计数等方法来完成各种处理任务。计数类似于累加,计数通常每次加1。

例9-17产生100个500~999的随机整数,找出这些数中能被17整除的数,计算其个数。

采用计数方法n=n+1(或称“计数器”)来记录有多少个数能被17整除。

Randomize'初始化随机数生成器

Document.Write("能被17整除的数是:<BR>")Fork=1To100x=Int(500*Rnd+500)IfxMod17=0Then'判断是否被17整除

Document.Write(x&"<BR>")'输出这个数并换行

n=n+1'对满足条件的数进行计数

EndIfNextDocument.Write("一共有"&n&"个")

例9-17

把610表示为两个加数之和,使其中一个加数能被17整除,而另一个加数能被19整除,求出这两个加数等于多少?请完善程序。

Fora=17To610Step17Forb=19To610Step19If________ThenDocument.Write("第一个数为:"&a&"<BR>")Document.Writeln("第二个数为:"&b)EndIfNextNext思考题

例9-16A想一想a+b=610

设有算式:

A、B、C、D均为非负非零的一位数字。找出满足以上算式的A(____)、B(____)、C(____)、D(____)。

思考题:猜数字

例9-16B想一想

Fora=1To9Forb=1To9Forc=1To9Ford=1To9x=a*1000+b*100+c*10+dy=b*1000+a*100+a*10+cz=_____(1)_____If_____(2)_____ThenDocument.Write("A="&a&",B="&b&

",C="&c&",D="&d)EndIfNextNextNextNextd*100+d*10+a

x

-

y=z

对于重复使用的程序段,为了避免程序代码的重复,可以把这一程序段独立出来,编成一个过程(如SubA)。当程序需要执行这个任务时,可使用调用语句(如Call)实行调用。子过程执行完后,会返回调用程序中的调用语句Call的后续语句继续执行。

过程调用示例

分为Sub(子程序)过程和Function(函数,不介绍)过程9.4过程调用过程

……CallSubA……CallSubA……过程SubA使用过程……程序段程序段……相同处理的程序段可编成独立的过程(如SubA)1.Sub过程定义格式:

Sub过程名([参数表])

过程体

[ExitSub]

EndSub2.调用Sub过程

Call过程名([实参表])

例如,调用名为SubCal的过程:

CallSubCal(10)8.4.1Sub过程例9-18

使用Sub过程的示例

<HTML><HEAD><TITLE>例9-18</TITLE><SCRIPTLANGUAGE="VBScript">'在头部中定义了一个putname过程

Subputname(name)Document.Write(name&","&"你好!<BR>")EndSub</SCRIPT></HEAD><BODY><SCRIPTLANGUAGE="VBScript">Dimnn=InputBox("输入您的姓名:")Callputname(n)Document.Write("祝你身体健康!")</SCRIPT></BODY></HTML>例9-18在输入对话框中输入“王五”<HTML><HEAD><TITLE>例9-18A</TITLE><SCRIPTLANGUAGE="VBScript">Submysub(a,b)b=a+2EndSub</SCRIPT></HEAD><BODY><SCRIPTLANGUAGE="VBScript">Dimn,sn=2Callmysub(n,s)n=n+sDocument.Write("n="&n&",s="&s)</SCRIPT></BODY></HTML>n=6,s=4思考题:下面程序运行的结果是?想一想例9-18A1.网页对象及其属性和方法

Web浏览器在显示网页时,会使用到各种不同的对象,如窗口(Window)、文档(Document)、文本块(Font)、文本框(Text)、按钮(Button)等。对象具有自己的属性和方法。例如,文字块(Font)对象具有名称(ID)、文字大小(Size)、颜色(Color)等属性,文本框(Text)对象具有名称(Name)、内容(Value)、长度(Size)等属性,按钮(Button)对象具有名称(Name)、标题(Value)等属性。设置对象的属性:

Myfont1.Color="red"‘设置文字块Myfont1的颜色

Mytxt1.Value=“VBScript”‘设置文本框Mytxt1的内容又如,使用Document对象的Write方法可以向网页输出变量x的值,相应的语句是:

Document.Write(x)9.4.2

动态网页中的事件处理过程

2.事件事件通常是用户发出的动作。每个对象都有自己所能识别的事件。例如,按钮可以识别单击(Click)等事件,而文字块可以识别鼠标移动到上面(MouseOver)、离开(MouseOut)等事件。

3.事件过程对象通过事件来执行动作。例如,当用户单击某一按钮对象时,将“触发”一个“单击”(OnClick)事件,而在该事件发生时,系统将自动执行相应的“事件处理过程”,用以实现指定的操作。这种工作模式称为“事件驱动”工作方式。事件过程名格式:“对象名_事件名”。以下是一个示例:按钮单击假设命令按钮名为Butt1单击该命令按钮时,系统将自动执行名称为Butt1_OnClick

的事件处理过程例9-19编写一个响应鼠标移动事件的程序

网页打开时以4号蓝色显示一个Font文字块“请将鼠标移动到这里!!”,以后当鼠标指针移动到该文字块上面时,文字将放大为7号和改成红色;当把鼠标指针离开文字块时,该文字块的文字又会恢复成原来的大小和颜色。<HTML><HEAD><TITLE>例9-19:响应鼠标移动事件</TITLE><SCRIPT

温馨提示

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

评论

0/150

提交评论