




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
VisualBasic應用任務教程數組與過程學習指導在實際應用中經常要處理同一性質的成批數據,需要用到一種重要的數據類型—數組,它可以將一批數據看成一個整體,用不同的下標加以區分。過程是一段程序代碼,是一個相對獨立的邏輯模塊,可以被多次調用,完成重復的任務或共享任務。本章介紹數組與過程的相關內容。效果描述
設計程序“計算平均分”。某班有50名學生,求出該班學生的平均成績,然后統計高于平均分的人數,學生人數由輸入對話框輸入。【任務1】計算平均分【任務1】計算平均分
設計分析
這個問題用簡單變量結合For…Next語句,求平均成績很簡單,但若要統計高于平均分的人數,則無法實現。因為存放學生成績的簡單變量只能存放一個學生的成績,存入后一個學生的成績,就把前一個學生的成績覆蓋了,要統計高于平均分的人數,必須再重復輸入50個學生的成績,這樣輸入數據的工作量不但成倍增加,而且若本次輸入的成績與上次不同,則統計的結果肯定不正確。因此本程序采用數組解決問題,定義一個含有50個元素的數組,將50名學生的成績存到50個數組元素變量中,然后再求平均值和高于平均分的人數。【任務1】計算平均分1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼完成步驟【任務1】計算平均分知識鏈接在實際應用中經常要處理同一性質的大量、成批數據,如果用簡單變量進行程序的編寫,那是不堪忍受的。為了簡化編程,引入了數組。一、數組1.數組的概念數組不是一種數據類型,而是一組相同類型的變量的集合。【任務1】計算平均分2.數組的定義數組應當先定義后使用。在計算機中,數組占據一塊內存區域,數組名是這個區域的名稱,區域的每個單元都有自己的地址,該地址用下標表示。定義數組的目的就是通知計算機為其留出所需要的空間。第一種格式Dim數組名(下標上界)As類型名稱第二種格式Dim數組名([下界to]上界[,[下界to]上界]……)As類型名稱【任務1】計算平均分3.數組的引用數組的引用通常是指對數組元素的引用,其方法是,在數組后面的括號中指定下標,例:
X(8),Y(2,3),X%(3)4.數組元素的輸入數組元素的輸入通常是利用For循環或Do…While等循環語句,在循環體中調用InputBox函數或使用賦值語句來實現數據的輸入。在循環結構中,每循環一次可以實現一個數組元素的輸入,那么依據數組元素的個數決定循環的次數,可實現所有數組元素的輸入?!救蝿?】打印矩陣
設計程序“打印矩陣”。單擊窗體時,由用戶輸入16個數據做為4×4矩陣的每個元素的數值,將這個矩陣打印出來,并且計算出左上—右下對角線上的數據和。運行結果如圖所示。效果描述
【任務2】打印矩陣在本程序中,由于輸出的是4行4列的矩陣,應首先定義一個二維數組,由輸入對話框輸入數據,采用二重循環控制將輸入的16個數據依次存放到數組中。對于對角線上的數據求和,由于對角線上的元素為arr(1,1)、arr(2,2)、arr(3,3)和arr(4,4),行列值相同,采用一重循環控制即可。設計分析
【任務2】打印矩陣1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼完成步驟【任務2】打印矩陣一、二維數組1.格式在定義二維數組時,VB也提供了兩種格式。格式1:Dim數組名(第一維下標上界,第二維下標上界)As類型名稱格式2:Dim數組名([下界to]上界[,[下界to]上界]……)As類型名稱知識鏈接【任務2】打印矩陣2.輸入方法多維數組元素的輸入通過多重循環來實現。由于VB中的數組是按行存儲的,因此把控制數組第一維的循環變量放在最外層循環中。二、數組元素的輸出數組元素的輸出通常是利用For循環或Do…While等循環語句,在循環體中用Print方法直接輸出到窗體上或用Label控件的Caption屬性顯示或用TextBox控件的Text屬性顯示?!緫锰岣?】冒泡法排序效果描述
設計程序“冒泡法排序”。利用隨機函數產生10個兩位數,用冒泡法完成10個隨機數據的升序排列。結果如圖所示?!緫锰岣?】冒泡法排序設計分析
冒泡法排序思想如下:(1)先假設第1個數據最小,依次同第2、第3、…、第N個數據進行比較,一旦第1個數據大于其它值則交換。這樣,第1輪比較完畢,找出了最小數據作為第1個數據。(2)以第2個數據為最小數據,依次同第3、第4、…、第N個數據進行比較,若第2個數據大于其它值則交換。這樣,第2輪交換完畢,則找出第二小的數據作為第2個數據。(3)依此類推,第N-1輪比較將找出第N-1小的數據,剩下的一個數據就是最大數,排列在最后?!緫锰岣?】冒泡法排序完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務3】統計成績分布效果描述
設計程序“統計成績分布”。統計全班某一門課程的成績分布,以10為分一段,其中100分自成一段,共計11段,班級人數由輸入對話框輸入,要求按從高分到低分的順序輸出?!救蝿?】統計成績分布設計分析
在本程序中,學生成績可存放在一維數組中,但學生的總人數不確定,事先無法確認到底需要多大的數組,所以希望能夠在運行時動態地改變數組的大小,這就要用到動態數組。先用Dim語句定義一個無下標值的動態數組,在運行過程中用戶輸入學生的人數后,再用重定義命令ReDim定義數組的大小。數組的下界和上界用LBOUND和UBOUND函數求出?!救蝿?】統計成績分布完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務3】統計成績分布知識鏈接一、動態數組在定義數組時,一般都已經指定了上下界,這樣數組的大小就確定了。但是有時可能事先無法確認到底需要多大的數組,所以希望能夠在運行時動態地改變數組的大小,這就要用到動態數組。使用動態數組的優點是可以根據用戶需要,有效地利用存儲空間。這是因為靜態數組是在程序編譯時分配存儲空間,而動態數組是在程序執行時分配存儲空間。例如,可以短時間地使用一個大數組,然后在不使用這個數組時內存空間釋放給系統?!救蝿?】統計成績分布建立動態數組的方法是:在窗體層、標準模塊或過程中先聲明一個數組(無下標值)。格式為:Public|Private|Dim動態數組名()[AS類型]在過程中使用ReDim語句指明該數組的大小,分配實際的元素個數。格式為:ReDim[Preserve]數組名([下界to]上界)[As類型]知識鏈接【任務4】賬號輸入效果描述
設計程序“賬戶輸入”。建立一組專用于輸入賬號的數字按鈕。運行界面見圖所示?!救蝿?】賬號輸入設計分析
首先,考察賬號的數字按鈕的使用情況:功能1:按下數字鍵,在液晶屏上會出現相應的數字。功能2:按下清零鍵,計算器清除所保存的運算數。本程序中數字命令按鈕采用控件數組創建??丶到M由一組相同類型的控件組成,這些控件共用一個相同的控件名,共享同樣的事件過程?!救蝿?】賬號輸入完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務4】賬號輸入知識鏈接一、控件數組在這個程序中用到了另外一種數組--控件數組??丶到M通常用于若干個控件執行相似操作的情況。1.控件數組基本概念控件數組是指在同一容器中,擁有相同的名稱、相同事件過程的一組相同類型的控件。控件數組中的每一個控件都具有相同的控件名稱,使用它們的Index屬性能夠惟一地確定每個控件數組元素?!救蝿?】賬號輸入知識鏈接2.創建控件數組創建控件數組有兩種方法:(1)在完成步驟中創建控件數組(2)在運行時添加控件數組【任務5】求最高分和最低分效果描述
設計程序“求最高分和最低分”。輸入10名學生的成績,用標簽顯示在窗體上,單擊“查找”按鈕,求出他們的最高分和最低分,并將其值顯示在相應的標簽中。單擊“結束”按鈕,結束程序的運行。程序運行界面如圖所示。【任務5】求最高分和最低分設計分析
在前面的程序中,我們用For…Next語句和InputBox函數多次對數組的元素進行了賦值。在這個程序中,我們可以運用數組中一個專用函數Array()函數來對數組元素進行賦值。Array()函數減少了循環語句的使用,使數組元素的值更加直觀。同時運用專門用于數組或對象“集合”的循環語句ForEach…Next完成數組元素的操作?!救蝿?】求最高分和最低分完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務5】求最高分和最低分知識鏈接一、Array函數前面已經介紹過如何用賦值語句或InputBox函數為數組元素賦值,這兩種方法都需要占用運行時間,影響效率。為此,VB提供了Array函數。利用該函數,可以使數組在程序運行之前初始化,得到初值。Array函數用來為數組元素賦值,即把一個數據集讀入某個數組。其格式為:數組變量名=Array(數組元素值)【任務5】求最高分和最低分知識鏈接二、ForEach…Next語句ForEach…Next語句類似于For…Next語句,兩者都用來執行指定重復次數的一組操作,但ForEach…Next語句專門用于數組或對象“集合”,其一般格式為:ForEach成員In數組循環體[ExitFor]……Next[成員]【應用提高2】對換數據效果描述
設計程序“對換數據”。單擊“原始數據”按鈕在窗體上顯示10個數據,并存放在一維數組中;單擊“對換數據”按鈕,將其前5個元素與后5個元素對換,即:第一個元素與第十個元素對換,第二個元素與第九個元素對換……第五個元素與第六個元素對換,并將對換后結果顯示在窗體上。運行結果如圖所示。【應用提高2】對換數據設計分析
對于原始數據的賦值我們仍舊可以運用數組中一個專用函數Array()函數來對數組元素進行賦值,這樣可以使數組元素的值更加直觀,如果需要修改也比較方便。對換數據采用循環控制進行數據的交換?!緫锰岣?】對換數據完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務6】輸出問候信息效果描述
設計程序“輸出問候信息”。設計一個窗體,在文本框中輸入任意一個人的姓名,單擊命令按鈕輸出問候該人的消息框。運行界面如圖所示。【任務6】輸出問候信息設計分析
本程序可以建立一個過程,用于輸出問候某人的消息框,單擊命令按鈕時調用該過程輸出問候語?!救蝿?】輸出問候信息完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務6】輸出問候信息知識鏈接一、過程過程是程序中具有相對獨立性和封閉性的一組代碼。若程序中有多處使用相同的代碼段,可以編寫一個過程,程序中的其他部分可以調用這些過程,而無須重新編寫代碼。在VB中有Sub過程和Function過程,其中Sub過程又包含事件過程和通用過程。(1)Sub過程:完成一定的操作和功能,無返回值。(2)Function過程:相當于用戶自定義函數,調用后返回一個值?!救蝿?】輸出問候信息1.通用過程的概念有時多個不同的事件過程可能要使用同一段程序代碼,這時可將這段程序代碼獨立編寫為一個共用的過程,稱為通用過程。它獨立于事件過程之外,可供其他事件過程調用。通用過程一般由應用程序來調用。2.通用過程的定義(1)格式:[Private|Public][Static]Sub過程名[(形參列表)]過程語句EndSub【任務6】輸出問候信息3.通用過程的創建建立通用過程有兩種方法:一種是使用“添加過程”對話框,另一種是在代碼編輯器窗口中直接創建。4.通用過程的調用每次調用過程都會執行Sub與EndSub之間的語句序列。調用過程有兩種方法:使用Call語句調用,格式為:Call過程名([實參列表])使用過程名調用,格式為:過程名[實參列表]【任務7】求階乘效果描述
設計程序“求階乘”。編寫程序,計算
的值【任務7】求階乘1設計分析
從上面的數學表達式我們可以看出,要求出表達式的值,必須先分別求出1~10的階乘。而求階乘的算法都是一樣的,這樣在程序中就要重復出現多次一樣的代碼。為了簡化程序,我們可以將這段重復的代碼單獨提取出來,用一個Function過程來實現求階乘這一功能,然后通過調用函數過程來計算每個數的階乘?!救蝿?】求階乘1完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務7】求階乘1知識鏈接1.Function過程的定義格式:[Private|Public][Static]Function函數名[(形參列表)][As類型]過程語句EndFunction2.Function過程的調用Function過程的調用有兩種方法:1把它看作一個數據,即直接放在賦值號右端。2可直接作為參數出現在調用過程或函數中?!救蝿?】計算三角形面積與周長效果描述
設計程序“計算三角形面積與周長”。通過輸入的三角形的三條邊,計算出三角形的面積與周長?!救蝿?】計算三角形面積與周長設計分析
本程序可將計算三角形面積和周長的程序代碼創建成兩個過程,用戶輸入三角形三條邊長后,單擊“計算”命令按鈕時調用這兩個過程計算面積和周長。在創建過程時,需要定義四個參數,其中三個參數傳遞三角形的三邊長,一個參數傳遞三角形的面積或周長。由于傳遞三角形的三邊長不需要有返回值,而傳遞面積或周長需要有返回值,所以傳遞三角形的三邊長的參數要定義為按值傳遞方式,而傳遞面積或周長的參數則要定義為按地址傳遞方式?!救蝿?】計算三角形面積與周長完成步驟1.創建界面按題目要求創建界面2.過程代碼編寫并輸入過程代碼【任務8】計算三角形面積與周長一、參數傳遞在定義通用過程或Function過程時,形參列表中的每個變量名就是形式參數,簡稱形參,多個形參之間用逗號分隔。在調用通用過程或函數過程時,在實參列表中列出的常量、變量或表達式等就是實際參數,簡稱實參。多個實參之間用逗號分隔。參數傳遞就是在調用一個過程時,把實際參數傳送給形式參數,然后按實際參數執行調用的過程。在調用一個有參數的過程時,必須完成形參與實參的結合,形參列表和實參列表中的對應變量名可以不同,但實參和形參的個數、順序和數據類型必須相符。知識鏈接【任務8】計算三角形面積與周長形參列表中每個參數的一般格式為:[ByVal|ByRe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO 15118-10:2025 EN Road vehicles - Vehicle to grid communication interface - Part 10: Physical layer and data link layer requirements for single-pair Ethernet
- 【正版授權】 IEC 62304:2006 EN-D Medical device software - Software life cycle processes
- 【正版授權】 IEC 61834-2:1998 FR-D Recording - Helical-scan digital video cassette recording system using 6,35 mm magnetic tape for consumer use 525-60,625-50,1125-60 and 1250-50 syst
- 【正版授權】 IEC 60335-2-73:2002+AMD1:2006 CSV FR-D Household and similar electrical appliances - Safety - Part 2-73: Particular requirements for fixed immersion heaters
- 皮瓣移植患者護理
- 學前教育一日生活
- 大班整合課程:我和我的外婆
- 汽車行業的營銷案
- 2025年中學校青年老師培育實施方案
- 2025年學校五班級上冊音樂教學工作方案
- 博物館布展項目施工組織設計
- 大學藻類課件教學課件
- 報關實務-教學課件 第一章 海關概念
- OECD -二十國集團 經合組織公司治理原則2023
- 體育中國學習通超星期末考試答案章節答案2024年
- 化妝品生產質量管理規范與流程
- 矩形的判定公開課公開課獲獎課件百校聯賽一等獎課件
- GB/T 39673.6-2024住宅和樓宇電子系統(HBES)及樓宇自動化和控制系統(BACS)第6部分:規劃和安裝要求
- 醫療機構消防安全突出火災風險和檢查要點
- 焊接工程勞務分包
- 中國礦業大學《自然辯證法》2022-2023學年期末試卷
評論
0/150
提交評論