版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
VisualBASIC基礎(chǔ)VB開發(fā)環(huán)境:菜單、工具箱、工具欄、窗體、工程資源管理器一個VB程序也稱為一個工程,由一組文件組成。?面向?qū)ο蟪绦蛟O(shè)計、可視化編程、事件驅(qū)動等基本概念對象的屬性、事件和方法的概念及使用方法。數(shù)據(jù)表示(定義)與運(yùn)算符、系統(tǒng)函數(shù)和表達(dá)式基本數(shù)據(jù)類型:字節(jié)、整數(shù)、長整數(shù)、浮點(diǎn)型、字符串型、邏輯型、日期型、變體型等等字節(jié)數(shù)、取值范圍、如何聲明、何時使用?一般情況下,對于固定類型的變量,都要指明其數(shù)據(jù)類型。允許的情況下,可以范圍聲明大一些常量的定義掌握日期、邏輯型常量、八進(jìn)制、十六進(jìn)制表示 c1=“aaaBBB”D1=#02/10/2009#tf=true 123.45! 123.45#&O67 &HCD&O78?“aBc”與“abc”作為常量值不同、作為變量則相同符號常量
CONST系統(tǒng)定義常量位于對象庫中,可通過“對象瀏覽器”查看如vbRed,vbYesNo。Print語句賦值語句
值交換C=aa=bb=cInputboxMsgboxS=InputBox(“請輸入你的姓名,然后單擊確定”,“輸入框”,“王小明”)N1=MsgBox(“確定輸入的數(shù)據(jù)是否正確!”,3,“數(shù)據(jù)檢查")格式運(yùn)算符、系統(tǒng)內(nèi)部函數(shù)和表達(dá)式算術(shù)運(yùn)算(加、減、乘、除、取負(fù)、乘方、整除和求余數(shù))及其運(yùn)算優(yōu)先級;算術(shù)表達(dá)式與VB表達(dá)式轉(zhuǎn)換;關(guān)系運(yùn)算;=>>=<<=<> x=8關(guān)系運(yùn)算還是賦值? “c”>“bbc”a>b>c邏輯運(yùn)算(NOT、AND、0R)及其運(yùn)算的優(yōu)先級;字符串運(yùn)算+& 2&"yy" 2+"yy" s=s&xs=x&s常用內(nèi)部函數(shù):三角函數(shù)Sin、Cos、Tan和Atn;算術(shù)函數(shù)Abs、Sqr、Log、Exp和Sgn;sin30°寫成:Sin(30)???取整函數(shù)Int(x)和Fix(x)隨機(jī)函數(shù)Rnd;Int(Rnd*(b-a+1))+a字符串處理函數(shù)Trim、Ltrim和Rtrim、Left、Right、Len、Mid、UCase、LCase、instr(x,y)、String(n,m)、space(n)、spc(n);轉(zhuǎn)換函數(shù)Str和Val、Chr和Asc;str(123)str(-123)val(“34gfg”)val(“yy34tr”)asc(“abcd”)chr(13)chr(10)
例1輸入學(xué)生成績給出相應(yīng)等級。Y=“A”90≤x“B” 80≤x<90“C” 70≤x<80“D” 60≤x<70“E” x<60主題一:分段函數(shù)(選擇結(jié)構(gòu))求值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求分段函數(shù)的值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找錯結(jié)果在標(biāo)簽框顯示出來例5Guess過程是猜數(shù)游戲,程序的具體內(nèi)容是什么?PublicSubGuess()DimRAsIntegerDimXAsIntegerDimtimesAsIntegerRandomizeR=int(Rnd*100)+1times=1DoX=Val(InputBox("輸入猜數(shù)"))
SelectCaseX
CaseRForm1.Print"猜中了"ExitDo
CaseIs>RForm1.Print"太大了,繼續(xù)猜!"
CaseElseForm1.Print"太小了,繼續(xù)猜!"
EndSelecttimes=times+1loopWhiletimes<=5Iftimes>5ThenPrint"猜數(shù)失敗,游戲結(jié)束!"Print"正確答案為"&Str(R)EndIfEndSub主題二:簡單循環(huán)流程圖:設(shè)步長為正For
循環(huán)變量=初值
To
終值[Step步長]
語句塊Next
[循環(huán)變量]例:計算下面數(shù)學(xué)表達(dá)式的程序,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例:計算下面數(shù)學(xué)表達(dá)式的程序:計算f=1-1/(2*3)+1/(3*4)-1/(4*5)+……+1/(19*20),程序填空。例:用近似公式求自然對數(shù)的底數(shù)e的值,直到最后一項(xiàng)小于10-5為止
PrivateSubForm_Click()Dimi%,t!,e!e=1'e存放累加和i=0:t=1'i計數(shù)器、t第i項(xiàng)的值DoWhilet>0.00001????i=i+1t=t/Ie=e+tLoopPrint"計算了";i;"項(xiàng)的和是";eEndSub例6該過程是用于找出分別被3、5、7除,余數(shù)為1的最小的5個整數(shù),并將結(jié)果輸出來PublicSubfind()DimcountN%,n%countN=0n=1Don=----1----if-----2----thenForm1.PrintncountN=countN+1EndIfLoop----3-----EndSub編制事件過程Command1_Click,執(zhí)行該過程時調(diào)用InputBox函數(shù)輸入x,按下式計算y并以標(biāo)簽控件Label1顯示y值。111111*22*33*44*5n*(n+1)(1)n由InputBox函數(shù)輸入,求以上表達(dá)式的值(2)求以上表達(dá)式的值,直到最后項(xiàng)小于10-4為止計算s=7+77+777+……+(n個7組成的數(shù)),n由鍵盤輸入練習(xí)+……++++把一元鈔票換成一分、二分和五分的硬幣(每種至少有一枚),有哪幾種換法?百錢買百雞多重循環(huán)之:打印圖形9888777776666666555555555444444444443333333333333222222222222222111111111111111111222333334444444555555555666666666667777777777777888888888888889999999999999999素數(shù)例:從鍵盤輸入一個數(shù),判斷該數(shù)是否為素數(shù)n=Val(InputBox("輸入一個正整數(shù)N=?"))Fori=2Toint(Sqr(n))IfnModi=0ThenExitForNextiIfi>int(Sqr(n))ThenText2.Text=Text1.Text+"是素數(shù)"ElseText2.Text=Text1.Text+"不是素數(shù)"EndIfPrivateSubCommand1_Click()DimnAsInteger,iAsInteger,flagasboolean
n=Val(Text1.Text)
flag=true
‘先假設(shè)是素數(shù)
For
i=2ToSqr(n)
If
nModi=0Thenflag=false:exitfor
Nexti
If
flagThenText2.Text=Text1.Text+"是素數(shù)"
ElseText2.Text=Text1.Text+"不是素數(shù)"
EndIfEndSub找出2到100之間的所有素數(shù)
素數(shù)(續(xù)) Forn=2To100
Fori=2Toint(Sqr(n))IfnModi=0ThenExitForNextiIfi>int(Sqr(n))ThenPrintnNextn主題:字符串處理例:程序閱讀Modify.bas模塊中的Findat過程是用于在一個字符串變量中查找”at”,并用消息框給出查找結(jié)果的報告:沒有找到或找到的個數(shù)。
PrivateSubForm_Click()Dimstr1AsString,lengthAsInteger'字符串長度DimiAsInteger,sumAsInteger'查到的個數(shù)str1=InputBox("請輸入一個字符串")length=----1----i=1sum=0DoWhilei<=----2----If----3----="at"Thensum=sum+1EndIfi=i+1LoopIf----4----ThenMsgBox"沒有找到!"ElseMsgBox"找到了"&Str(sum)&"個"EndIfEndSub主題四:字符串處理(續(xù))本程序用于處理文本框Text1.text中的內(nèi)容,假設(shè)文本框中有偶數(shù)個字符。要求將文本框中的內(nèi)容從頭尾至中間依次各取字符,組成一個新的字符串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轉(zhuǎn)字符型x2='------2------'將i^2轉(zhuǎn)字符型if'------3------ThenForm1.Printi;"是同構(gòu)數(shù)"EndIfNextiEndSub過程same用以找出1--1000之間所有的同構(gòu)數(shù)。所謂同構(gòu)數(shù)是指一個數(shù)出現(xiàn)在它的平方數(shù)的右端,如25在25平方625的右端,則25為同構(gòu)數(shù)。利用數(shù)字轉(zhuǎn)字符再取出右端字符的方法進(jìn)行判斷。主題四:字符串處理(續(xù))過程Uppersen實(shí)現(xiàn)從鍵盤上任意輸入一條英文句子,將句子中的每個單詞的首字母都變成大寫例如:輸入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)'以空格作為單詞的界定,空格后的字母轉(zhuǎn)換為大寫字母lastchar=“”
主題:數(shù)制的轉(zhuǎn)換(續(xù))過程DToB采用連除2取余數(shù)的方法實(shí)現(xiàn)將一個十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),但不完整,請在橫線上填入必要的內(nèi)容,使其完整。PublicSubDToB()DimDecAsInteger'輸入一個十進(jìn)制數(shù)DimBinAsString'轉(zhuǎn)換為二進(jìn)制表示DimresAsIntegerDimiAsIntegerDec=Val(InputBox("x="))Form1.Print"十進(jìn)制數(shù):";DecDores='------1------'求出除以2的余數(shù)Bin='------2------Dec='------3------LoopWhile'------4------Form1.Print"轉(zhuǎn)換為二進(jìn)制數(shù)為:";BinEndSub主題:數(shù)制的轉(zhuǎn)換Modify.Bas模塊中的Transfer過程用于將一個十六進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)制整數(shù),number函數(shù)用于將一個十六進(jìn)制符號轉(zhuǎn)換為數(shù)值。PublicSubTransfer()DimHexAsString'十六進(jìn)制數(shù)DimDecAsDouble'十進(jìn)制數(shù)DimtempAsStringDimiAsIntegerDimnAsIntegerHex=InputBox("輸入一個十六進(jìn)制整數(shù)")
'******錯誤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)&"轉(zhuǎn)換為十進(jìn)制數(shù)為"&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主題:數(shù)、錢、時間的拆分_水仙花數(shù)求出100--999之間所有的Armstrong數(shù),所謂Armstrong數(shù)是指一個數(shù)等于它每位上數(shù)字的立方和。例如:471=4^3+7^3+1^3,那么471就是一個Armstrong數(shù)。PublicSubArmstrongNumber()DimhundredAsInteger'百位上的數(shù)字DimtenAsInteger'十位上的數(shù)字DimoneAsInteger'個位上的數(shù)字Fori=100To999
hundred=----1----ten=(iMod100)\10one=----2----If----3----ThenForm1.Printi;"isarmstrongnumber"EndIfNextiEndSub
主題六:錢的拆分過程money用于統(tǒng)計工資salary共需要多少張百元?50元?10元?5元以及1元的面額。salary=val(inputbox(“錄入工資數(shù)”))temp=salaryhundred=temp\100temp=tempmod100fifty=temp\50temp=temp-fifty*50ten=temp\10temp=tempmod10five=temp\5temp=temp-five*5one=temp Printhundred,fifty,ten,five,one主題:最小公倍數(shù)、最大公約數(shù)實(shí)現(xiàn)求任意兩個正整數(shù)的最大公約數(shù)
Dom=Val(InputBox("m="))n=Val(InputBox("n="))LoopWhilem<=0orn<=0'先將兩個整數(shù)中的較小數(shù)假設(shè)為最大公約數(shù),再依次往下'尋找能同時除盡m和n的數(shù)即為最大公約數(shù)div=mIfn<mThendiv=nEndIfDountil--------------?-------------------div=div-1LoopForm1.Printm;"和";n;"的最大公約數(shù)是:";div主題:最小公倍數(shù)、最大公約數(shù)輸入n個整數(shù),求它們的最小公倍數(shù)PrivateSubForm_Click()DimiAsInteger,gbsAsLong,nAsIntegern=InputBox("n=","數(shù)組元素的個數(shù)n")ReDima(n)AsIntegerFori=1Tona(i)=InputBox("a("+Str(i)+")=","輸入數(shù)組元素")Nextigbs=a(1)Do Fori=2Ton IfgbsModa(i)<>0Thengbs=gbs+a(1):ExitFor NextiLoopUntili=n+1PrintgbsEndSub主題:最小公倍數(shù)、最大公約數(shù)分析:求最大公約數(shù)有許多方法。這里采用輾轉(zhuǎn)相除法。設(shè)m=n*a+R1(0≤R1<n),就是說m是n的a倍還多R1。則m和n的最大公約數(shù)與n和R1的最大公約數(shù)相同。若R1等于0,則n就是m和n的最大公約數(shù)。若R1不等于0,則對n和R1重復(fù)上述過程,直到求出R1等于0為止。步驟:(1)對于已知兩數(shù)m、n,使得m>n;(2)m除以n得余數(shù)r;(3)若r=0,則n為最大公約數(shù),算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《大學(xué)英語聽力應(yīng)用教程(第1冊)》課件-Unit 7 Live Longer
- 合伙人股權(quán)轉(zhuǎn)讓合同書
- 統(tǒng)計局聘用合同
- 鐵路機(jī)務(wù)段合同樣板
- 提前解除合同會議紀(jì)要
- 《骨質(zhì)疏松的診治》課件
- 2025年雅安貨運(yùn)從業(yè)資格模擬考試
- 2025年安徽貨運(yùn)從業(yè)資格證考試模擬試題
- 第3課 盛唐氣象
- 醫(yī)藥新風(fēng)系統(tǒng)施工協(xié)議
- 海洋水產(chǎn)養(yǎng)殖碳足跡評估與減緩策略
- 數(shù)字媒體藝術(shù)課件
- 海洋科普趣味知識講座
- 靜脈輸液操作課件
- 安全生產(chǎn)培訓(xùn)(完整版)課件
- 【瑞幸咖啡財務(wù)分析報告(附財務(wù)報表)5300字(論文)】
- 三傻大鬧寶萊塢課件
- 護(hù)理科普作品
- 國家OTC藥品目錄(全部品種)
- 社會主義發(fā)展簡史智慧樹知到課后章節(jié)答案2023年下北方工業(yè)大學(xué)
- Android課程設(shè)計報告
評論
0/150
提交評論