




已阅读5页,还剩117页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 3 22 第1页 第2章VB可视化程序设计基础 模拟计算器程序设计窗体基本的输入 输出控件命令按钮VisualBasic程序设计语言基础基本语句数组过程知识延伸 焦点 2020 3 22 第2页 知识回顾 通过一个文字移动的例子 讲解VB功能特色集成开发环境可视化编程的基本概念 类和对象 可视化编程的基本步骤工程管理和程序调试 2020 3 22 第3页 本章目标 熟悉窗体 标签 文本框和命令按钮的使用掌握VB的基本语法掌握三种控制语句掌握数组的定义和使用掌握过程的定义和使用能根据所学基础知识开发简单应用程序 2020 3 22 第4页 引例二 要求 1 存在两种运算模式 标准模式和科学模式 2 在标准模式中进行简单的加 减 乘 除操作 3 在科学模式中还能进行sqr exp sin cos操作 4 同时在文本框上面显示当前所处的模式 查看代码 2020 3 22 第5页 2 2窗体 什么是窗体 在程序设计时 窗体是设计的平台在程序运行时 窗体是应用程序与用户交互的平台 窗体由系统菜单 标题栏 最小化和最大化按钮 关闭按钮组成 2020 3 22 第6页 窗体 常用属性 3 1 单击查看代码 刚运行时 单击后 双击后 2020 3 22 第7页 NameBackColor和ForeColorBorderStyleHeight和WidthCaption 用来指定窗体的名称 在代码中用来引用窗体 用来指定窗体的背景颜色和前景颜色 用来指定窗体的边框样式 用来指定窗体的高度和宽度 单位 twip 用来指定窗体的标题信息 单击查看补充材料 2020 3 22 第8页 窗体 常用属性 3 2 Left和TopStartUpPositionFontMaxButton和MinButtonWindowState 指定窗体的左边缘距离容器左边缘的距离以及窗体顶端距离容器定顶端的距离 单位 twip 用来指定窗体首次出现时的位置 用来指定窗体上显示文本的字体 是一个对象 指定窗体标题栏的最大化和最小化按钮是否显示 指定窗体运行时的可见状态 0 手动1 所有者中心2 屏幕中心3 窗口缺省 0 Normal1 Minimized2 Maximized 当MaxButton和MinButton两个属性中的一个设置为False时会怎样 两个都设置为False时又会怎样 方法一Form1 FontSize 20方法二Form1 Font Size 20 2020 3 22 第9页 窗体 常用属性 3 3 VisibleEnabledAutoRedrawPicture 用来指定窗体是否可见 指定窗体运行时是否可响应用户或系统的操作 用来实现窗体上输出内容的持久显示 如 当单击窗体时 窗体是否能否调用窗体单击事件过程 即 当窗体由非激活状态转回到激活状态时 仍然能够显示原来输出的内容 用来设置窗体上显示的图形LoadPicture函数的使用 Form1 Picture LoadPicture 图形文件路径 单击查看补充材料 2020 3 22 第10页 窗体 事件 Load 加载 事件窗体被装入内存工作区时触发该事件通常用来在启动程序时对属性和变量进行初始化Click 单击 事件鼠标单击窗体时触发DblClick 双击 事件鼠标双击窗体时触发Resize事件当窗体第一次显示或改变大小时触发 单击查看代码 2020 3 22 第11页 窗体 常用方法 2 1 Print用于在窗体上输出数据格式 对象 Print tab n spc n 表达式列表 Cls清除运行时在窗体上显示的文本和图形不能清除设计阶段窗体上的文本和图形 2020 3 22 第12页 窗体 常用方法 2 2 Show用于显示一个窗体Hide用于暂时隐藏一个窗体 但窗体仍在内存Move用于移动并改变窗体或控件的位置和大小格式 对象 MoveLeft Top Width Height 2020 3 22 第13页 几个练习例题 单击查看代码 单击查看代码 提示 需用Image控件 2020 3 22 第14页 2 3基本的输入 输出控件 标签用于显示文本信息起提示作用在运行的时候用户不能直接录入信息文本框是一个文本编辑区域用于输入 编辑 修改和显示文本信息在运行的时候用户可以直接录入信息 2020 3 22 第15页 标签 属性 2 1 CaptionBorderStyleBackStyleAlignmentBackColor和ForeColor 单击查看代码 用来设置标签要显示的内容 用来设置标签有无边框 0 None标签无边框 默认 1 FixedSingle标签有立体边框 用来设置标签背景是否透明 0 Transparent透明1 Opaque不透明 默认 用来设置标签内文本的水平对齐方式 2020 3 22 第16页 标签 属性 2 2 AutoSize设置标签是否可以自动调整水平大小以显示所有内容取值 True或FalseWordWrap设置标签是否可以自动调整垂直大小以显示内容在AutoSize属性取值为True时 WordWrap的取值才有效 AutoSizeTrue 标签控件宽度随文本改变而改变 高度上只保存一行字的尺寸 不能换行False 标签保持设计时的大小 如果内容太长 则只能显示一部分 默认值 WordWrapTrue 标签保持水平大小不变 随文本大小其垂直展开或缩短False 标签保持一行文字的垂直大小 水平方向随文本大小展开或缩短 默认值 2020 3 22 第17页 标签 事件 ClickDblClick在实际应用中 标签一般只起到显示文字和提示作用 因此一般不用编写事件过程 2020 3 22 第18页 文本框控件 单击查看代码 2020 3 22 第19页 文本框 属性 4 1 Text文本框没有Caption属性Text属性设置显示的文本信息对文本框中字符格式的设置将会影响文本框全部内容 不能只对部分内容设置格式MaxLength设置文本框允许输入的最大字符数默认为0 表示无限制PassWordChar设置是否在文本框中显示用户键入的字符 如PassWordChar不为空 文本框中显示指定字符 但此时Text属性值仍然为实际文本内容 否则 文本框显示实际输入文本内容 2020 3 22 第20页 文本框 属性 4 2 SelStart SelLength和SelText只能在运行时 即在代码中 设置SelStart 选定文本的开始位置 第一个字符的位置是0SelLength 选定文本的长度SelText 选定文本的内容当同时设置了SelStart和SelLength属性后 被选中的内容自动存入SelText属性 2020 3 22 第21页 文本框 属性 4 3 创建多行文本框 默认情况下 文本框只显示单行文本 无滚动条 不支持回车换行 MultiLine只能在设计时 即属性窗口中 设置只有在ScrollBars为非零值时有效取值为True或FalseScrollBars只能在设计时 即属性窗口中 设置设置文本框是否具有水平或垂直滚动条 ScrollBars0 None无滚动条1 Horizontal只有水平滚动条2 Vertical只有垂直滚动条3 Both具有水平和垂直两种滚动条 2020 3 22 第22页 文本框 属性 4 4 Enabled设置是否相应用户或系统的操作取值为True或FalseLocked设置文本框是否可以编辑取值为True或False两者的区别 相同点 两者都不允许用户直接录入内容不同点 Locked为True时 可以接受焦点 Enabled为False时 不能接受焦点 2020 3 22 第23页 属性类型总结 只能在设计阶段设置的属性MultiLine ScrollBars只能在运行阶段设置的属性SelStart SelLength SelText可同时在运行和设计阶段设置的属性 2020 3 22 第24页 练习例题 单击查看代码 2020 3 22 第25页 文本框 事件 Click和DblClickChange在改变文本框的Text属性时触发该事件问题 如果有Text1 Change事件过程 运行时用户在文本框中输入 Change 会触发几次Text1 Change事件过程 LostFocus当文本框失去焦点时触发GotFocus当文本框获得焦点时触发 6次 2020 3 22 第26页 练习例题 单击查看代码 2020 3 22 第27页 2 4命令按钮 Caption设置命令按钮上显示的文本信息可以设置对应按钮的热键 输入Caption属性时 在要设置为热键的字母前加 则该字母显示时有下划线 单击查看代码 2020 3 22 第28页 命令按钮 属性 2 1 Picture设置命令按钮中要显示的图形必须在Style属性设置为1 Graphical时有效Style设置命令按钮的显示类型0 Standard 标准类型 只能显示文本信息 不能显示图形和背景颜色1 Graphical 图形类型 不仅可以显示文本信息 还可以显示图形和背景颜色ToolTipText在运行时 在鼠标停留时显示的提示文本信息 2020 3 22 第29页 命令按钮 属性 2 2 Value设计阶段无效 只能在运行时获取或设置用于检查或设置按钮当前是否被按下True 按下False 未按下Default设置窗体中的某个命令按钮为缺省按钮当按Enter键时 相当于单击该按钮Cancel设置窗体中的某个命令按钮为取消按钮当按Esc键时 相当于单击该按钮 在同一窗体中 只能有一个命令按钮的Default属性为True 也只能有一个按钮的Cancel属性为True 2020 3 22 第30页 命令按钮 事件 Click按钮没有DblClick事件 2020 3 22 第31页 2 5VB程序设计语言基础 编码规则数据类型变量和常量运算符和表达式常用函数 2020 3 22 第32页 编码规则 VB代码不区分字母的大小写语句书写自由在同一行可以书写多条语句 语句间用冒号 分隔一条语句可以分若干行书写 此时在后面添加续行符 一个空格后面跟一个下划线 一行允许多达255个字符注释有利于程序的维护和调试Rem 作为一个单独的语句出现撇号 可以直接出现在语句的后面 2020 3 22 第33页 数据类型 标准数据类型数值型 Numeric 逻辑型 Boolean 日期型 Date 字符型 String 可变型 Variant 对象型 Object 用户自定义类型 2020 3 22 第34页 标准数据类型 4 1 数值类型字节型 Byte 整型 Integer 类型符为 长整型 Long 类型符为 单精度型 Single 类型符为 双精度型 Double 类型符为 货币型 Currency 类型符为 定点实数 最多保留小数点右边4位和小数点左边15位 2020 3 22 第35页 标准数据类型 4 2 逻辑型 Boolean 只有两个值 True False可以和数值互换True 1 非零值 False 0例如 1 2 AndTrue TrueXorNot10 字符型 String 双引号是字符串的界定符VB用两个字节表示一个字符 包括西文字符和中文字符 采用的是Unicode字符集分为定长字符串和不定长字符串如 可视化程序设计VisualBasic 3或True 10或True 长度 19 2020 3 22 第36页 标准数据类型 4 3 日期型 Date 日期范围 从公元100年1月1日到9999年12月31日时间范围 从0 00 00到23 59 59用 把日期括起来如 September26 2004 9 26 2004 2004 9 2610 20 30am 用数字序列表示小数点左边 日期 小数点右边 时间参照时间 1899年12月31日0 00 00如 DimTAsDate T 2 5 PrintT 1899年12月28日12 00 00 2020 3 22 第37页 标准数据类型 4 4 变体类型 Variant 一种特殊的数据类型是所有未定义变量的数据类型对数据的处理取决于上下文的需要例如 DimaAsVarianta 10 a此时是整型a VB a此时是字符型a True a此时是布尔类型 2020 3 22 第38页 自定义类型 是由用户自己定义的数据类型 它由若干个标准数据类型组成 定义语句格式 Private Public Type类型名元素名As数据类型元素名As数据类型 EndType例如 TypeStudentNumberAsIntegerNameAsString 6AgeAsIntegerBirthdayAsDateSexAsBooleanEndType 2020 3 22 第39页 变量与常量 常量在程序执行过程中保持不变的数据文字常量如 3 1420 True VB 符号常量 用标示符表示一个固定Const常量名 As数据类型 表达式通常常量名的所有字母都大写如 ConstPIAsDouble 3 1415926系统常量 VB系统提供的符号常量如 vbMinimized 最小化 2020 3 22 第40页 变量与常量 变量在程序运行过程中其值可以发生改变的量每一个变量都有名字和数据类型变量名用来唯一地标志每一个变量数据类型表明了该变量的类型变量的声明显示声明隐式声明 初学者最好不要使用隐式声明 Public Dim Static Private变量名As数据类型 变量名As数据类型 Public Dim Static Private变量名 变量名 例如 DimintAAsInteger intB 隐式声明 不显式声明变量而直接使用此时变量被默认为Variant数据类型 2020 3 22 第41页 变量 变量的命名规则必须以字母或汉字开头由字母 汉字 数字和下划线组成长度小于或等于255个字符不能使用VB中的关键字VB中不区分变量名的大小写如 MyName myname myName是同一个变量变量名由多个单词组成时 建议每个单词的第一个字母大写 其余字母小写 查看代码 2020 3 22 第42页 运算符 算术运算符 浮点除 整除 取余 关系运算符两个汉字用拼音进行比较汉字字符大于西文字符逻辑运算符NotAndOr或XorEqvImp字符运算符 优先级 重点 算术运算符 字符运算符 关系运算符 逻辑运算符 浮点除 同数学的除法 结果可以是小数 整除 对两数进行除法运算后取商的整数部分 若参与运算的两个数都是整数 则可直接进行运算 若参与运算的两个数中有实数 则先将实数的小数部分进行四舍五入 再进行运算 取余 对两数进行除法运算后取商的余数部分 参与运算的两个数的处理同整除运算 例如 16 5 3 5 字符串只有连接运算区别 两边必须是字符串 两边不一定是字符串 但必须有空格例如 abcdef 12345 结果为 abcdef12345 abcdef 12345 出错 123 456 结果为 123456 123 456 结果为579 123 456 结果为123456注意 123 True 122 2020 3 22 第43页 表达式 什么是表达式 由常量 变量 函数 运算符以及括号连接起来的有意义的式子称为表达式 书写规则运算符不能相邻 例a b是错误的 乘号不能省略 例x乘以y应写成 x y 括号必须成对出现 均使用圆括号 从左到右在同一基准上书写 无高低 大小 能用系统函数的地方尽量使用系统函数 2020 3 22 第44页 几个练习例题 年龄 学历 And 本科 专科 Or 招聘条件 学历 专科 Or学历 本科 And年龄 40And性别 女 3 xAndx 7 性别 2020 3 22 第45页 常用函数 函数类型内部函数用户自定义函数内部函数 标准函数 数学函数字符串函数转换函数时间 日期函数随机函数格式输出函数函数调用方法函数名 参数表 2020 3 22 第46页 数学函数 Abs x 函数 求x的绝对值 x为数值型参数Exp x 函数 求ex的值Log x 函数 求x的自然对数 返回lnx的值 且x 0Sgn x 函数 求x的符号值 符号函数 Sqr x 函数 求x的算术平方根 x 0Int x 和Fix x 函数 均为取整运算 但有区别 随机函数Rnd 三角函数 2020 3 22 第47页 Int和Fix函数的区别 共同点均删除参数的小数部分 返回整数部分取整时均不进行四舍五入当参数为正数时 两者功能相同区别当参数为负数时Int返回小于或等于参数的第一个负整数Fix返回大于或等于参数的第一个负整数 单击查看代码 单击查看补充资料 2020 3 22 第48页 随机函数 用来产生随机数 形式Rnd x 返回一个单精度的随机数取值范围 0 Rnd 1 0 1 RandomizeRandomize x 产生随机数的种子 保证每次运行产生不同的随机数求某个必区间 下界 上界 的随机整数公式 Int 上界 下界 1 Rnd 下界 查看代码 2020 3 22 第49页 转换函数 Asc c 函数 将字符c转换成ASCII码值Chr n 函数 将ASCII码值转换成字符LCase c 函数 将字符串c中的大写字母转换为小写字母UCase c 函数 将字符串c中的小写字母转换为大写字母Str n 函数 将数值n转换成字符串Val c 函数 将数字字符转换成数值 Str 函数将非负数值转化成字符类型后 会在转换后的字符串左边增加空格 即数值的符号位 CStr 不加符号位 Val 将数字字符串转化为数值类型 当字符串中出现数值类型规定的字符外的字符时 则停止转换 2020 3 22 第50页 字符串函数 Len c 函数 求字符串c的长度Left c n 和Right c n 返回字符串c左 右 边的n个字符Mid c n1 n2 函数 自字符串c的第n1个字符开始向右取n2个连续的字符 LTrim c RTrim c 和Trim c 函数 去掉字符串c左边 右边 左右两边的空格String n c 函数 返回字符串c的首字符组成的n个字符的字符串 InStr n1 c1 c2 函数 在字符串c1中从第n1个字符开始查找字符串c2 若找到返回位置值 若找不到 则返回0Space n 函数 产生由n个空格组成的字符串 2020 3 22 第51页 时间 日期函数 Time 或者Time函数 返回系统时间Date 或者Date函数 返回系统日期Year d 函数 返回参数d的年号d为日期类型参数Month d 函数 返回参数d的月份号Day d 函数 返回参数d的日期号WeekDay d 返回参数d的星期号Now函数 返回系统的日期和时间 2020 3 22 第52页 格式输出函数 格式 Format 功能 按格式字符串指定的格式输出表达式的值 说明 表达式可以是数值型 字符型 日期型数据 单击查看代码 PrivateSubForm Click PrintFormat 2 71828 PrintFormat 2 71828 00000 00 PrintFormat Date dddddd PrintFormat time ttttt EndSub 单击查看代补充资料 2020 3 22 第53页 Shell函数 负责执行一个可执行文件 形式 Shell 命令字符串 窗口类型 命令字符串 要执行的应用程序名 包括路径 且必须是可执行文件 扩展名为exe com bat 窗口类型 执行应用程序的窗口大小 返回一个Variant 如果成功 代表这个程序的进程ID 若不成功 则会返回0 2020 3 22 第54页 Shell函数示例 i Shell c windows calc exe j Shell c 1 提示 如果不知道应用程序的路径名 可用Start命令启动程序 i Shell start calc exe i Shell start vb6 exe 2020 3 22 第55页 常见错误 逻辑表达式书写错 在VB没有造成语法错而形成逻辑错例如 数学表达式3 x 10VB表达式写为3 x 10 问题在于VB中的逻辑量与数值量可相互转换 同时给多个变量赋值 在VB没有造成语法错而形成逻辑错例如 Dimx y z x y z 1标准函数名写错变量名写错检查方法 在通用声明段加OptionExplicit语句书写位置错在通用声明段只能有Dim语句 不能有赋值等其他语句 2020 3 22 第56页 2 6基本语句 顺序结构选择结构循环结构其他辅助控制语句Exit语句Goto语句 2020 3 22 第57页 顺序结构 赋值语句 格式 Let 变量名 表达式将表达式的值赋值给变量名 Let 对象名 属性名 表达式将表达式的值赋值给对象的属性说明表达式可以是任何类型 一般应与变量名的类型一致赋值号左边只能是变量或对象属性 不能是常量常数符号或表达式不能在同一个赋值语句中 同时给多个变量赋值例如 x y z 1 单击查看代码 2020 3 22 第58页 顺序结构 InputBox函数 2 1 功能只需一行即可实现输入窗体的功能产生一个对话框 作为输入数据的界面 等待用户输入并返回所输入的内容 格式InputBox prompt title default xpos ypos 说明prompt 提示信息 最大长度为1024个字符title 对话框标题 默认为当前工程的名称default 输入区中缺省显示信息 默认为空串函数返回值是字符串类型 2020 3 22 第59页 顺序结构 InputBox函数 2 2 语句表示为 DimstrNameAsStringstrName InputBox 请输入你的姓名 vbCrLf 然后单击确定 输入框 2020 3 22 第60页 顺序结构 MsgBox函数 2 1 格式函数形式 MsgBox prompt buttons title 过程形式 MsgBoxprompt buttons title 功能在屏幕上显示诸如提示 询问 警告或错误等消息 对用户的操作作出提醒或反馈 通过用户在对话框中选择的按钮识别用户所做的响应 作为程序继续执行的依据 说明Prompt和title同InputBox函数buttons 数值表达式 用来控制在对话框内显示的按钮种类和数量以及图标类型 由四类数值相加产生 函数返回值是整数类型 2020 3 22 第61页 顺序结构 MsgBox函数 2 2 Button参数 查看代码 2020 3 22 第62页 练习例题 单击查看代码 2020 3 22 第63页 命名参数的使用 注意InputBox MsgBox 中的参数必须按语法要求规定的顺序提供数值 默认部分也要用逗号占位符跳过 引入 命名参数 命名参数可用 以任意顺序赋值prompt 提示buttons 按钮title 标题default 默认xPos x坐标yPos y坐标例如 InputBox 请输入您的学号 学生成绩查询系统 InputBox Title 学生成绩查询系统 prompt 请输入您的学号 MsgBox 登录成功 vbOKOnly vbInformation 成功登录页面 MsgBox Title 成功登录页面 buttons vbOKOnly vbInformation prompt 登录成功 2020 3 22 第64页 顺序结构 Print方法 语法 对象名称 Print tab n spc n 表达式列表 功能在指定对象上输出表达式的值说明对象可以是窗体 图形框和打印机Tab n 表示在参数n指定的位置输出表达式的值Spc n 表示跳过n个空格 2020 3 22 第65页 几个练习例题 改变 单击查看代码 单击查看代码 Fori 1To5PrintTab i String 6 i Spc 6 String i Nexti若把程序中的Spc 6 换成Tab 6 会怎样 Tab 6 2020 3 22 第66页 选择结构 特点 根据所给定条件的真假 选择不同的语句 两种类型If语句SelectCase语句 2020 3 22 第67页 If语句 4 1 单分支结构IfThen语句块EndIf或IfThen 语句 表达式 语句块 T F 例如 已知两个数x和y 比较两个数的大小 使x大于yIfx yThent x x y y tEndIf或Ifx yThent x x y y t 2020 3 22 第68页 If语句 4 2 双分支结构IfThen语句块1Else语句块2EndIf或IfThenElse 表达式 语句块1 T F 语句块2 单分支结构实现 y cos x x 3 3 xIfx0Theny sin x sqr x x 1 双分支结构实现 Ifx0Theny sin x sqr x x 1 Elsey cos x x 3 3 xEndIf 2020 3 22 第69页 If语句 4 3 多分支语句IfThenElseIfThen Else语句块n 1 EndIf 查看代码 2020 3 22 第70页 If语句的嵌套If语句的嵌套是指If或Else后面的语句块中又包含If语句 形如 IfThenIfThen EndIf EndIf Ifx yThent x x y y tIfy zThent y y z z tIfx yThent x x y y tEndIfEndIf If语句 4 4 2020 3 22 第71页 几个练习例题 IfUcase strC A AndUcase strC 0 AndstrC 9 ThenPrintstrC 是数字字符 ElsePrintstrC 其他字符 EndIf 2020 3 22 第72页 返回常见错误 2020 3 22 第73页 SelectCase语句 格式SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2 CaseElse语句块n 1 EndSelect 数值型或字符串表达式 与同类型的下面四种形式之一 表达式例 A 一组枚举表达式 用逗号分隔 例 2 4 6 8表达式1To表达式2例 60To100Is关系运算符表达式例 Is 60 2020 3 22 第74页 几个练习例题 SelectCasestrCCase a To z A To Z PrintstrC 是字母字符 Case 0 To 9 PrintstrC 是数字字符 CaseElsePrintstrC 其他字符 EndSelect SelectCasescoreCase90To100Print 优 Case80To89Print 良 Case70To79Print 中 Case60To69Print 及格 CaseElsePrint 不及格 EndSelect 单击查看代码 2020 3 22 第75页 方法一Ifx 0Andy 0ThenPrint 在第一象限 ElseIfx0ThenPrint 在第二象限 ElseIfx0Andy 0ThenPrint 在第四象限 EndIf 方法二SelectCasex yCasex 0Andy 0Print 在第一象限 Casex0Print 在第二象限 Casex0Andy 0Print 在第四象限 EndSelect SelectCase后不能出现多个变量 Case后不能出现变量及有关运算符 返回常见错误 2020 3 22 第76页 条件函数 IIf函数格式 Iif 例如 求x y的最大值max IIf x y x y Switch函数格式 Switch 条件表达式1 条件表达式1为True时的值 条件表达式2 条件表达式2为True时的值 例如 学生成绩等级Switch grade 90 优秀 grade 80 良好 grade 70 中等 grade 60 及格 grade 60 不及格 Choose函数格式 Choose 数字类型变量 值为1的返回值 值为2的返回值 例如 Op Choose Nop 2020 3 22 第77页 常见错误 在选择结构中缺少配对的结束语句对多行式的If块语句中 应有配对的EndIf语句结束 多分支选择ElseIf关键字的书写和条件表达式的表示ElseIf不要写成ElseIf 多个条件表达式次序问题 见示例 SelectCase语句的使用SelectCase后不能出现多个变量 Case子句后不能出现变量 见示例 2020 3 22 第78页 循环结构 指对同一程序段执行若干次 被重复执行的语句块成为循环体 For Next循环Do Loop循环While Wend循环 2020 3 22 第79页 For Next循环 计数循环语句 用于控制循环次数预知的循环格式 For to Step ExitFor Next 循环变量赋初值 循环变量 终值 语句块 语句块 循环变量加步长 T ExitFor F 有 无 Dimi ss 0Fori 1To100step2s s iNexti 2020 3 22 第80页 步长循环次数 注意出了循环 循环控制变量值的问题 允许循环变量在循环体内被赋值 但这样会影响原来的循环控制规律 ExitFor 强制退出循环 步长 1可省略 Fori 2To13Step3循环执行次数Printi 输出i的值分别为 Nexti25811Print I i出了循环输出为 I 14 2020 3 22 第81页 练习例题 Max 100Fori 1To10 x Int Rnd 101 100 Printx Ifx MaxThenMax xNextiPrint 最大值 Max 2020 3 22 第82页 Do Loop循环 形式1 前测试循环Do While Until 语句块 ExitDo语句块 Loop 形式2 后测试循环Do语句块 ExitDo语句块 Loop While Until 2020 3 22 第83页 练习例题 x 13 n 0 x表示当前人口数 n表示年数DoWhilex 26x x 1 008 每年增加后的人口数n n 1 年数加1LoopPrintn 年后我国人口达到 x 超过26亿 2020 3 22 第84页 循环的嵌套 一个循环体内又包含了一个完整的循环结构称为循环的嵌套 单击查看代码 单击查看代码 2020 3 22 第85页 注意事项 外循环必须完全包含内循环 不能交叉内循环变量与外循环变量不能同名在使用Goto语句时 不能从循环体外转入循环体内多重循环最好按照缩进格式书写 Forii 1To10Forjj 1To20 NextiiNextjj Forii 1To10Forii 1To20 NextiiNextii Forii 1To10Forjj 1To20 NextjjNextii Forii 1To10 NextiiForii 1To10 Nextii 2020 3 22 第86页 While Wend循环 格式WhileWend说明每次执行完循环体后都将执行Wend语句 它将转回到While语句 在判断语句条件是否成立如果条件为Null 则将默认条件值为FalseWend语句不能省略 2020 3 22 第87页 常见错误 不循环或死循环的问题主要是循环条件 循环初值 循环终值 循环步长的设置有问题 循环结构中缺少配对的结束语句For缺少配对的Next循环嵌套时 内外循环交叉累加 连乘时 存放累加 连乘结果的变量赋初值问题在一重循环中 存放累加 连乘结果的变量初值设置应在循环语句前 2020 3 22 第88页 2 7数组 静态数组动态数组控件数组 单击查看代码 2020 3 22 第89页 数组具有相同名字不同下标的变量来表示一组具有相同性质的数据注意数组不是一种数据类型数组是一组相同类型的变量集合数组必须先声明后使用声明数组名 类型 维数和数组大小按声明时数组的大小确定与否静态数组 定长 声明时确定了大小动态数组 变长 声明时未给出大小 2020 3 22 第90页 静态数组 声明Dim数组名 下标1 下标2 As类型 说明几个下标就表示是几维数组 最多为60维 下界To 上界省略下界为0静态数组的下标必须为常数每一维大小 上界 下界 1数组大小 每一维大小相乘例如 Dimmark 1 105 AsInteger 一维数组 2020 3 22 第91页 例如 DimlArray 0to3 0to4 AsLong等价于DimlArray 3 4 AsLong注意下界缺省为0 但是可以重新定义数组的下界OptionBase1错误的声明 下标是变量n InputBox 请输入n Dimmark n AsSingle分清楚数组的声明和引用 2020 3 22 第92页 几个练习例题 单击查看代码 单击查看代码 查看代码 2020 3 22 第93页 动态数组 声明时没有给出数组的大小 即省略了括号中的下标 当要使用它时 随时用ReDim语句重新指出数组的大小格式 ReDim数组名 下标1 下标2 As类型 例如 SubForm Click Dimx AsSinglen Inputbox 输入n ReDimx n EndSub 单击查看代码 2020 3 22 第94页 说明Dim Private Public变量声明语句是说明性语句 可出现在过程内或通用声明段 ReDim语句是执行语句 只能出现在过程内 在过程中可多次使用ReDim来改变数组的大小和维数 使用ReDim语句会使原来数组中的值丢失 可以在ReDim语句后加Preserve参数来保留数组中的数据 使用Preserve只能改变最后一维的大小 前面几维大小不能改变 ReDim中的下标可以是常量 也可以是有了确定值的变量 静态数组在程序编译时分配存储单元 动态数组在运行时分配存储单元 2020 3 22 第95页 数组的操作 数组元素赋值用循环Fori 1to105mark i Int Rnd 101 Nexti用Array函数DimibAsVariantib Array abc def 67 Fori 0ToUBound ib Picture1 Printib i Nexti数组直接对数组赋值Dima AsVariant b AsVarianta Array 1 2 3 4 5 ReDimb UBound a b a Fori LBound ib ToUBound ib 利用Array对数组各元素赋值 声明的数组是可调数组或连圆括号都可省 并且其类型只能是Variant 其下标下界由OptionBase决定 且可由LBound函数获得 上界由UBound函数获得 2020 3 22 第96页 控件数组 定义由一组相同类型的控件组成特点共用一个控件名 即Name属性值一致具有相同的属性建立时系统给每个控件赋值唯一的索引号 Index 控件共享同样的事件过程 通过传递的下标值区分控件数组中的各个控件元素例如 SubCmdOperation Click IndexAsInteger SelectCaseIndexCase0 选择加号 进行两个数的加法运算Case1 选择减号 进行两个数的减法运算EndSelectEndSub 2020 3 22 第97页 控件数组的建立和使用 2 1 在设计时建立在窗体上画出某控件 可进行控件名的属性设置 这是建立的第一个数组元素选中该控件 进行 复制 和 粘贴 操作 系统会提示 已经有一个控件为 控件名 创建一个控件数组吗 单击 是 按钮后 就建立了一个控件数组 进行若干次 粘贴 操作 就建立了相应个数的控件数组元素进行事件过程的编程 第一个元素 修改数组的第一个元素名称 第二个元素 数组的第二个元素名称和Index属性 2020 3 22 第98页 练习例题 单击查看代码 2020 3 22 第99页 控件数组的建立和使用 2 2 运行时添加控件数组在窗体上画出某控件 设置该控件的Index值为0 表示该控件为控件数组 建立第一个元素在编程时通过Load方法添加其余的若干个元素 每个新添加的控件数组元素通过Left和Top属性 确定其在窗体的位置 并将Visible属性设置为True 也可以使用Unload方法删除某个添加的元素 2020 3 22 第100页 几个练习例题 单击查看代码 Fori 1To9Loadnumber i number i Top 100number i Left 100number i Caption inumber i Visible TrueNexti 2020 3 22 第101页 使用范围 分类统计分类统计是将一批数据中按分类的条件统计每一类中包含的个数 例如 将学生成绩按优 良 中 及格 不及格五类 统计各类的人数 这类问题一般要掌握分类条件表达式的书写和各类中计数器变量的使用 排序 冒泡法 选择法 插入法等学生作品 查看代码 演示 2020 3 22 第102页 常见错误 静态数组声明下标出现变量n InputBox 输入数组的上界 Dima 1Ton AsInteger数组下标越界引用的下标比数组声明时的下标范围大或小 数组维数错数组声明时的维数与引用数组元素时的维数不一致 Dima 3 5 AsLonga i 10获得数组的上界 UBound 下界 LBound 2020 3 22 第103页 2 8过程 过程是用来执行一个特定任务的一段程序代码分类一系统定义内部函数过程事件过程用户自定义分类二 由关键字区分 以Sub保留字开始的子过程以Function保留字开始的函数过程以Property保留字开始的属性过程以Event保留字开始的事件过程 2020 3 22 第104页 Function过程 定义函数过程area PublicFunctionarea x y z AsSingleDimc c 1 2 x y z area Sqr c c x c y c z EndFunction 调用函数过程 Subcommand1 click 输入若干个三角形边长S area a b c area c d e S S area e f g PrintSEndSub 2020 3 22 第105页 Function过程的定义 方法一 利用 工具 菜单 添加过程 方法二 利用代码窗口直接定义格式 Public Private Static Function函数过程名 参数列表 As类型 局部变量或常数定义语句块函数名 返回值函数过程体 ExitFunction 语句块函数名 返回值EndFunction参数列表 ByVal 变量名 As类型 ExitFunction 退出函数函数名 返回值 在函数体内至少对函数名赋值一次 2020 3 22 第106页 Function过程的调用 函数过程的调用同标准函数形式函数过程名 参数列表 Call函数过程名 参数列表 函数过程名 参数列表 参数列表 实参或实元 必须与形参个数相同 位置与类型一一对应 2020 3 22 第107页 练习例题 单击查看代码 PrivateSubCommand1 Click s VB程序设计教程5 0版 PrintMyReplace s 5 0 6 0 EndSub FunctionMyReplace s OldS NewS Dimi lenOldS lenOldS Len OldS i InStr s OldS DoWhilei 0s Left s i 1 NewS Mid s i lenOldS i InStr s OldS LoopMyReplace sEndFunction EndSub PrivateSubCommand1 Click s VB程序设计教程5 0版 PrintMyReplace s 5 0 6 0 程序运行流程 2020 3 22 第108页 子过程 函数过程的不足不是为了获得某个函数值 而是为了某种功能的处理 例如文字移动动画要获得多个结果 查看代码 单击查看代码 定义子过程swap PublicSubSwap x y Dimtt x x y y tEndSub 调用子过程 a 10 b 20Print 两个数交换前 a a b bSwapa bPrint 两个数交换后 a a b b 202
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供热热源规划汇报
- 社工末期评估工作汇报
- 生管半年度工作总结
- 果洛市重点中学2026届英语九年级第一学期期末质量检测试题含解析
- 幼儿园轮状病毒培训
- 有效沟通培训心得
- 山东泰安2026届英语九年级第一学期期末复习检测试题含解析
- 2026届河北省承德市丰宁满族自治县九上化学期中质量检测模拟试题含解析
- 品质主管工作总结
- 内蒙古鄂尔多斯附属学校2026届九年级英语第一学期期末检测模拟试题含解析
- 变电站SVG培训课件
- 2025秋教科版(2024)科学三年级上册教学设计(附目录)
- 2025年人教版三年级数学上册全册教案
- 《中国人首次进入自己的空间站》导学案 部编语文八年级上册
- Unit 2 My friends (Period 3) 课件2025-2026学年人教版英语四年级上册
- 烟花爆竹经营安全管理知识培训考核试题及答案
- 西游记第16回课件
- 医院微笑服务培训
- 2025年河南省住院医师规范化培训结业理论考核(外科)历年参考题库含答案详解(5卷)
- 2024年佛山市公务员考试行测试卷历年真题完整答案详解
- 2025年人武专干军事考试题库及答案
评论
0/150
提交评论