![北郵計算機實習報告-3_第1頁](http://file4.renrendoc.com/view/093f5976cb98853492d4ce15c9b059b7/093f5976cb98853492d4ce15c9b059b71.gif)
![北郵計算機實習報告-3_第2頁](http://file4.renrendoc.com/view/093f5976cb98853492d4ce15c9b059b7/093f5976cb98853492d4ce15c9b059b72.gif)
![北郵計算機實習報告-3_第3頁](http://file4.renrendoc.com/view/093f5976cb98853492d4ce15c9b059b7/093f5976cb98853492d4ce15c9b059b73.gif)
![北郵計算機實習報告-3_第4頁](http://file4.renrendoc.com/view/093f5976cb98853492d4ce15c9b059b7/093f5976cb98853492d4ce15c9b059b74.gif)
![北郵計算機實習報告-3_第5頁](http://file4.renrendoc.com/view/093f5976cb98853492d4ce15c9b059b7/093f5976cb98853492d4ce15c9b059b75.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
北京郵電大學2013年計算機實習報告2011211205王旋北京郵電大學計算機實習報告學院:電子工程學院班號:2011211205學號:2011210986姓名:王旋目錄TOC\o"1-3"\h\u2064目錄 07402一、題目設計 176101、方差均值器 129796(1)語言選擇: 124450(2)原始設計思路 18581(3)實際設計改進及框圖 18028(4)程序運行界面 5123923、數(shù)字信號處理器 66913(1)程序使用語言 62474框圖如下圖5所示: 723361(5)編程感悟 8212454、多米諾骨牌動畫 95812(1)使用軟件 914714(2)原始設計思路 931574(3)實際設計改進 97024(4)動畫效果截圖 1075595.模擬信號發(fā)生器 1130144(1)使用語言 11135(2)原始設計思路 1122793(3)實際設計改進及框圖 122928(4)程序運行界面 133367(5)關于演示時報錯的說明及編程感悟 145929二、題目心得匯總 1432224三、程序源代碼匯總 15258471、方差均值器 1586192、數(shù)字波形生成器 1727093、數(shù)字信號處理器 37214915、函數(shù)信號發(fā)生器 402037四、實習總結 509806五、文獻資料 50
一、題目設計1、方差均值器設計一個平均值計數(shù)器,有一個輸入窗口,可迅速算出輸入的一系列數(shù)字的平均值和方差;同時支持加載外部文本,可算出文本中列出數(shù)字的平均值和方差。(1)語言選擇:visualbasic6.0中文企業(yè)版(2)原始設計思路運行exe程序后,出現(xiàn)界面包含文本框、四個CommandButton和結果顯示區(qū)。其中文本框可接收直接輸入信息;CommandButton分別是計算、載入、清除和退出,完成Click事件后,分別進行相應操作。計算結果會在顯示區(qū)顯示,而文本打開用Showopen,載入讀取時使用循環(huán)+條件,只將符合數(shù)字ASICII碼的進行載入并運算。點擊清除按鈕會清除文本框內信息和結果顯示區(qū)內容。點擊退出則結束程序。此外,可適當對其進行外觀美化。(3)實際設計改進及框圖載入文本用的是CommonDialog,選定文件后將文件路徑賦值給一個字符變量,而后用Open函數(shù)提取其內容。讀取數(shù)據(jù)時用split函數(shù),遇到“”則將值賦給Text1.text。框圖如下圖1:圖1.方差均值器程序框圖(4)程序運行界面如下圖2,輸入數(shù)據(jù)后即可進行運算,也可選擇載入文本或清除數(shù)據(jù)最后點退出程序則結束。圖2.程序運行界面2、數(shù)字波形生成器給出數(shù)字序列A,B的值和邏輯函數(shù)F的表達式(與,或,非,異或,同或等),生成A,B和F的波形圖。注:A,B序列可任意長度。(1)語言選擇:visualbasic6.0中文企業(yè)版(2)原始設計思路exe文件運行后會左半部分有兩個文本框(A、B),五種CommandButton(與、或、非、異或、同或運算符),實際運算公式(F=A_B);右半部分分別是A、B、F波形生成顯示按鈕和清除、退出按鈕。分別選擇五種CommandButton時,實際運算公式會出現(xiàn)作出相應顯示,再點擊波形生成會進行相應的運算(若A、B長度不一致,則空余部分置0)并通過PictureBox顯示波形結果。波形繪制可通過PictureBox中的Line控件實現(xiàn),且考慮到A、B序列為任意長度,生成的波形最好在彈出的對話框中出現(xiàn),并附上ScrollBalls2水平滾動效果。實際設計改進及框圖框圖如下圖3。圖3.數(shù)字波生成器程序框圖坐標的自動變換最后沒有選擇滾動效果,而是將坐標隨輸入數(shù)據(jù)的數(shù)量進行自動調整,即:將坐標用未知數(shù)定義。程序運行時,開始讀取數(shù)據(jù)時用的是數(shù)值,而后將其轉換為boolean代數(shù),這樣用戶即使輸入非01的數(shù)也可以進行運算了。(4)程序運行界面如下圖4,輸入數(shù)據(jù)點擊相應選項即可進行相應運算,如果沒有數(shù)據(jù)輸入也會進行報錯。圖4.程序運行界面(5)編程感悟如果繪制圖像類型時的選項用OptionButton完成,而不是靠分別建立不同的CommandButton控制,坐標建立時就可以使用相同代碼,能使代碼長度在很大程度上減小。在編程時應該加強對這一點的控制,盡量將可以共同使用的代碼提取到全局中,簡化代碼。3、數(shù)字信號處理器由數(shù)字信號處理原理可知:計算有限長數(shù)字序列線性卷積的公式為:若則取設計程序求出:1)輸出y(n)的值2)在圖形方式下以x軸為n,y軸分別為x(n),h(n),y(n)畫出其關系圖(圖上x軸單位長度可取5point,y軸單位長度可取20point)(1)程序使用語言Visualbasic6.0中文企業(yè)版(2)原始設計思路主界面包含y(n)顯示部分,三個PictureBox坐標圖顯示部分以及生成波形、清除波形和退出程序的三個CommandButton按鈕。運算時程序分為[0,9],[10,19],[19,35](n>19時波形都為0,不必全部顯示畫出)。坐標圖可使用Line和Shape控件實現(xiàn),通過循環(huán)語句連續(xù)畫點,實現(xiàn)圖像顯示。清除時將圖像置為“”即可。(3)實際設計改進及框圖框圖如下圖5所示:圖5.數(shù)字信號處理程序框圖(4)程序運行界面圖6.數(shù)字波生成器運行界面(5)編程感悟如果對程序出點的圖進行美化則程序會好很多。此外,應該再對y輸出值進行合適的排版。但是因為當時時間緊迫并未實行,這點很遺憾。
4、多米諾骨牌動畫每個同學自己設計一個多米諾骨牌動畫,時長不少于60秒。(1)使用軟件3dsmax2013(2)原始設計思路
動畫具體效果及創(chuàng)新性的劇情想法會在成品中展示,下面先介紹一下用該軟件實現(xiàn)多米諾骨牌的基本思路:先制作并導出SD格式的場景,并將其導入RF中結算。在MAX中制作一個平面和一列骨牌模型,將一側的牌稍微傾斜。將牌保存并導入到RF中,對其進行動力學操作,添加剛體重力使其在重力下運動。結算時當一張牌開始壓到另一張牌時,在MAX中改變兩者距離,通過重力值調節(jié)倒下速度。將SD文件生成關鍵幀,并可對已有動畫進行適當?shù)恼{節(jié)復制,使其達到所需時長。(3)實際設計改進主要是為了延長時長、改善效果而使用了兩個攝像機,增強動感。而后用繪聲繪影進行了剪輯。這里需注意,3dsmax導出視頻是avi格式,而繪聲繪影不能對avi進行處理,于是還需要用格式工廠或其他小插件轉換一下。(4)動畫效果截圖(如下圖7所示)圖7.domino動畫效果開始界面5.模擬信號發(fā)生器題目要求:1)調制方式:幅度調制,頻率調制。模擬信號和載波信號的頻率,幅值可變。調制信號頻率,幅值可變。2)畫出信號波形。3)對該信號采樣,并做文件存入磁盤中。4)可以適用多種調制方式。(1)使用語言Visualbasic中文企業(yè)版(2)原始設計思路主界面左半部分包括可選擇正弦、方波、三角波三種波形,幅度調制、頻率調制、直流偏置的三個輸入文本框。右半部分則有波形顯示部分和繪制、采樣、保存、重置、退出五個CommandButton。使用幅度調制可通過乘上輸入常數(shù)實現(xiàn),頻率調制是通過乘上合適的正弦函數(shù)對波形進行頻域搬移實現(xiàn)的,而直流偏置的添加只需要在每點加上固定的某一直流數(shù)值即可。采樣采用時域抽樣,使用循環(huán),可輸入采樣頻率(若不輸入則執(zhí)行默認的采樣值)。重選則回到程序起始未進行任何選擇的地方,退出則會關閉程序。繪圖使用Line、Shape控件,各種調制命令若沒有輸入值則都按制定的默認數(shù)值進行處理。每次繪制波形都會重新將左半部分四個數(shù)據(jù)讀取一次,若未選擇波形類型則彈出對話框報錯。保存可用Showsave語句保存Picture。(3)實際設計改進及框圖實際在設計時用了OptionButton進行了波形選擇,通過輸入原始信號機調諧信號的幅度、頻率進行運算繪圖。圖8.函數(shù)信號發(fā)生器程序框圖
(4)程序運行界面圖9.1函數(shù)信號發(fā)生器運行界面圖9.2函數(shù)信號發(fā)生器采樣界面(5)關于演示時報錯的說明及編程感悟如前面數(shù)字波形生成那道題一樣,如果將能公用的語句提取出來設成全局變量會很大程度上減小代碼長度。此外,這道題我在驗收時遇到了問題,無法生成三個基礎波形,報錯是“除數(shù)為0”,當初自己調試時并未如此,但是我很快地找到了問題所在。為了能使作出的圖形美觀,我的坐標參數(shù)都是以未知數(shù)定義的,其中生成波形時選取的周期數(shù)是以調諧函數(shù)周期數(shù)為標準的,這樣在計算周期時T=2*pi/w2(w2為調諧函數(shù)輸入頻率)。若沒有輸入,則除數(shù)為0運算不能進行。事實上,我開始調試時已經對此進行排查,在程序開頭有ifw2=0則使用w1進行坐標周期顯示數(shù)定義的判斷語句。但是不知道為什么展示的時候出現(xiàn)了錯誤。此處粘貼的源代碼為我重新調試修改過的源代碼,應該沒有問題。二、題目心得匯總為了實現(xiàn)某種功能而編寫程序時,應該將具體的問題抽象成機器容易實現(xiàn)的算法,然后用匯編語言將其具現(xiàn)化。應該擯棄一些自己解決問題的辦法而多向機器語言靠攏,利用已有的知識將其整合成能達成目的、實現(xiàn)功能的源代碼。編程時程序調試真的需要足夠的耐心并要保持冷靜。而且有時候,同樣的功能,不同的人寫出來就會很不一樣。雖然我實現(xiàn)了題目中所要求的功能,但是我的語句明顯太過冗余。這可能是因為對函數(shù)的掌握不夠多,編程經驗太少,缺乏編程技巧。此外,我認為修改程序代碼時很容易“牽一發(fā)而動全身”,所以修改語句時一定要小心謹慎,我的最后一道題驗收時出現(xiàn)錯誤很有可能就是這個原因,不過我已經對其進行了調整和修正。在動畫制作方面,我不得不承認,有時一個題目的實現(xiàn)并不是單純考驗你的技術是否過硬,還可以是你的美工、創(chuàng)意、藝術細胞等。如果說在前面的編程題里能體現(xiàn)創(chuàng)意的點比較少的話,這道題中你就可以獲得足夠的發(fā)展空間了??上У氖牵以诰幊躺匣ㄙM的時間太多,后期有些捉襟見肘,動畫被放倒了最后做,于是略顯倉促。不過好在能將軟件的功能都實現(xiàn)了,雖然后期用視頻剪輯軟件處理過了,但總體效果比起那些花費上時間做的同學還是差太多。三、程序源代碼匯總1、方差均值器PrivateSubCommand1_Click()IfText1.Text=""Then'判斷文本框是否為空MsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDimaa=Split(Text1.Text,"")DimbDimnumAsIntegernum=UBound(a)'讀取文本框內數(shù)據(jù)ReDimb(0ToUBound(a))AsSingleDimiAsIntegerFori=0ToUBound(b)b(i)=Val(a(i))NextiDimaveAsSingleDimsquAsSingleDimjAsIntegerave=0Forj=0Tonumave=ave+b(j)Ifj=numThenave=ave/(num+1)'計算平均值ExitForEndIfNextjsqu=0Forj=0Tonumsqu=squ+(b(j)-ave)*(b(j)-ave)Ifj=numThensqu=squ/(num+1)'計算方差ExitForEndIfNextjText2.Text=aveText3.Text=squEndIfEndSubPrivateSubCommand2_Click()DimsAsStringDimstrAsStringCommonDialog1.ShowOpenOpen(CommonDialog1.FileName)ForInputAs#1IfNotEOF(1)ThenInput#1,s'載入文本EndIfWhileNotEOF(1)s=s&vbCrLfInput#1,strs=s&strWendClose#1Text1.Text=sEndSubPrivateSubCommand3_Click()Text1.Text=""Text2.Text=""'清除功能Text3.Text=""EndSubPrivateSubCommand4_Click()End'退出程序EndSubPrivateSubForm_Load()Me.Picture=LoadPicture("D:\20130322vb\2.jpg")EndSub'載入背景2、數(shù)字波形生成器PrivateSubCommand1_Click()IfText1.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDimaa=Split(Text1.Text,"")DimbReDimb(0ToUBound(a))AsIntegerDimiAsIntegerFori=0ToUBound(b)b(i)=Val(a(i))Ifb(i)<>0Thenb(i)=1EndIfNextiEndIfDimnumAsIntegernum=UBound(b)+1DimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)f(i)=b(i)NextiPicture1.Scale(-1,5)-(num+2,-1)'定義坐標系Picture1.Line(0,0)-(num+1,0)'x軸Picture1.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture1.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture1.Print"x軸"Picture1.Line(0,0)-(0,4)'y軸Picture1.Line(0,4)-(-0.1,3.7)'左箭頭Picture1.Line(0,4)-(0.1,3.7)'右箭頭Picture1.Print"y軸"DimnAsIntegerForn=0TonumPicture1.Line(n,0)-(n,0.4)Picture1.CurrentX=n:Picture1.CurrentY=-0.2:Picture1.Printn'橫坐標標點NextnPicture1.Line(0,2)-(0.1,2)Picture1.CurrentX=-0.4:Picture1.CurrentY=1.5:Picture1.Print0Picture1.Line(0,1)-(0.1,1)Picture1.CurrentX=-0.4:Picture1.CurrentY=2.5:Picture1.Print1'縱坐標標點Iff(0)=1ThenPicture1.Line(0,2)-(1,2)Picture1.CurrentY=2ElsePicture1.Line(0,1)-(1,1)Picture1.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture1.Line(i+1,1)-(i+1,2)Picture1.Line(i+1,2)-(i+2,2)Picture1.CurrentY=2ElseIff(i)>f(i+1)ThenPicture1.Line(i+1,2)-(i+1,1)Picture1.Line(i+1,1)-(i+2,1)Picture1.CurrentY=1ElsePicture1.Line(i+1,Picture1.CurrentY)-(i+2,Picture1.CurrentY)EndIfNextiEndSubPrivateSubCommand10_Click()Label9.Caption="A同或B"IfText1.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima1'獲取text1的值a1=Split(Text1.Text,"")Dimb1ReDimb1(0ToUBound(a1))AsBooleanDimiAsIntegerFori=0ToUBound(b1)b1(i)=Val(a1(i))Ifb1(i)<>0Thenb1(i)=1EndIfNextiEndIfIfText2.Text=""Then'獲取text2的值MsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima2a2=Split(Text2.Text,"")Dimb2ReDimb2(0ToUBound(a2))AsBooleanFori=0ToUBound(b2)b2(i)=Val(a2(i))Ifb2(i)<>0Thenb2(i)=1EndIfNextiEndIfDimnumAsIntegerDimnum1AsIntegernum1=UBound(b1)+1Dimnum2AsIntegernum2=UBound(b2)+1Ifnum1>num2Then'對兩文本長度進行大小比較,將短缺者賦值為0num=num1Fori=num2+1TonumReDimPreserveb2(i)b2(i)=0NextiElseIfnum1<num2Thennum=num2Fori=num1+1TonumReDimPreserveb1(i)b1(i)=0NextiElse:num=num1EndIfDimgReDimg(0Tonum-1)AsBooleanFori=0To(num-1)g(i)=(b1(i)Eqvb2(i))'進行邏輯運算NextiDimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)If(g(i))Thenf(i)=1Else:f(i)=0'進行運算結果賦值EndIfNextiPicture3.Scale(-1,5)-(num+2,-1)'定義坐標系Picture3.Line(0,0)-(num+1,0)'x軸Picture3.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture3.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture3.Print"x軸"Picture3.Line(0,0)-(0,4)'y軸Picture3.Line(0,4)-(-0.1,3.7)'左箭頭Picture3.Line(0,4)-(0.1,3.7)'右箭頭Picture3.Print"y軸"DimnAsIntegerForn=0TonumPicture3.Line(n,0)-(n,0.4)Picture3.CurrentX=n:Picture3.CurrentY=-0.2:Picture3.Printn'橫坐標標點NextnPicture3.Line(0,2)-(0.1,2)Picture3.CurrentX=-0.4:Picture3.CurrentY=1.5:Picture3.Print0Picture3.Line(0,1)-(0.1,1)Picture3.CurrentX=-0.4:Picture3.CurrentY=2.5:Picture3.Print1'縱坐標標點Iff(0)=1ThenPicture3.Line(0,2)-(1,2)'畫第一點Picture3.CurrentY=2ElsePicture3.Line(0,1)-(1,1)Picture3.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture3.Line(i+1,1)-(i+1,2)Picture3.Line(i+1,2)-(i+2,2)'畫后部分點Picture3.CurrentY=2ElseIff(i)>f(i+1)ThenPicture3.Line(i+1,2)-(i+1,1)Picture3.Line(i+1,1)-(i+2,1)Picture3.CurrentY=1ElsePicture3.Line(i+1,Picture3.CurrentY)-(i+2,Picture3.CurrentY)EndIfNextiEndSubPrivateSubCommand11_Click()Label9.Caption="非A"IfText1.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima1'獲取text1的值a1=Split(Text1.Text,"")Dimb1ReDimb1(0ToUBound(a1))AsBooleanDimiAsIntegerFori=0ToUBound(b1)b1(i)=Val(a1(i))Ifb1(i)<>0Thenb1(i)=1EndIfNextiEndIfDimnumAsIntegerDimnum1AsIntegernum1=UBound(b1)+1num=num1DimgReDimg(0Tonum-1)AsBooleanFori=0To(num-1)g(i)=(Notb1(i))'進行邏輯運算NextiDimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)If(g(i))Thenf(i)=1Else:f(i)=0'進行運算結果賦值EndIfNextiPicture3.Scale(-1,5)-(num+2,-1)'定義坐標系Picture3.Line(0,0)-(num+1,0)'x軸Picture3.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture3.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture3.Print"x軸"Picture3.Line(0,0)-(0,4)'y軸Picture3.Line(0,4)-(-0.1,3.7)'左箭頭Picture3.Line(0,4)-(0.1,3.7)'右箭頭Picture3.Print"y軸"DimnAsIntegerForn=0TonumPicture3.Line(n,0)-(n,0.4)Picture3.CurrentX=n:Picture3.CurrentY=-0.2:Picture3.Printn'橫坐標標點NextnPicture3.Line(0,2)-(0.1,2)Picture3.CurrentX=-0.4:Picture3.CurrentY=1.5:Picture3.Print0Picture3.Line(0,1)-(0.1,1)Picture3.CurrentX=-0.4:Picture3.CurrentY=2.5:Picture3.Print1'縱坐標標點Iff(0)=1ThenPicture3.Line(0,2)-(1,2)'畫第一點Picture3.CurrentY=2ElsePicture3.Line(0,1)-(1,1)Picture3.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture3.Line(i+1,1)-(i+1,2)Picture3.Line(i+1,2)-(i+2,2)'畫后部分點Picture3.CurrentY=2ElseIff(i)>f(i+1)ThenPicture3.Line(i+1,2)-(i+1,1)Picture3.Line(i+1,1)-(i+2,1)Picture3.CurrentY=1ElsePicture3.Line(i+1,Picture3.CurrentY)-(i+2,Picture3.CurrentY)EndIfNextiEndSubPrivateSubCommand12_Click()Label9.Caption="非B"IfText1.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima2a2=Split(Text2.Text,"")Dimb2ReDimb2(0ToUBound(a2))AsBooleanFori=0ToUBound(b2)b2(i)=Val(a2(i))Ifb2(i)<>0Thenb2(i)=1EndIfNextiEndIfDimnumAsIntegerDimnum2AsIntegernum2=UBound(b2)+1num=num2DimgReDimg(0Tonum-1)AsBooleanFori=0To(num-1)g(i)=(Notb2(i))'進行邏輯運算NextiDimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)If(g(i))Thenf(i)=1Else:f(i)=0'進行運算結果賦值EndIfNextiPicture3.Scale(-1,5)-(num+2,-1)'定義坐標系Picture3.Line(0,0)-(num+1,0)'x軸Picture3.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture3.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture3.Print"x軸"Picture3.Line(0,0)-(0,4)'y軸Picture3.Line(0,4)-(-0.1,3.7)'左箭頭Picture3.Line(0,4)-(0.1,3.7)'右箭頭Picture3.Print"y軸"DimnAsIntegerForn=0TonumPicture3.Line(n,0)-(n,0.4)Picture3.CurrentX=n:Picture3.CurrentY=-0.2:Picture3.Printn'橫坐標標點NextnPicture3.Line(0,2)-(0.1,2)Picture3.CurrentX=-0.4:Picture3.CurrentY=1.5:Picture3.Print0Picture3.Line(0,1)-(0.1,1)Picture3.CurrentX=-0.4:Picture3.CurrentY=2.5:Picture3.Print1'縱坐標標點Iff(0)=1ThenPicture3.Line(0,2)-(1,2)'畫第一點Picture3.CurrentY=2ElsePicture3.Line(0,1)-(1,1)Picture3.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture3.Line(i+1,1)-(i+1,2)Picture3.Line(i+1,2)-(i+2,2)'畫后部分點Picture3.CurrentY=2ElseIff(i)>f(i+1)ThenPicture3.Line(i+1,2)-(i+1,1)Picture3.Line(i+1,1)-(i+2,1)Picture3.CurrentY=1ElsePicture3.Line(i+1,Picture3.CurrentY)-(i+2,Picture3.CurrentY)EndIfNextiEndSubPrivateSubCommand2_Click()IfText2.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDimaa=Split(Text2.Text,"")DimbReDimb(0ToUBound(a))AsIntegerDimiAsIntegerFori=0ToUBound(b)b(i)=Val(a(i))Ifb(i)<>0Thenb(i)=1EndIfNextiEndIfDimnumAsIntegernum=UBound(b)+1DimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)f(i)=b(i)NextiPicture2.Scale(-1,5)-(num+2,-1)'定義坐標系Picture2.Line(0,0)-(num+1,0)'x軸Picture2.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture2.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture2.Print"x軸"Picture2.Line(0,0)-(0,4)'y軸Picture2.Line(0,4)-(-0.1,3.7)'左箭頭Picture2.Line(0,4)-(0.1,3.7)'右箭頭Picture2.Print"y軸"DimnAsIntegerForn=0TonumPicture2.Line(n,0)-(n,0.4)Picture2.CurrentX=n:Picture2.CurrentY=-0.2:Picture2.Printn'橫坐標標點NextnPicture2.Line(0,2)-(0.1,2)Picture2.CurrentX=-0.4:Picture2.CurrentY=1.5:Picture2.Print0Picture2.Line(0,1)-(0.1,1)Picture2.CurrentX=-0.4:Picture2.CurrentY=2.5:Picture2.Print1'縱坐標標點Iff(0)=1ThenPicture2.Line(0,2)-(1,2)Picture2.CurrentY=2ElsePicture2.Line(0,1)-(1,1)Picture2.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture2.Line(i+1,1)-(i+1,2)Picture2.Line(i+1,2)-(i+2,2)Picture2.CurrentY=2ElseIff(i)>f(i+1)ThenPicture2.Line(i+1,2)-(i+1,1)Picture2.Line(i+1,1)-(i+2,1)Picture2.CurrentY=1ElsePicture2.Line(i+1,Picture2.CurrentY)-(i+2,Picture2.CurrentY)EndIfNextiEndSubPrivateSubCommand3_Click()Label9.Caption="A與B"IfText1.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima1'獲取text1的值a1=Split(Text1.Text,"")Dimb1ReDimb1(0ToUBound(a1))AsBooleanDimiAsIntegerFori=0ToUBound(b1)b1(i)=Val(a1(i))Ifb1(i)<>0Thenb1(i)=1EndIfNextiEndIfIfText2.Text=""Then'獲取text2的值MsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima2a2=Split(Text2.Text,"")Dimb2ReDimb2(0ToUBound(a2))AsBooleanFori=0ToUBound(b2)b2(i)=Val(a2(i))Ifb2(i)<>0Thenb2(i)=1EndIfNextiEndIfDimnumAsIntegerDimnum1AsIntegernum1=UBound(b1)+1Dimnum2AsIntegernum2=UBound(b2)+1Ifnum1>num2Then'對兩文本長度進行大小比較,將短缺者賦值為0num=num1Fori=num2+1TonumReDimPreserveb2(i)b2(i)=0NextiElseIfnum1<num2Thennum=num2Fori=num1+1TonumReDimPreserveb1(i)b1(i)=0NextiElse:num=num1EndIfDimgReDimg(0Tonum-1)AsBooleanFori=0To(num-1)g(i)=(b1(i)Andb2(i))'進行邏輯運算NextiDimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)If(g(i))Thenf(i)=1Else:f(i)=0'進行運算結果賦值EndIfNextiPicture3.Scale(-1,5)-(num+2,-1)'定義坐標系Picture3.Line(0,0)-(num+1,0)'x軸Picture3.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture3.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture3.Print"x軸"Picture3.Line(0,0)-(0,4)'y軸Picture3.Line(0,4)-(-0.1,3.7)'左箭頭Picture3.Line(0,4)-(0.1,3.7)'右箭頭Picture3.Print"y軸"DimnAsIntegerForn=0TonumPicture3.Line(n,0)-(n,0.4)Picture3.CurrentX=n:Picture3.CurrentY=-0.2:Picture3.Printn'橫坐標標點NextnPicture3.Line(0,2)-(0.1,2)Picture3.CurrentX=-0.4:Picture3.CurrentY=1.5:Picture3.Print0Picture3.Line(0,1)-(0.1,1)Picture3.CurrentX=-0.4:Picture3.CurrentY=2.5:Picture3.Print1'縱坐標標點Iff(0)=1ThenPicture3.Line(0,2)-(1,2)'畫第一點Picture3.CurrentY=2ElsePicture3.Line(0,1)-(1,1)Picture3.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture3.Line(i+1,1)-(i+1,2)Picture3.Line(i+1,2)-(i+2,2)'畫后部分點Picture3.CurrentY=2ElseIff(i)>f(i+1)ThenPicture3.Line(i+1,2)-(i+1,1)Picture3.Line(i+1,1)-(i+2,1)Picture3.CurrentY=1ElsePicture3.Line(i+1,Picture3.CurrentY)-(i+2,Picture3.CurrentY)EndIfNextiEndSubPrivateSubCommand4_Click()Picture1.ClsEndSubPrivateSubCommand5_Click()Picture2.ClsEndSubPrivateSubCommand6_Click()Picture3.ClsEndSubPrivateSubCommand7_Click()EndEndSubPrivateSubCommand8_Click()Label9.Caption="A異或B"IfText1.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima1'獲取text1的值a1=Split(Text1.Text,"")Dimb1ReDimb1(0ToUBound(a1))AsBooleanDimiAsIntegerFori=0ToUBound(b1)b1(i)=Val(a1(i))Ifb1(i)<>0Thenb1(i)=1EndIfNextiEndIfIfText2.Text=""Then'獲取text2的值MsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima2a2=Split(Text2.Text,"")Dimb2ReDimb2(0ToUBound(a2))AsBooleanFori=0ToUBound(b2)b2(i)=Val(a2(i))Ifb2(i)<>0Thenb2(i)=1EndIfNextiEndIfDimnumAsIntegerDimnum1AsIntegernum1=UBound(b1)+1Dimnum2AsIntegernum2=UBound(b2)+1Ifnum1>num2Then'對兩文本長度進行大小比較,將短缺者賦值為0num=num1Fori=num2+1TonumReDimPreserveb2(i)b2(i)=0NextiElseIfnum1<num2Thennum=num2Fori=num1+1TonumReDimPreserveb1(i)b1(i)=0NextiElse:num=num1EndIfDimgReDimg(0Tonum-1)AsBooleanFori=0To(num-1)g(i)=(b1(i)Xorb2(i))'進行邏輯運算NextiDimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)If(g(i))Thenf(i)=1Else:f(i)=0'進行運算結果賦值EndIfNextiPicture3.Scale(-1,5)-(num+2,-1)'定義坐標系Picture3.Line(0,0)-(num+1,0)'x軸Picture3.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture3.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture3.Print"x軸"Picture3.Line(0,0)-(0,4)'y軸Picture3.Line(0,4)-(-0.1,3.7)'左箭頭Picture3.Line(0,4)-(0.1,3.7)'右箭頭Picture3.Print"y軸"DimnAsIntegerForn=0TonumPicture3.Line(n,0)-(n,0.4)Picture3.CurrentX=n:Picture3.CurrentY=-0.2:Picture3.Printn'橫坐標標點NextnPicture3.Line(0,2)-(0.1,2)Picture3.CurrentX=-0.4:Picture3.CurrentY=1.5:Picture3.Print0Picture3.Line(0,1)-(0.1,1)Picture3.CurrentX=-0.4:Picture3.CurrentY=2.5:Picture3.Print1'縱坐標標點Iff(0)=1ThenPicture3.Line(0,2)-(1,2)'畫第一點Picture3.CurrentY=2ElsePicture3.Line(0,1)-(1,1)Picture3.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture3.Line(i+1,1)-(i+1,2)Picture3.Line(i+1,2)-(i+2,2)'畫后部分點Picture3.CurrentY=2ElseIff(i)>f(i+1)ThenPicture3.Line(i+1,2)-(i+1,1)Picture3.Line(i+1,1)-(i+2,1)Picture3.CurrentY=1ElsePicture3.Line(i+1,Picture3.CurrentY)-(i+2,Picture3.CurrentY)EndIfNextiEndSubPrivateSubCommand9_Click()Label9.Caption="A或B"IfText1.Text=""ThenMsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima1'獲取text1的值a1=Split(Text1.Text,"")Dimb1ReDimb1(0ToUBound(a1))AsBooleanDimiAsIntegerFori=0ToUBound(b1)b1(i)=Val(a1(i))Ifb1(i)<>0Thenb1(i)=1EndIfNextiEndIfIfText2.Text=""Then'獲取text2的值MsgBox"youhavn'tputonnumber!",5+16+256,"error"ElseDima2a2=Split(Text2.Text,"")Dimb2ReDimb2(0ToUBound(a2))AsBooleanFori=0ToUBound(b2)b2(i)=Val(a2(i))Ifb2(i)<>0Thenb2(i)=1EndIfNextiEndIfDimnumAsIntegerDimnum1AsIntegernum1=UBound(b1)+1Dimnum2AsIntegernum2=UBound(b2)+1Ifnum1>num2Then'對兩文本長度進行大小比較,將短缺者賦值為0num=num1Fori=num2+1TonumReDimPreserveb2(i)b2(i)=0NextiElseIfnum1<num2Thennum=num2Fori=num1+1TonumReDimPreserveb1(i)b1(i)=0NextiElse:num=num1EndIfDimgReDimg(0Tonum-1)AsBooleanFori=0To(num-1)g(i)=(b1(i)Orb2(i))'進行邏輯運算NextiDimfReDimf(0Tonum-1)AsIntegerFori=0To(num-1)If(g(i))Thenf(i)=1Else:f(i)=0'進行運算結果賦值EndIfNextiPicture3.Scale(-1,5)-(num+2,-1)'定義坐標系Picture3.Line(0,0)-(num+1,0)'x軸Picture3.Line(num+1,0)-(num+1-0.5,0.1)'上箭頭Picture3.Line(num+1,0)-(num+1-0.5,-0.1)'下箭頭Picture3.Print"x軸"Picture3.Line(0,0)-(0,4)'y軸Picture3.Line(0,4)-(-0.1,3.7)'左箭頭Picture3.Line(0,4)-(0.1,3.7)'右箭頭Picture3.Print"y軸"DimnAsIntegerForn=0TonumPicture3.Line(n,0)-(n,0.4)Picture3.CurrentX=n:Picture3.CurrentY=-0.2:Picture3.Printn'橫坐標標點NextnPicture3.Line(0,2)-(0.1,2)Picture3.CurrentX=-0.4:Picture3.CurrentY=1.5:Picture3.Print0Picture3.Line(0,1)-(0.1,1)Picture3.CurrentX=-0.4:Picture3.CurrentY=2.5:Picture3.Print1'縱坐標標點Iff(0)=1ThenPicture3.Line(0,2)-(1,2)'畫第一點Picture3.CurrentY=2ElsePicture3.Line(0,1)-(1,1)Picture3.CurrentY=1EndIfFori=0Tonum-2Iff(i)<f(i+1)ThenPicture3.Line(i+1,1)-(i+1,2)Picture3.Line(i+1,2)-(i+2,2)'畫后部分點Picture3.CurrentY=2ElseIff(i)>f(i+1)ThenPicture3.Line(i+1,2)-(i+1,1)Picture3.Line(i+1,1)-(i+2,1)Picture3.CurrentY=1ElsePicture3.Line(i+1,Picture3.CurrentY)-(i+2,Picture3.CurrentY)EndIfNextiEndSubPrivateSubForm_Load()Me.Picture=LoadPicture("D:\20130322vb\2.jpg")EndSub3、數(shù)字信號處理器PrivateSubCommand1_Click()DimiAsIntegerDimnAsIntegerPicture1.Scale(-1,5)-(20,-1)'定義坐標系Picture1.Line(0,0)-(19,0)'x軸Picture1.Line(19,0)-(18.5,0.1)'上箭頭Picture1.Line(19,0)-(18.5,-0.1)'下箭頭Picture1.Print"x軸"Picture1.Line(0,0)-(0,4)'y軸Picture1.Line(0,4)-(-0.1,3.7)'左箭頭Picture1.Line(0,4)-(0.1,3.7)'右箭頭Picture1.Print"y軸"Fori=0To9xi=1Picture1.PSet(i,1),vbBlack'畫x(n)的圖像NextiForn=0To9Picture1.Line(n,0)-(n,0.1)Picture1.CurrentX=n:Picture1.CurrentY=-0.2:Picture1.PrintnNextnPicture1.Line(0,1)-(0.2,1)EndSubPrivateSubCommand2_Click()DimiAsIntegerDimnAsIntegerPicture2.Scale(-1,14)-(22,-1)Picture2.Line(0,0)-(21,0)Picture2.Line(21,0)-(20.5,0.5)Picture2.Print"x軸"Picture2.Line(21,0)-(20.5,-0.5)Picture2.Line(0,0)-(0,13)Picture2.Line(0,13)-(-0.5,12.5)Picture2.Line(0,13)-(0.5,12.5)Picture2.Print"y軸"Forn=0To20Picture2.PSet(n,n/2),vbBlack'畫h(n)的圖像NextnForn=0To20Step2Picture2.Line(n,0)-(n,0.3)Picture2.CurrentX=n:Picture2.CurrentY=0:Picture2.PrintnNextnForn=1To12Step2Picture2.Line(0,n)-(0.4,n)Picture2.CurrentX=-0.2:Picture2.CurrentY=n:Picture2.PrintnNextnEndSubPrivateSubCommand3_Click()Picture3.Scale(-1,80)-(44,-5)Picture3.Line(0,0)-(44,0)Picture3.Line(44,0)-(43.5,0.5)Picture3.Print"x軸"Picture3.Line(44,0)-(43.5,-0.5)Picture3.Line(0,0)-(0,80)Picture3.Line(0,80)-(-0.5,79.5)Picture3.Line(0,80)-(0.5,79.5)Picture3.Print"y軸"Forn=0To28Sum=0Form=0TonIfm<=9Thenxn=1Elsexn=0EndIfIf(n-m)<=19Thenhn=0.5*(n-m)Elsehn=0EndIfSum=Sum+xn*hnNextmPicture3.PSet(n,Sum),vbBlackNextnForn=0To40Step4Picture3.Line(n,0)-(n,1)Picture3.CurrentX=n:Picture3.CurrentY=0:Picture3.PrintnNextnForn=1To77Step5Picture3.Line(0,n)-(0.4,n)Picture3.CurrentX=-0.2:Picture3.CurrentY=n:Picture3.PrintnNextnEndSubPrivateSubCommand4_Click()Forn=0To28Sum=0Form=0TonIfm<=9Thenxn=1Elsexn=0EndIfIfn-m<=19Thenhn=0.5*(n-m)Elsehn=0EndIfSum=Sum+xn*hnNextmLabel7.Caption=Label7.Caption+"y("+Format(n)+")="+Format(Sum)+";"'輸出y(n)的值Label7.Font.Size=11Label7.Font.Bold=TrueNextnEndSubPrivateSubCommand5_Click()Picture1.ClsEndSubPrivateSubCommand6_Click()Picture2.ClsEndSubPrivateSubCommand7_Click()Picture3.ClsEndSubPrivateSubCommand8_Click()Label7.Caption=""EndSubPrivateSubCommand9_Click()EndEndSubPrivateSubForm_Load()Me.Picture=LoadPicture("D:\20130322vb\2.jpg")EndSub5、函數(shù)信號發(fā)生器Dima1,a2,w1,w2,d,A,tAsDoubleDimL,H,T1AsSingleConstpi=3.14159PrivateSubCommand1_Click()Picture1.Clsa1=Val(Text1.Text)a2=Val(Text3.Text)w1=Val(Text2.Text)w2=Val(Text4.Text)d=Val(Text5.Text)Ifa2=0Thena2=1EndIfIfOption1.ValueThenIfw2=0Then'判斷w2是否為0L=6ElseL=2*pi*4/w2EndIfIfd<0ThenMsgBox"請輸入合法的直流偏置!",5+16+256,"error"'判斷的d是否為負ElseH=1.5*Abs(a1)*Abs(a2)+Abs(d)Picture1.Scale(-1,H+1)-(L+2,-H)'定義坐標系Picture1.Line(0,0)-(L+1,0)'x軸Picture1.Line(L+1,0)-(L+1-0.5,0.1)'上箭頭Picture1.Line(L+1,0)-(L+1-0.5,-0.1)'下箭頭Picture1.Print"時間/t"Picture1.Line(0,-H)-(0,H)'y軸Picture1.Lin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年蘭州從業(yè)資格證貨運題庫答案
- 智能穿戴設備合作開發(fā)合同(2篇)
- 2025年寶雞三和職業(yè)學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年四川電力職業(yè)技術學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025至2031年中國石英管陶瓷加熱管行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國汽車后地毯行業(yè)投資前景及策略咨詢研究報告
- 水土保持與生態(tài)環(huán)境-深度研究
- 2025年度跨境貿易法律風險防控委托代理合同
- 2025年度私立高中教師聘用合同協(xié)議
- 二零二五年度消防報警系統(tǒng)維護保養(yǎng)與升級合同
- 2024年全國職業(yè)院校技能大賽高職組(研學旅行賽項)考試題庫(含答案)
- 電器儀表人員培訓課件
- 2025年中小學春節(jié)安全教育主題班會課件
- 計量經濟學練習題
- 2025年全國高考體育單招考試模擬政治試卷試題(含答案詳解)
- 傳統(tǒng)春節(jié)習俗
- 反走私課件完整版本
- 四年級下冊數(shù)學知識點總結
- 鐵未來商業(yè)模擬挑戰(zhàn)賽規(guī)則與流程
- 氯諾昔康針劑在圍術期鎮(zhèn)痛與其它市場應用(代表培訓完整版)
- 經歷是流經裙邊的水
評論
0/150
提交評論