




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010秋计算机等级考试 VB基础知识 1 数据类型的定义 各种数据的表示存储容量和范围2 数据类型应用中的三个问题 溢出精度匹配 3 运算苻与表达式算术运算符字符串运算符 和 说明 1 可以将非字符串类型的数据转换成字符串后再进行连接 而 则不能 xyz 123 xyz123 xyz 123出错 类型不匹配 2 若一数字字符串和一数值型数据 执行 则执行相加运算 123 10 133例题 b 15 a b b a的结果为多少 关系运算符与关系表达式逻辑运算符与逻辑表达式运算符的优先级为 1 算术运算符 连接运算符 关系运算符 逻辑运算符 2 表达式中出现括号 则先执行括号内的运算符 后执行括号外的运算 括号内部的表达式仍按运算符的优先顺序计算 4 内部函数 全部记住 三角函数 例如 Sin x x的值必须是弧度Int与Fix函数的区别 当x0 说明s1中一定有s2字符串 时间日期函数 Date Time WeekDay Year Month Day TimerVal x 与Str x Val 2457 2457Str 2457 2457 Val 24and57 24Asc x 与Chr x Asc a 97Chr 97 a Asc Apple 65 Rnd函数 产生 0 1 之间的随机数Int Rnd 100 要产生一个 1 100 之间的数 则公式为要产生一个 10 99 之间的数 则公式为 注意 要得到 a b 之间的随机数 可用公式 Int Rnd b a 1 a与Print方法有关的函数 Tab与SpcTab n 输出位置定位到第n列PrintTab 10 123 Tab 30 abc 输出 123abc注意 当Tab n 中的n的值小于当前输出位置的值 重新定位在下一行的n列 5 变量 1 变量的命名规则一个变量名的长度不超过255个字符 由字母 数字和下划线组成 变量的第一个字母必须是字母或汉字不能使用VB关键字不能与过程名或符号常量名相同不区分大小写 2 变量声明隐含声明 在变量名后面加上特定符号即确定了其类型 单精度浮点数 Single a 整型变量 Integer a 字符串型数据 String a 强制声明 用Dim声明变量和数组格式 Dim变量名As数据类型示例 DimiAsIntegerDimbjAsByte kAslong思考 DimmAsInteger nAsInteger Dimm nAsInteger 3 变量的初值 变量声明以后 自动赋初值变长字符串 数值类型 0定长字符串 逻辑型 False 4 变量的作用域局部变量在事件 函数 Sub过程中用Dim语句声明的变量 局部变量的作用域仅限于它所在的过程 不能被其他过程调用PrivateSubCommand1 Click DimiAsInteger 局部变量i 7PrintiEndSubPrivateSubCommand2 Click PrintiEndSub 模块级变量在模块的通用对象声明部分 用Dim语句或Private语句声明的变量模块级量的作用域仅限于它们所在的模块 即不能被其他窗体的过程引用DimiAsIntegerSubCommand1 Click i 7PrintiEndSub SubCommand2 Click PrintiEndSub 全局变量在模块的通用对象声明部分或标准模块中 用Public语句声明的变量语法 Public变量名As数据类型全局量可以在整个工程中被引用 在标准模块中声明的全局变量 在应用程序的任何地方都可直接调用 在模块的通用对象中声明的全局变量 当其他窗体引用时 在变量名前 必须写出定义该全局变量的窗体名称 PubliciAsInteger 全局量 在Form1中定义变量i PrivateSubform1 Click i 7PrintiEndSubPrivateSubform2 Click Printform1 iEndSub 5 变量的生存期变量的作用域是根据变量作用的空间范围来划分 变量的生存期是从变量的作用时间来划分 变量生存期分为 静态变量 static 和动态变量 Dynamic 动态变量 Dynamic 程序进入变量所在的过程时 才分配给该变量内存空间 退出该过程时 该变量所占用的内存空间自动释放 其值消失 静态变量 Static 静态变量在退出变量所在的过程后 其值仍被保留的变量 以后再进入该过程时 保留的值可以继续使用 使用Static语句在过程中声明静态变量只能在过程中声明 不能在过程外声明若使函数 过程中所有的变量都为静态变量 可在过程头部加上关键字Static 例 单击按钮三次 分析下列程序的运行结果Dimaasinteger a为模块级量PrivateSubCommand1 Click Staticbasinteger b为静态局部变量Dimcasinteger c为动态局部变量a a 1b b 1c c 1Printa b cEndsub 6 变量常用输入输出方法输入 通过TextBox控件a Text1 text通过InputBox函数a InputBox 输出 在窗体上打印输出form1 printa在文本框控件中输出Text1 text a在标签框控件中输出label1 caption a由Msgbox函数输出msgboxstr a 7 选择结构在VB中实现选择结构的语句主要是If和Select行IF语句格式 IFTHEN Else 说明 由于行If语句在同一行内写完 没有EndIf语句行If语句如果分行写 则在行结束处插入 空格 下划线 后 再按回车键 不提倡 块If语句格式 IfThen Else EndIf注意 在块If语句中 If与EndIf必须配对使用 多重选择结构 当条件不止两项时 此时if语句的结构可写成IfThenelseIfthenelseIfthenelseEndifEndifEndIf每个Endif语句与离它最近的If语句对应 输入一组学生成绩 评定其等级 方法 90 100分为 优秀 80 89分为 良好 70 79分为 中等 60 69分为 及格 60分以下为 不合格 x InputBox 输入成绩x Ifx 90ThenPrint 优秀 ElseIfx 80ThenPrint 良好 ElseIfx 70ThenPrint 中等 Else Ifx 60ThenPrint 及格 ElsePrint 不及格 EndIfEndIfEndIfEndIf IfThenelseIfthenelseIfthenelseEndifEndifEndIf IfThenelseIfthenelseIfthenelseEndIf SelectCase语句SelectCaseCase值1语句1Case值2语句2 CaseElse语句n 1 EndSelect 说明 测试表达式 数值或字符串表达式Case值的形式 Case单值Case1 Case a Case表达式To表达式 多值 Case1To3CaseIs关系运算符 表达式CaseIs 3 CaseIs 0Case枚举类型Case2 4 6 8 Case1 3 5 7 例1 输入一组学生成绩 评定其等级 方法是 90 100分为 优秀 80 89分为 良好 70 79分为 中等 60 69分为 及格 60分以下为 不合格 Case60to69Print 及格 CaseElsePrint 不及格 Endselect x InputBox 输入成绩x selectcasexcase90to100Print 优秀 Case80to89Print 良好 Case70to79Print 中等 例2 输入年月输出该月天数分析 月份分大小月2月份润年为29天 否则为28天如何判断润年 年份能被4整除并且不能被100整除或能被400整除为闰年判断年份y为润年的表达式yMod4 0AndyMod1000OryMod400 0 y InputBox 输入年份 输入数据 m InputBox 输入月份 输入数据 SelectCasemCase1 3 5 7 8 10 12d 31Case4 6 9 11d 30Case2IfyMod4 0AndyMod1000OryMod400 0Thend 29Elsed 28EndIfEndSelectPrinty 年 m 月有 d 天 X inputbox 请输入X SelectCaseXCaseIs 3Y x 3Case1to3Y X 2Case0to1Y x 0 5CaseIs 0Y 0Endselect 8 循环结构For循环FOR TO STEP 循环体NEXT说明 步长缺省值为1 初值终值 步长为负循环次数N 终值 初值 步长 1在循环体中可以加入ExitFor语句 强制退出循语句循环正常结束 控制变量最后的值 终值 例 求1 2 3 n 求n 例 求1 2 3 n 例 求1 1 2 1 3 1 4 1 n 1 1 n 的值dimaasinteger iasinteger nasinteger yasdoublen inputbox 输入n 输入数据 y 0 a 1fori 1tony y a ia anextiprinty While Wend语句格式 While循环体Wend功能 当条件表达式的值为真时 执行循环体 这种循环结构可用于循环次数未知的情况 先判断条件 后执行循环体 当型循环 条件为True时执行 格式1 先判断 后执行DoWhile循环体Loop 格式2 先执行 后判断Do循环体LoopWhile 直到型循环 当条件为False时执行 格式1 先判断 后执行DoUntil循环体Loop 格式2 先执行 后判断Do循环体LoopUntil 1 a 5 s 0Dowhilea5Prints a 3 s 0 i 11DoUntili 10s s ii i 1LoopPrints I4 s 0 i 11Dos s ii i 1Loopuntili 10Prints i 输入m和n 要求m nDoM inputbox 输入m N inputbox 输入n Loopuntil 输入X 求下列级数的和直至末项小于10 5为止 1 X X2 2 X3 3 X4 4 Xn n 分析 a0 1a1 x a0 1a2 x a1 2 an x an 1 n dimyassingle xassingledimaassingle iasintegerx val inputbox 输入X a 1 y a i 0DoWhilea 1e 5i i 1 a a x i y y aLoopprint y y0 判断输入的任意正整数是否为素数 分析 1 什么是素数 2 如何判断 3 改进算法 只能被1和自身整除的数 2为最小素数 用n整除2 n 1 若没有一次为0 n为素数 用n整除2 Sqr n 若没有一次为0 n为素数 Ifn 2orn 3thenPrintn 是素数 ElseFori 2tosqr n Ifnmodi 0thenexitforNextiIfi sqr n thenPrintn 是素数 ElsePrintn 不是素数 EndifEndif 循环的嵌套 循环里面还有循环循环嵌套的执行过程 外循环执行一次 内循环执行一遍 内循环执行结束后 再进行下一次外循环 直到外循环结束外循环包含内循环 不能交叉在多重循环中 各层循环的控制变量不能同名 并列的两个循环 控制变量可以同名双重循环在求解矩阵时的特殊含义 外层循环表示行数 内存循环表示列数双重循环输出矩阵时内层循环结束后必须有换行 Print 语句 例 编程 运行时单击命令按钮 输入n n9Fori 1Ton 根据n来确定几行Picture1 PrintTab n i 1 设置该行输出的起始位置Forj 1To2 i 1 设置每行输出字符的个数Picture1 PrintTrim Str i 两端的空格NextjNexti 思考 如何输出右图所示的图形 算法介绍穷举 程序中要实现判断所有情况的方法叫作穷举 例 公鸡每只5元 母鸡每只3元 小鸡3只1元 用100元买100只鸡 问公鸡 母鸡 小鸡各多少只 DimxAsInteger yAsInteger zAsIntegerForx 0To20Fory 0To34z 100 x yIf5 x 3 y z 3 100ThenPrintx y zNextyNextx 迭代法 Fibonacci数列 把一个复杂的计算过程转化为简单过程的多次重复 每次重复都从旧值的基础上递推出新值 并由新值代替旧值 例 小猴在一天摘了若干桃子 当天吃掉一半多一个 第二天接着吃了剩下的桃子的一半多一个 以后每天吃剩下的桃子的一半多一个 到第七天时只剩一个 问小侯第一天摘了多少桃 分析 先从最后一天推倒数第二天 再从倒数第二天推倒数第三天 设第n天的桃子为Xn 那么它是前一天桃子Xn 1的二分之一减一 即 Xn 1 2 Xn 1 1即 Xn 1 Xn 1 2 9 数组数组 一组类型相同的数据的有序集合在VB中将数组分为两种类型 定长数组 静态数组 数组的大小在程序运行时固定不变可变长 动态 数组 数组在程序运行时长度可变的数组 数组声明静态数组的声明 声明时必须明确数组的大小声明格式 Dim数组名 下界to 上界 As数据类型例 Dimx 1to10 asinteger 数组中有10个元素Dimx 10 asinteger 数组中有11个元素说明 在默认情况下数组的下标是从0开始的 若使用OptionBase1则强制声明数组的下标是从1开始例 数组a定义如下 OptionBase1Dima 0to10 则数组a的下标是几 两个函数 Lbound 和Ubound Lbound 和Ubound 函数返回数组的上下界例 dimx asintegerReDimx 10 Lbound x 0Ubound x 10 二维数组 具有两个下标的数组定长二维数组的声明 dim数组名 下标 to上标 下标 to上标 as数据类型dims 1to3 1to4 asinteger 定义3行4列有12个元素dims 3 4 asinteger 定义4行5列二维数组s数组元素一共有20个元素 分析下列程序运行的结果 Dima 100 AsSinglePrivateSubCommand1 Click Timer1 Enabled TrueTimer1 Interval 100EndSubPrivateSubTimer1 Timer a i Timer1 IntervalTimer1 Interval Timer1 Interval 4Printa i i i 1EndSub 数组的应用求数组中最小元素及其下标随机产生10个两位整数 找出最小的数以及此数在这批数中的位置Min a 1 P 1Fori 2to10Ifa i MinthenMin a i P iEndifNexti 交换数组中各元素的值随机产生10个两位整数 将第一个数与最后一个数交换 第二个数与第9个数交换 即第i个数与第10 i 1个数交换Fori 1To5t a i a i a 10 i 1 a 10 i 1 tNextiFori 1To10Printa i Nexti 在数组中查找某数x 顺序查找 把x与a数组中的元素一一进行比较进行查找 DimiasintegerFori 1tonIfx a i thenexitforNexti在n个数中删除指定数 n个数放在数组b中 设p为待删除字符元素的下标 思考插入如何操作 Fori pton 1b i b i 1 Nexti 选择排序用随机函数产生N个两位整数 用选择排序后将它们按值从小到大顺序输出选择法排序思想 1 从n个数中选出最小数的下标 然后将最小数与第1个数交换位置 2 除第1个数外 其余n 1个数再按步骤 1 的方法选出次小的数 与第二个数交换位置 3 重复步骤 1 n 1遍 最后构成递增序列一般 n个数要经过n 1次排序 选择排序的算法如下 Fori 1ton 1找出a i a n 间最小的数组元素下标k 交换a i 与a k Nexti找出a i a n 间最小的数组元素下标k的算法 K iForj i 1toNIfa j a k thenk jNextj Fori 1ton 1K iForj i 1tonIfa j a k thenk jNextjTemp a i a i a k a k tempNextiFori 1tonPrinta i Nexti 二维数组建立一个5行5列的二维数组 两条对角线上的元素为1 其余元素为0Fori 1to5Forj 1to5Ifi jori j 6thenS i j 1ElseS i j 0EndifNextjPrintNexti 转置矩阵 将二维数组中所有行和对应列的元素进行交换 Fori 2To6Forj 1Toic a i j a i j a j i a j i cNextjNexti 10 过程与函数过程的语法格式 Public Private static Sub 形参列表 过程体EndSub说明 修饰过程的关键字 Public Private Static形参 定义过程或函数时 使用的变量称为形参 定义时没有值 其值通过调用 由实参传递过来 过程可以无参数 但括号不能省 例如 Privatesubsort a asinteger nasinteger Sub过程的调用 过程名实参列表Call过程名 实参列表 注意 使用Call语句调用时 参数必须在括号内 若省略Call 则括号也必须省略 实参之间用逗号隔开实参 调用过程或函数时 使用的参数称为实参 在调用时实参和形参的数据类型 顺序 个数必须匹配 函数 函数过程和过程很相似 差别在于函数有返回值 而过程没有返回值函数的定义 Public Private static Function函数名 形参列表 As类型声明函数体EndFunction说明 函数有返回值 在函数体内至少有对函数名赋值的语句 函数值通过函数名返回类型声明 由于函数有返回值 因而类型声明用来确定函数返回值的类型 函数的调用由于函数有返回值 因而函数调用只能出现在表达式中 其功能是求函数的返回值 变量名 函数名 实参列表 也可以用call来调用 call函数名 实参列表 注 这种方式调用函数时 VB系统将放弃返回值 也就是call调用得不到想要的函数值 建议不使用 11 参数传递规则当调用函数和过程时 实参向形参传递的规则如下 按值传递 形参声明处的修饰符是 Byval 为按值传递它是一种单向传递 只能由实参传给形参 交换两个变量的值Subswap ByValaAsInteger ByValbAsInteger t aa bb tEndSub 调用 x InputBox 输入x的值 y InputBox 输入y的值 Print x y y 按地址传递缺省属性 形参声明处的修饰符是Byref为按地址传递 它是一种双向传递 实参传给形参 形参再回传给实参Subswap ByrefaAsInteger bAsInteger t aa bb tEndSub 调用 Constx 6 y 8Callswap x y Printx y 如果实参是一个常量或表达式 尽管形参声明为按地址传递 实际还是按值传递 2 按地址传递时 形参变量值的改变即是对实参变量值的改变Subswap aAsInteger bAsInteger t aa bb tEndSub 调用 DimxAsInteger yAsIntegerx InputBox y InputBox Print x y yEndSub 数组参数只有按地址传送这一种方式 12 常用考题讲解在一个字符串中寻找 at 统计其出现的次数 Dimstr1AsStringDimlengthAsIntegerDimsumAsInteger iAsIntegerstr1 InputBox 请输入字符串 length i 1 sum 0 DoWhilei len
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教A版高中数学选修2-1:2.4.1 抛物线的标准方程教学设计
- 化肥厂财务设备检查细则
- 房地产代理合同
- 第22课《杞人忧天》说课稿2025-2026学年统编版语文七年级上册
- 新课标人教版高中数学必修一 2.2基本初等函数-对数函数 教学设计
- 2024-2025学年高中物理 第一章 静电场 3 电场 电场强度和电场线说课稿 教科版选修3-1
- 中医期末试卷试题及答案
- 个体经营户与电商平台合作运营合同
- 时尚电子产品代言人合作合同范本及市场开发协议
- 高新科技园区车间租赁及创新成果转化合同
- 华北电力大学授予本科生学士学位名单
- 学生休学证明模板
- 机电安装工程技术标书(模板)
- 部编版小学一年级上册语文带拼音阅读练习题26篇
- 无机及分析化学第2章-化学热力学基础1
- GB/T 2930.1-2017草种子检验规程扦样
- 会计学原理模拟试题一套
- 第一章-宗教社会学的发展和主要理论范式课件
- 国内外新能源现状及发展趋势课件
- 临床常见护理技术操作常见并发症的预防与处理课件
- 高速公路改扩建桥梁拼宽施工技术及质量控制
评论
0/150
提交评论