版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualBASIC基础VB开发环境:菜单、工具箱、工具栏、窗体、工程资源管理器一个VB程序也称为一个工程,由一组文件组成。?面向对象程序设计、可视化编程、事件驱动等基本概念对象的属性、事件和方法的概念及使用方法。数据表示(定义)与运算符、系统函数和表达式基本数据类型:字节、整数、长整数、浮点型、字符串型、逻辑型、日期型、变体型等等字节数、取值范围、如何声明、何时使用?一般情况下,对于固定类型的变量,都要指明其数据类型。允许的情况下,可以范围声明大一些常量的定义掌握日期、逻辑型常量、八进制、十六进制表示 c1=“aaaBBB”D1=#02/10/2009#tf=true 123.45! 123.45#&O67 &HCD&O78?“aBc”与“abc”作为常量值不同、作为变量则相同符号常量
CONST系统定义常量位于对象库中,可通过“对象浏览器”查看如vbRed,vbYesNo。Print语句赋值语句
值交换C=aa=bb=cInputboxMsgboxS=InputBox(“请输入你的姓名,然后单击确定”,“输入框”,“王小明”)N1=MsgBox(“确定输入的数据是否正确!”,3,“数据检查")格式运算符、系统内部函数和表达式算术运算(加、减、乘、除、取负、乘方、整除和求余数)及其运算优先级;算术表达式与VB表达式转换;关系运算;=>>=<<=<> x=8关系运算还是赋值? “c”>“bbc”a>b>c逻辑运算(NOT、AND、0R)及其运算的优先级;字符串运算+& 2&"yy" 2+"yy" s=s&xs=x&s常用内部函数:三角函数Sin、Cos、Tan和Atn;算术函数Abs、Sqr、Log、Exp和Sgn;sin30°写成:Sin(30)???取整函数Int(x)和Fix(x)随机函数Rnd;Int(Rnd*(b-a+1))+a字符串处理函数Trim、Ltrim和Rtrim、Left、Right、Len、Mid、UCase、LCase、instr(x,y)、String(n,m)、space(n)、spc(n);转换函数Str和Val、Chr和Asc;str(123)str(-123)val(“34gfg”)val(“yy34tr”)asc(“abcd”)chr(13)chr(10)
例1输入学生成绩给出相应等级。Y=“A”90≤x“B” 80≤x<90“C” 70≤x<80“D” 60≤x<70“E” x<60主题一:分段函数(选择结构)求值PrivateSubForm_click()score=Val(InputBox("输入成绩"))Ifscore>=90Then
Print"A"ElseIfscore>=80Then
Print"B"ElseIfscore>=70Then
Print"C"ElseIfscore>=60Then
Print"D"Else
Print"E"EndIfEndSub例2求分段函数的值Z=X2+y2 x>0,y>0X2-y2 x<0,y<0X-2y 其他Ifx>0andy>0then z=x*x+y*yIfx<0andy<0then z=x*x-y*yElse z=x-2*yEndif
Subform1_click() dimxasInteger,f(x)asSingle ifx<-5thenf(x)=3x^2+2x-1 if–5<=x≤5then f(x)=x·sinx+exp(x) else f(x)=spr(x-5)+logx endif label.printf(x)Endsub找错结果在标签框显示出来例5Guess过程是猜数游戏,程序的具体内容是什么?PublicSubGuess()DimRAsIntegerDimXAsIntegerDimtimesAsIntegerRandomizeR=int(Rnd*100)+1times=1DoX=Val(InputBox("输入猜数"))
SelectCaseX
CaseRForm1.Print"猜中了"ExitDo
CaseIs>RForm1.Print"太大了,继续猜!"
CaseElseForm1.Print"太小了,继续猜!"
EndSelecttimes=times+1loopWhiletimes<=5Iftimes>5ThenPrint"猜数失败,游戏结束!"Print"正确答案为"&Str(R)EndIfEndSub主题二:简单循环流程图:设步长为正For
循环变量=初值
To
终值[Step步长]
语句块Next
[循环变量]例:计算下面数学表达式的程序,n由键盘输入PrivateSubForm
Click()DimnAsInteger,tAsSingle,sAsSingle,iAsIntegern=InputBox("请输入N的值:")s=0:t=1:fh=1Fori=1Ton
t=t/i s=s+t*I*fh fh=-fhNexti
PrintsEndSubPublicSubsum()DimfAsSingleDimiAsIntegerDimsignAsInteger-----1------f=1Fori=2To-----2------f=f+sign/(i*(i+1))------3-------NextiForm1.Print"f=";fEndSub例:计算下面数学表达式的程序:计算f=1-1/(2*3)+1/(3*4)-1/(4*5)+……+1/(19*20),程序填空。例:用近似公式求自然对数的底数e的值,直到最后一项小于10-5为止
PrivateSubForm_Click()Dimi%,t!,e!e=1'e存放累加和i=0:t=1'i计数器、t第i项的值DoWhilet>0.00001????i=i+1t=t/Ie=e+tLoopPrint"计算了";i;"项的和是";eEndSub例6该过程是用于找出分别被3、5、7除,余数为1的最小的5个整数,并将结果输出来PublicSubfind()DimcountN%,n%countN=0n=1Don=----1----if-----2----thenForm1.PrintncountN=countN+1EndIfLoop----3-----EndSub编制事件过程Command1_Click,执行该过程时调用InputBox函数输入x,按下式计算y并以标签控件Label1显示y值。111111*22*33*44*5n*(n+1)(1)n由InputBox函数输入,求以上表达式的值(2)求以上表达式的值,直到最后项小于10-4为止计算s=7+77+777+……+(n个7组成的数),n由键盘输入练习+……++++把一元钞票换成一分、二分和五分的硬币(每种至少有一枚),有哪几种换法?百钱买百鸡多重循环之:打印图形9888777776666666555555555444444444443333333333333222222222222222111111111111111111222333334444444555555555666666666667777777777777888888888888889999999999999999素数例:从键盘输入一个数,判断该数是否为素数n=Val(InputBox("输入一个正整数N=?"))Fori=2Toint(Sqr(n))IfnModi=0ThenExitForNextiIfi>int(Sqr(n))ThenText2.Text=Text1.Text+"是素数"ElseText2.Text=Text1.Text+"不是素数"EndIfPrivateSubCommand1_Click()DimnAsInteger,iAsInteger,flagasboolean
n=Val(Text1.Text)
flag=true
‘先假设是素数
For
i=2ToSqr(n)
If
nModi=0Thenflag=false:exitfor
Nexti
If
flagThenText2.Text=Text1.Text+"是素数"
ElseText2.Text=Text1.Text+"不是素数"
EndIfEndSub找出2到100之间的所有素数
素数(续) Forn=2To100
Fori=2Toint(Sqr(n))IfnModi=0ThenExitForNextiIfi>int(Sqr(n))ThenPrintnNextn主题:字符串处理例:程序阅读Modify.bas模块中的Findat过程是用于在一个字符串变量中查找”at”,并用消息框给出查找结果的报告:没有找到或找到的个数。
PrivateSubForm_Click()Dimstr1AsString,lengthAsInteger'字符串长度DimiAsInteger,sumAsInteger'查到的个数str1=InputBox("请输入一个字符串")length=----1----i=1sum=0DoWhilei<=----2----If----3----="at"Thensum=sum+1EndIfi=i+1LoopIf----4----ThenMsgBox"没有找到!"ElseMsgBox"找到了"&Str(sum)&"个"EndIfEndSub主题四:字符串处理(续)本程序用于处理文本框Text1.text中的内容,假设文本框中有偶数个字符。要求将文本框中的内容从头尾至中间依次各取字符,组成一个新的字符串Str2,并在窗体上输出。例如:Textl.Text="12345678",则str2="18273645“PrivateSubForm_Click()DimStr1AsString,Str2AsStringStr1=Text1.TextStr2="" form=1tolen(str1)\2 Str2=Str2+mid(str1,m,1)
Str2=str2+mid(str1,len(str1)-m+1,1)
nextmForm1.PrintStr2EndSubPublicSubsame()DimiAsIntegerDimxAsString,x2AsStringFori=1To1000
x1='------1------'将i转字符型x2='------2------'将i^2转字符型if'------3------ThenForm1.Printi;"是同构数"EndIfNextiEndSub过程same用以找出1--1000之间所有的同构数。所谓同构数是指一个数出现在它的平方数的右端,如25在25平方625的右端,则25为同构数。利用数字转字符再取出右端字符的方法进行判断。主题四:字符串处理(续)过程Uppersen实现从键盘上任意输入一条英文句子,将句子中的每个单词的首字母都变成大写例如:输入iamagoodstudent.要求输出IAmAGoodStudent.Fori=1Tonchar=mid(oldsen,i,1)Iflastchar=""Thenchar=ucase(char)EndIfnewsen=newsen&charlastchar=charNextiForm1.Print"input:";oldsenForm1.Print"output:";newsenEndSubPublicSubUppersen()DimoldsenAsString,newsen$DimcharAsString,lastchar$DimnAsInteger,iAsInteger
oldsen=InputBox("请输入英文句子:")n=len(oldsen)'以空格作为单词的界定,空格后的字母转换为大写字母lastchar=“”
主题:数制的转换(续)过程DToB采用连除2取余数的方法实现将一个十进制数转换为二进制数,但不完整,请在横线上填入必要的内容,使其完整。PublicSubDToB()DimDecAsInteger'输入一个十进制数DimBinAsString'转换为二进制表示DimresAsIntegerDimiAsIntegerDec=Val(InputBox("x="))Form1.Print"十进制数:";DecDores='------1------'求出除以2的余数Bin='------2------Dec='------3------LoopWhile'------4------Form1.Print"转换为二进制数为:";BinEndSub主题:数制的转换Modify.Bas模块中的Transfer过程用于将一个十六进制整数转换为十进制整数,number函数用于将一个十六进制符号转换为数值。PublicSubTransfer()DimHexAsString'十六进制数DimDecAsDouble'十进制数DimtempAsStringDimiAsIntegerDimnAsIntegerHex=InputBox("输入一个十六进制整数")
'******错误1*******n=Val(Hex)i=0Do'******错误2*******temp=Mid(Hex,i,1)'******错误3*******Dec=Dec+number*16^ii=i+1LoopWhilei<n'******错误4******Form1.Printstr(Hex)&"转换为十进制数为"&str(Dec)EndSubPublicFunctionnumber(str1AsString)AsIntegerSelectCasestr1Case"a","A"number=10Case"b","B"number=11Case"c","C"number=12Case"d","D"number=13Case"e","E"number=14Case"f","F"number=15CaseElsenumber=Val(str1)EndSelectEndFunction主题:数、钱、时间的拆分_水仙花数求出100--999之间所有的Armstrong数,所谓Armstrong数是指一个数等于它每位上数字的立方和。例如:471=4^3+7^3+1^3,那么471就是一个Armstrong数。PublicSubArmstrongNumber()DimhundredAsInteger'百位上的数字DimtenAsInteger'十位上的数字DimoneAsInteger'个位上的数字Fori=100To999
hundred=----1----ten=(iMod100)\10one=----2----If----3----ThenForm1.Printi;"isarmstrongnumber"EndIfNextiEndSub
主题六:钱的拆分过程money用于统计工资salary共需要多少张百元?50元?10元?5元以及1元的面额。salary=val(inputbox(“录入工资数”))temp=salaryhundred=temp\100temp=tempmod100fifty=temp\50temp=temp-fifty*50ten=temp\10temp=tempmod10five=temp\5temp=temp-five*5one=temp Printhundred,fifty,ten,five,one主题:最小公倍数、最大公约数实现求任意两个正整数的最大公约数
Dom=Val(InputBox("m="))n=Val(InputBox("n="))LoopWhilem<=0orn<=0'先将两个整数中的较小数假设为最大公约数,再依次往下'寻找能同时除尽m和n的数即为最大公约数div=mIfn<mThendiv=nEndIfDountil--------------?-------------------div=div-1LoopForm1.Printm;"和";n;"的最大公约数是:";div主题:最小公倍数、最大公约数输入n个整数,求它们的最小公倍数PrivateSubForm_Click()DimiAsInteger,gbsAsLong,nAsIntegern=InputBox("n=","数组元素的个数n")ReDima(n)AsIntegerFori=1Tona(i)=InputBox("a("+Str(i)+")=","输入数组元素")Nextigbs=a(1)Do Fori=2Ton IfgbsModa(i)<>0Thengbs=gbs+a(1):ExitFor NextiLoopUntili=n+1PrintgbsEndSub主题:最小公倍数、最大公约数分析:求最大公约数有许多方法。这里采用辗转相除法。设m=n*a+R1(0≤R1<n),就是说m是n的a倍还多R1。则m和n的最大公约数与n和R1的最大公约数相同。若R1等于0,则n就是m和n的最大公约数。若R1不等于0,则对n和R1重复上述过程,直到求出R1等于0为止。步骤:(1)对于已知两数m、n,使得m>n;(2)m除以n得余数r;(3)若r=0,则n为最大公约数,算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赣南医学院《广告造型基础》2023-2024学年第一学期期末试卷
- 赣南师范大学科技学院《舞蹈艺术概论》2023-2024学年第一学期期末试卷
- 三年级数学上册七年月日一天的时间说课稿北师大版
- 三年级数学上册四两三位数除以一位数第3课时除法的验算教案苏教版
- 小学生安全备课课件
- 2021中级电气工程师完整复习试题及答案
- 小学生课堂发言制度管理
- 三年级健康教学参考计划范文5篇
- 肝癌微波消融术
- 《愚人节中英文》课件
- 血液透析室护士长年终总结报告
- 露天矿山边坡稳定性分析与防治措施
- 培养学生深度思考的能力
- 中医医院运营方案
- 【瑞幸咖啡财务分析报告(附财务报表)5300字(论文)】
- 过敏性鼻炎-疾病研究白皮书
- 乌头碱中毒急诊科培训课件-
- 三轴水泥搅拌桩施工质量措施
- 贵州茅台2023审计报告
- 幼儿园学前教育五以内的数字比大小练习题
- 高速铁路沉降观测与评估
评论
0/150
提交评论