12、空格的ASCII码值是32,小于字母的ASCII码。
14、暂停语句:
stop执行暂停语句时,窗体自动打开立即窗口
15、用dim定义的变量是动态变量(对)
用dim定义的变量是局部变量(错)
静态变量一定是局部变量(对)
用private定义的变量是模块级变量(对)
算数表达式运算符运算顺序:
幂运算^*/\mod+-
\和mod运算先转换成整数后运算如25.6mod6.5(即26mod6遵循奇进偶不进)为2
字符串连接符+&
如下:
print12+"34",12&34,12+"ab34"
输出结果461234类型不匹配
布尔值可以用于算数运算:
true为-1,false为0
如12+true为11;12+false为12
a=5:
b=4:
c=3
Printa>b>c结果为false
True>c
-1>3false
VB中=有赋值,比较两个功能
a=3赋值
b=a=2赋值比较将a=2比较的值赋值给b
Printa,b
3false
在VB中5<=X<=10不能判断X在[5,10]中应该是5<=XandX<=10
数值可以用于逻辑运算,非0值为true,0为false
其中trueandn和falseorn为n,否则true为-1,false为0
Printtrueand3;trueor3;falseand3;falseor3
结果:
3-103
23、本章要求:
变量2分以上,函数2分,表达式2分
4、数据的输入和输出(笔试2~4分)
print方法:
outputlist表示要输出的文件表达式,,其中分号表示下一个字符紧挨着前一个字符打印,而逗号表示下一个字符在前一个字符的下一个打印区开始打印(14个字符作为一个分区),打印多次print时,会自动换行,如果要同行输出,则在上一个print方法的末尾加上分号或者逗号。
与print有关的函数:
Spc(n),用来在输出中插入空白字符。
helloworld
aaa
Tab(n)将插入点定位在绝对列号上,使用无参数的tab()将插入点定位在下一个打印区的起始位置。
如print“hello”;tab;”world”
PrintTab;”aaa”
输出结果如图
Format函数实现数值按一定的格式输出
(0)数字占位符。
显示一位数字或是零。
如果表达式在格式字符串中0的位置上有一位数字存在,那么就显示出来;否则,就以零显示。
如果数值的位数少于格式表达式中零的位数(无论是小数点的左方或右方),那么就把前面或后面的零补足。
如果数值的小数点右方位数多于格式表达式中小数点右面零的位数,那么就四舍五入到有零的位数的最后一位。
如果数值的小数点左方位数多于格式表达式中小数点左面零的位数,那么多出的部分都要不加修饰地显示出来。
(#)数字占位符。
显示一位数字或什么都不显示。
如果表达式在格式字符串中“#”的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。
此符号的工作原理和“0”数字占位符大致相同,不同之处只有在当表达式中数值的位数少于“#”的位数(无论是小数点左方或右方)时,不会把前面或后面的零显示出来。
msgbox函数的作用是在对话框中显示消息,等待用户单击按钮,并返回一个integer。
Msgbox(提示信息[,按钮][,标题]),按钮是一个整型表达式,决定对话框中按钮的数量和类型,以及对话框上的图标类型。
只有提示信息时,只显示一个确定按钮,标题为工程名。
返回值是整型integer
msgbox函数也能写成语句的形式,msgbox提示[,按钮][,标题]它的含义和作用和msgbox函数一样,但是该语句没有返回值且不需要括号。
inputbox(提示[,标题][,默认值]),提示信息为字符串表达式,不能省略,若要多行显示需要在每行行末加上回车chr(10)和换行chr(13)控制符。
标题是一个字符串表达式,在对话框的标题区显示(最上面一行),如果省略则将应用程序名放入标题栏。
默认值为一个字符串表达式,提供给用户默认输入内容。
返回值是字符串
字体的属性,fontname,fontbold(加粗),fontitalic(斜体),fontunderline(下划线)
Print方法适用的控件包括窗体,图片框,立即窗口,打印机。
Print之间用“:
”相间实际相当于另起一行。
即print“*”:
print“**”:
print”***”相当于print”*”
Print”**”
Print”***”
printform方法可以打印包括窗体上的文本、可见控件、和图形。
printformat$(3.789,”00.00E+00”)的结果是37.89E+00
10、使用print方法进行标准格式输出,各表达式的分隔符应当是逗号。
11、print语句如果是一个判断就输出ture或false
12、print方法是在窗口中显示文本和表达式的值。
5、常用标准控件(笔试10分、上机15分)
1、文本控件属性
Alignment属性设置文本的对齐方式
Autosize属性值设为ture时控件可以水平扩充以适应caption内容;
Wordwrap属性为ture时可以垂直扩充
Backstyle属性用于只是标签是否透明,透明(0),不透明(1默认)
Bordstyle属性用于判断控件是否有边框,无边框(0默认),有边框
(1)
Multiline属性设置text字符串是否接收换行符,默认是false,为ture时,设计时,在属性窗口自己人写入text,按回车键换行;运行时,用赋值语句修改必须加入回车、换行符才可以
如text1.text=“未到达边界”+chr(13)+chr(10)+“另起一行”
Scrollbar属性决定文本框是否加滚动条,其值为0时没有滚动条,1(水平),2(垂直),3(两种),有滚动条时必须将multiline属性设置为ture
Selstart属性表示文本框中被选择哪个文本的起始位置,计数从0开始
Sellenght表示文本框中被选中文本的长度
Seltext(字符串类型)是文本框中被选中的文本。
剪贴板的方法:
1)clear方法:
清除剪贴板中的内容clipboard.clear
2)gettext方法:
将剪贴板中的文本复制到制定文本框的光标处text1.seltext=clipboard.gettext
或者复制给字符串变量str=clipboard.gettext
3)settext方法将选中文本送入剪贴板,clipboard.settext(text1.seltext)
2、控件事件和方法
Keyupkeydown事件的必选参数是keycode和shift,keycode表示按键的代码,键盘上的字母和数字的代码与其ASCII码相同;shift值是1时,表示按下了shift键,2时表示按下了ctrl,4时按下了Alt键,按下不知一个键时,参数值可以相加。
这两个事件区分数字小键盘和常规数字键。
3、下列情况不能引发Keyupkeydown这两事件:
窗体上有一个命令按钮的default属性设置为ture时按下enter键,引发的是命令按钮的click事件。
窗体上有一个命令按钮的cancel属性设置为ture时,按下esc键,引发的是命令按钮的click事件
窗体上有多个可拥有焦点的控件时按下Tab键
4、对于字母键,keycode参数返回的总是大写形式,要知道当前的大小写形式应该检测shift参数的值
5、keypress事件的必选参数是keyascii,只有具有焦点的控件才能接收keypress事件,一个窗体只有在它没有可视和有效的控件或者keypreview属性设置为ture时才能接收该事件。
将keyascii设置为0可以取消击键,这样对象便接收不到字符。
6、方向键不会产生keypress事件。
7、keypress将每个字符的大小写形式作为不同的字符;而keydownkeyup用两个参数解释每个字符的大写形式和小写形式:
keycode---显示物理的键(将A和a作为同一个键返回)和shift---指示shift+key键的状态而且返回A和a其中之一。
8、keycode表示你按下了哪一个键,而keyascii表示你按下了哪一个字符。
9、图形控件
图片框(picture)和图像框(image)
1)对于图片框,如果控件不足以显示整幅图像,则剪切图像以适应控件的大小。
2)图像框支持图片框的一部分属性、事件、方法,图片框可以使用print方法接收和输出信息,而图像框不能
3)图片框可以作为容器,内部安置其他控件(这些控件的left和top属性都是相对于图片框而言的),而图像框不能
4)图像框可以设置streth属性用来指定一个图形是否要调整自身大小,以适应与image控件的大小,而图片框可以设置autosize属性决定图片框控件是否要自动改变大小以显示其全部内容。
5)图像框使用较少的系统资源,重画起来比图片框要快
6)图片框支持printcls方法,图像框不支持
10、图形的装入:
[object].picture=loadpicture(“图形文件名”)该函数的参数是一个字符串表达式,清除图片框中原有的图片用picture1.picture=loadpicture(“”)
11、框架、单选按钮、复选按钮
1)框架必须先建立,然后在框架中添加其他控件,不能简单的把已经建立的控件拖放到框架中去。
2)单选按钮的value属性:
ture时表示选中,false未选
3)复选按钮的value属性值为0时,复选框内为空白:
值为1时显示对钩;值为2时显示灰色的对钩
4)字体设置要注意双引号在半角状态下设置,另外楷体的字体名称是“楷体_gb2312”,不要与其他字体混淆。
12、列表框控件常用属性
1)List属性(字符串数组),利用索引可以访问列表项目,数组元素最小下标值的设定对于列表框来说是无效的,第一个表项的索引值总是0.
2)listcount属性为控件列表部分项目的个数,由于从0开始计数,则listcount-1是最后一个项目的index
3)listindex被选中项的索引,通过该属性可以区分已选中和未选中的表项。
表达式“list1.list(list1.listindex)”的值应该解析为:
list1.listindex是选中项的索引值,而list(list.listindex)是列表框所对应的选中项。
当没有选中任一项时,listindex值为-1
4)multiselect属性值为0时表示只能单选;为1时表示可以多选,shift连续多选;为2时表示ctrl断续多选(可以在列表框内拖动、选中相邻若干个表项)。
5)text属性(字符串类型)当前选中的表项内容,字符串list1.list(list1.listindex)与list1.text相等,都表示被选中表项的文本。
6)selected属性标识一个数组,如果第i项被选中。
则selected(i-1)的值为ture,在允许多想选择的情况下,利用selected属性区分哪些表项被选中
7)topindex属性指定在列表框中哪个项被显示在顶部的位置,list1.topindex=3,表示将第四项放在顶部
13、列表框的常用方法
1)additem方法:
列表框控件名.Additem表项文本[,索引号],索引号指定项目文本的插入位置,如果省略,自动加到列表框末尾。
也可以
列表框控件名.list(list1.listindex)=表项文本
2)clear方法;用于清空列表框中的所有表项
列表框控件名.clear
removeitem方法用于删除列表框中指定的表项
格式;列表框控件名.removeitem索引值
语句list1.removeitemlist1.listindex的功能即为删除所选表项。
14、组合框(combo)是文本框和列表框的组合控件
常用属性:
style属性值为0(缺省值)时,为下拉式组合框(包括一个文本框和一个下拉式列表框,用户可以从中选择也可以键入文本);值为1时,为简单的组合框包括一个文本框和一个非下拉式列表框,可以选择也可以键入文本;值为2时为一个下拉式列表框,包括一个不可输入的文本框和一个下拉式的列表框
text属性,对于组合框一次只能选中一个表项,所以text即为选中表项的文本。
15、滚动条
Value属性,在滚动条上的位置决定该值滑块位于最顶端和最左端时最小min,反之最大max,在数值上min可以大于max
largechangesmallchange属性
16、计时器
Interval属性,表示事件间隔,以毫秒为单位(即设置为1000时,事件间隔为1秒)
Enable表示控件是否能被激活
停止代码可以是:
timer.intervel=0
或:
timer.Enabled=false
17、焦点与Tab顺序
将焦点给对象的方法有运行时选择对象、运行时用快捷键选择对象、在代码中用setfocus方法,只有当对象的enabled和visible属性设置为ture时才能接收焦点,并且用setfocus方法设置控件焦点,但在form_load事件中不能直接设置,而必须首先使用show方法显示窗体后才能对该窗体的控件设置焦点。
即subform_load()
Text1.setfocus
Endsub是错误代码
当控件获得焦点时引发gotfocus事件,失去焦点时lostfocus事件
Tab顺序是在按tab键时焦点在控件之间移动的顺序,将控件的tabstop属性设置为false,便可以将控件从tab键顺序中删除。
Tabstop属性已经设置为false的控件,仍然保持他在tab键顺序中的位置,只不过在按下tab键时这个控件被跳过,一组同样的空间中只能有一个tab焦点即被选中的控件的tabstop属性为ture,其他的为false。
坐标原点在容器(窗体、屏幕、框架、图片框)的左上角,向右向下为正方向。
当容器对象无效时,其内的所有控件均无效。
分析列表框中的项是否和文本框中的内容相同,相同则删除:
Fori=1tolist1.listcount-1
Iflist1.list(i)=text1.textthen
List1.removeitemi
Endif
Nexti
6、VB控制结构
1、VB提供的语句包括赋值语句、暂停语句、结束语句、注释语句、跳转语句等
2、VB中可以一条语句占一行,也可以一条语句占多行,在上一行结尾处加上下划线“-”与下一行连接,还可以多条语句写在同一行上,用冒号隔开。
3、注释语句可以使用rem关键字也可以使用撇号“'”,在一行中撇号和rem关键字后面的内容为注释内容。
它们之间的区别在于使用rem关键字时必须使用冒号将其与前面的语句隔开。
4、续行符:
一个空格后跟一个下划线
5、在同一行内,续行符后面不能加注释。
6、Ifthen单行格式不用endif语句。
如果表达式的值是ture时要执行多行代码,则必须使用多行块ifthenendif语法。
在一个块内满足多个时执行第一个。
7、IIf函数可以执行简单的判断,它根据表达式的值,来返回两部分中的其中一个值,语法是IIf(expr,turepart,falsepart),expr是必要的参数,用来判断真伪的表达式,为真则返回turepart假则返回falsepart.
Select语句表达式的值①可以是几个值的列表②如果列表中的值是连续的可以用to表达式。
如case1to5③列表中还可以使用Is关系表达式,使用关键字Is定义条件时,只能定义简单条件,如caseIs>79表示大于79的值caseIs<5,Is>50表示小于5或者大于50的值。
不能用逻辑运算符(andor)把多个简单条件组合在一起,如caseIs>10AndIs<50就是错误的。
④表达式值的类型必须与测试表达式的类型一致⑤如果不止一个case与测试表达式相匹配,则只对第一个匹配的case执行与之相关的语句块⑥各个case子句的顺序对执行结果没有影响⑦不同的case子句的条件和操作不能相互矛盾。
先判断条件形式的DO┄loop语句:
Do[while│until<条件>][语句块]loop该语句的功能是当指定循环条件为ture或者直到指定的循环结束条件变为ture之前重复执行语句块组成的循环体。
10、后判断形条件形式的Do‥‥loop语句:
Do[<语句块>]loop[while│until<条件>]该语句首先执行循环体,然后测试循环条件与循环终止条件,决定是否继续循环,所以,这种结构的语句至少执行一次循环体。
11、While条件表达式[循环体语句]wend语句
12、For‥‥next循环控制结构:
在知道要循环多少次时,则最好使用for‥next循环:
初值、步长、终值均是数值表达式;循环体省略时for语句依然执行,例如fori=1to5step1nextI只是不实现任何动作;循环次数=int((终值-步长)/步长+1)。
13、For……next做题思路:
从外层到内层,将内层做完,返回到外层,依次循环
14、例:
求在1到60之间满足2a+2b=2c和沟股定力的组合数
Fora=1to60
Forb=1to60
Forc=1to60
Ifa^2+b^2=c^2then
n=n+1
Endif
Nextc
Nextb
Nexta
Printn/2不区分ab取值
求ab的最大公约数
思路:
大数除以小数取余数,如果余数不为0,则将小数给大数,余数给小数继续取余数,最终的小数即为最大公约数
m=24
n=18
r=mmodn
Dowhiler<>0
n=r
m=n
Loop
Printn
判断一个数是否是素数(只能被1和本身整除的数)
思路:
逐一判断该数是否能被2到n-1整除
Fori=2ton-1其中n-1可以改为n/2或sqr(n)
Ifnmodi=0thenexitfor
Nexti
Ifi>n-1then
Print"是"
Else
Print"否"
判断一个数是否是完全平方