




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、体验顺序、分支结构程序设计第八节一、变量基础 VB中一个功能相对独立的程序段一般包括三个部分,第一部分为变量提供数据,第二部分进行运算处理,第三部分结果输出。为使初学者能尽早进入程序设计状态,本章就程序中第一部分和第三部分在VB下常用技术和方法进行讲述。 提供数据输出数据消息框变量:变量本质上是代表的是某内存单元,而存储在内存单元里的值是可以改变的,故变量就是可变的量。为变量提供数据数据运算变量输出一、提供数据的基本方法(一)使用赋值语句 赋值语句是任何程序设计语言中最基本的语句,VB中赋值语句有两种格式: 格式1: Let 变量名=表达式 格式2: Let 对象名.属性名=表达式 第一种格式
2、用于给一个变量赋值,第二种用于修改对象的属性值。先计算右边表达式的值,再赋给左边的变量或属性。 说明: Let 是赋值语句的关键字,是一个可选项,通常省略。 表达式的类型应与变量名的类型一致,即同时为数值型或同时为字符型。当同时为数值型但精度不相同时,强制转换。例如:iA% = 4.7(4舍5入)iA是整型变量,iA中的结果是5,当表达式和变量的类型不同时,将出现编译错误。 可以把字符串或数值表达式的值赋给Variant变量,但反过来不一定正确。 ! 使用赋值语句应注意如下问题1语句格式要正确 (1) 赋值号左边只能是变量名或对象的属性值,不能是函数或表达式。 例如以下形式的赋值语句就是错误的
3、: cos(x)=y 应为 y =os(x) 5=y 应为 y=5 x+3=y 应为 x=x+3 ! 使用赋值语句应注意如下问题(2) “=”为赋值号,而不是数学上的等号。 例如,依次执行x=1和x=3两个语句后,变量x的值为3,这就是变量赋值具有时序性,最后一次赋值的值就是变量的值,将“=”理解为数学上的等号,结果将是不成立的。请大家深入理解三个重要模型:n=n+1 将当前变量n的值加1后再赋给变量n (计数器原理)s=s+x 将当前变量s的值加x后再赋给变量s (累加器原理)f=f*i 将当前变量f的值乘i后再赋给变量f (累乘器原理)这些在数学上都是不成立的,但在程序设计中却是非常重要的
4、。! 使用赋值语句应注意如下问题(3) 不能在同一个赋值语句中给多个变量赋值。 如要对x,y,z三个变量赋初值均为1,则必须分别赋值。如写成x=1: y=1: z=1的形式,也可写成x=1: y=x: z=y的形式。但不能写成x=y=z=1的形式。x=y=z=1表示什么意思?比较如下程序:x=2 t=xy=3 x=yx=y y=tPrint x,y print x,y! 使用赋值语句应注意如下问题2数据类型问题 当赋值号左边变量类型与右边表达式类型不一致时,分下面四种情况: (1) 若均为数值型,而类型不同时,以变量类型为准。 (2) 当变量为数值型,而表达式为数字字符串,则自动转换成数值型再
5、赋值。当表达式中有非数字字符或是空字符串时,出现“类型不匹配”。 (3) 当变量为数值型,而表达式为逻辑型时,True转换成-1,False转换成0,反之,数值型数据赋给逻辑型变量时,非0转换为True,0转换成False。 (4) 任何非字符类型赋值给字符型变量,均自动转换为字符型。! 使用赋值语句应注意如下问题3变量之间的赋值与交换变量值需借助一个中间变才能进行交换数据。程序设计中一个常见的任务是交换两个变量的值。例如设计程序交换两个变量的值.思考:有两个瓶子x和y,分别装有醋和豆油,如何交换两个瓶子的液体?方法:借用第3个瓶子t算法:T=x:x=y:y=T设计界面:代码:Private
6、Sub Command1_Click()x = Text1y = Text2T = xx = yy = TText1 = xText2 = yEnd Sub(二) 使用InputBox函数 在程序设计时,有时要求动态地输入数据,根据输入的数据进行相应的处理。InputBox()函数是实现这种功能最常用的一个函数。InputBox()函数可以弹出一个对话框接由用户从键输入的信息,其使用格式为:变量=InputBox(提示信息,标题,默认值,x坐标,y坐标) 其中: (1) 变量 用于指定接收输入信息的变量。由于该函数接收的是字符串信息,因此变量如要接收数值型数据时,需要用Val( )函数将数字字
7、符串转换成数值型数据。 (2) 提示信息 为字符串表达式,用于指明在对话框中的提示信息,一般用于对要接收的值加以说明。当内容太多需要多行显示时,可在每行行末加回车Chr(13)或换行Chr(10)控制符。 (3) 标题 是一个字符串表达式,指明窗口标题内容,如P63图4-4中,由于没有指明标题,则显示工程名“工程1”。 (4) 默认值 字符串表达式。指明当在输入对话框中无输入时,则该值作为输入的内容。 (5) x坐标与y坐标 整型表达式,用于指定对话框的位置(相对于屏幕左上角),若省略,则出现在屏幕中央。 如:x=InputBox(“请输入你的Email信箱地址”+Chr(10)+ “请注意地
8、址应写完整!”),程序运行时出现对话框窗口,如图4-4所示。输入内容后单击“确定”按钮或按回车键,输入的内容就赋给变量x。标题部分 提示信息注意: 函数中的各项参数次序必须一一对应,除了“提示”一项不能省略外,其余各项均为可选项,如果要省略某些参数,则必须加入相应的逗号分割符。 strName= InputBox$(“请输入你的姓名然后单击确定”, “输入框”, , 100,100) 例 鸡兔同笼问题。我们可将在程序运行过程中,总头数与总脚数通过InputBox函数输入,最后结果通过Print方法直接输出在窗体上。程序代码可写在窗体的Click事件中,代码如下:Private Sub Form
9、_Click() Dim h As Integer, f As Integer, x As Integer, y % h = Val(InputBox(请输入总头数, 鸡兔同笼, 0) f = InputBox(请输入总脚数, 鸡兔同笼, 0) x = (4 * h - f) / 2 y = (f - 2 * h) / 2 Print 若总头数为 & h & ;若总脚数为 & f & 则 Print 鸡有 & x & 只 Print 兔有 & y & 只End Sub结果为字符型数值型数据(三) 使用文本框 在程序运行时为变量提供数据,除了使用InputBox函数外,还有应用最广泛的是使用文本
10、框,将文本框的Text属性的值赋给给变量,格式为:变量名=对象名.Text其作用是将文本框的值赋给某一变量。同InputBox函数一样,文本框的值也是字符型数据。在应用中,若要得到数值型数据,可通过转化函数Val将字符型数据转化为数值型。二、输出数据的基本方法1.通过Print方法输出到窗体2.通过print方法输出到图片框 3.通过标签(Label)输出结果通过Print方法输出到窗体 关于Print方法,我们在前面已经使用过,使用Print方法控制输出位置最常用的是两个函数:Tab()函数和Spc()函数1. Tab(n)函数 在Print方法中,Tab(n)是用于确定输出项列位置的函数,
11、通常和输出项之间用分号隔开,格式为: Print Tab(n); 输出项 表示在某一行第n列输出数据 参见例4-12.Spc(n)函数 和Tab函数类似,Spc(n)函数也是控制输出项输出的列位置,其语法要求也基本相同,不同的是Spc函数用来确定输出项之间的空格数。 如:Print Spc(4); 学号; Spc(6); 姓名; Spc(5); 性别 表示“学号”和窗体左边界相隔4个空格,“姓名”和“学号”之间相隔6个空格,“性别”和“姓名”之间相隔5个空格。通过Print方法输出到图片框 图片框(PictureBox)控件可以输出图形、图像和文本,还可以像窗体一样作为容器包含其它控件,不仅如
12、此,图片框控件具有和窗体相似的属性和方法,图片框主要的方法有Print、Cls等。通过Print方法输出到图片框的格式为: 图片框名.Print Tab(n); 输出项 Print方法如果省略了对象名,则表示默认的对象为窗体(Form)。通过标签(Label)输出结果 通过标签(Label)输出结果,是通过标签的Caption属性值来实现。例 鸡兔同笼问题。已知鸡和兔的总头数与总脚数分别为16和40。问笼中鸡和兔子各几只?分析:设有鸡x只,兔y只,鸡和兔的总头数为h,总脚数为f,根据数学知识可以写出下面的方程式标签、文本框可不可以使用Print、CLS方法? 习题:指出执行下面赋值语句后各变量
13、的数据类型 (1) a=6=5 (2) a=5+3 (3) a=#11/26/1999# (4) a=Not 5 8 (5) a=5:b=6:c=b=a=8 (6) a=5“:b=6 c=b=a=8加油,努力!二、程序结构例:输入三角形的三条边a,b,c,输出三角形的面积。(a,b,c是正整数c)and(a+cb)and(b+ca) then begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c); writeln(s:0:2); end else writeln(No answer);end.无“;”选择结构:if 语句有两种形式的IF语句:(1) i
14、f then ;(2) if then else ; IF语句是由一个布尔表达式和一个或两个供选择的操作序列组成。运行时根据布尔表达式的求值结果,选取其中之一的操作序列执行。 当布尔表达式的值为TRUE,则执行then后面的语句,值为FALSE 时有两种情况: (1)什么也不做;(2)执行else后面的语句。注意: 1、else前面的语句不能有分号;2:如果语句部分是复合语句(多于一条语句),则必须用begin与end括起来。二、选择结构 布尔表达式:由关系运算符和逻辑运算符连接成的表达式(判断)。结果是布尔类型:TRUE或FALSE例1:输入一个整数,判断他的奇偶性。(是偶数输出“”,奇数输
15、出“”)。 方法一:Var a:integer; Begin readln(a); If a mod 2 =0 then writeln(yes) ; if a mod 2 0 then writeln(no); End. 方法二:Var a:integer; Begin readln(a); If a mod 2 =0 then writeln(yes) else writeln(no); End. 无“;”例2、计算下列函数 ,输入x,输出y的值(精确到小数点后两位小数)。 var x:real;begin readln(x); if x0 then writeln(x*x:0:2) el
16、se if x=0 then writeln(0) else writeln(sqrt(x):0:2);end.IF语句的嵌套: 在if语句中,如果then子句或else子句仍是一个if语句, 则称为if语句的嵌套。var x:real;begin readln(x); if x0 then writeln(sqrt(x):0:2);end.例3:已知方程: ax2+bx+c=0输入系数a,b,c,a0,输出方程的解(考虑各种情况)。保留两位小数。(1):如果无实数解输出:no answer;(2):相同的实数解:输出一个即可。(3):两个不同的实数解:分别输出。如:输入:1 3 2输出:X1
17、=-1.00X2=-2.00输入:2 1输出:X=-1.00var a,b,c:integer; d,x1,x2:real;begin readln(a,b,c); d:=b*b-4*a*c; if d0 then begin x1:=(-b+sqrt(d)/(2*a); x2:=(-b-sqrt(d)/(2*a); writeln(x1=,x1:0:2); writeln(x2=,x2:0:2); end;end. 关系运算、逻辑运算及布尔表达式1.关系运算符(表示数值大小关系的运算符号) 运算符运算结果类型=等于布尔型 不等于布尔型大于布尔型= 大于等于布尔型如:a:=1;b:=2; 则表
18、达式:ab的值是FALSE; a+1=b的值是TRUE;Var f:boolean; f:=ab; Write(f); 输出:FALSE数据类型:布尔型 (boolean) :描述判断的正确与错误一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值只有两个:false(错误)和true(正确),并且false的序号是0,true的序号是1。false 和true都是预定义常数标识符,分别表示逻辑假和逻辑真。并且truefalse。boolean是布尔型的标识符。如: var f:boolean;2、逻辑运算 (布尔运算)运算符运算 运算对象结果类型not逻辑非(取反)布尔型布尔型and 逻辑与(
19、并且)布尔型布尔型or 逻辑或(或者)布尔型布尔型xor逻辑异或 布尔型布尔型如:a:=1;b:=2;c:=3;1)、Not(ab) 2)、(ab)and (bc)3)、(ac)4)、(ab)or (bc) 5)、(ac)6)、(ab)xor(bc)7)、(ac)例4:输入两个运正算数0.30000和一个运算符号(+、-、*、/)。/的结果小数点后保留3位小数。输出运算结果。样例输入:10 20+样例输出:30var a,b:integer; k:char;begin readln(a,b); readln(k); if k=+ then writeln(a+b); if k=- then writeln(a-b); if k=* then writeln(a*b); if k=/ then writeln(a/b:0:2);end.var a,b:integer; k:char;begin readln(a,b); readln(k); case k of +: writeln(a+b); -: writeln(a-b); *: writeln(a*b); /: writeln(a/b:0:2); end;end.选择结构:c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省泰安市一中2024-2025学年高三下学期2月阶段性检测语文试题(解析版)
- 静脉输液标准流程
- 提升通过率的2024年特许金融分析师考试试题及答案
- 基于对话理论的高校英语专业教学改革探索
- 完整解读2024年特许金融分析师试题及答案
- 透视2024年CFA考试出题趋势试题及答案
- CFA考试中的道德与伦理重要性试题及答案
- 污水站运营管理标准化
- 支教工作个人总结5
- CFA考试的学术支持试题及答案
- 轧钢电气培训
- 部编版三年级语文下册教学计划(含进度表)
- 2025年云南红河弥勒市产业发展集团限公司面向社会招聘(若干)自考难、易点模拟试卷(共500题附带答案详解)
- DB11∕T1082-2024工业γ射线移动探伤治安防范要求
- 2025年上半年无锡宜兴市人民检察院聘用合同制检察书记员招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025届高考生物学专项突破:细胞的生命历程(含答案)
- 肺动脉栓塞溶栓治疗个体化方案探讨-深度研究
- 2025年湖南省长沙市开福区审计局招聘4人历年高频重点模拟试卷提升(共500题附带答案详解)
- 5.2《稻》课时练-【中职专用】高二语文同步(高教版2023拓展模块下册)
- 2025年河南农业职业学院单招职业技能测试题库及参考答案
- 人教PEP版英语五年级下册全册教案
评论
0/150
提交评论