Visual Basic應(yīng)用任務(wù)教程課件:數(shù)組與過程_第1頁
Visual Basic應(yīng)用任務(wù)教程課件:數(shù)組與過程_第2頁
Visual Basic應(yīng)用任務(wù)教程課件:數(shù)組與過程_第3頁
Visual Basic應(yīng)用任務(wù)教程課件:數(shù)組與過程_第4頁
Visual Basic應(yīng)用任務(wù)教程課件:數(shù)組與過程_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

VisualBasic應(yīng)用任務(wù)教程數(shù)組與過程學(xué)習(xí)指導(dǎo)在實際應(yīng)用中經(jīng)常要處理同一性質(zhì)的成批數(shù)據(jù),需要用到一種重要的數(shù)據(jù)類型—數(shù)組,它可以將一批數(shù)據(jù)看成一個整體,用不同的下標(biāo)加以區(qū)分。過程是一段程序代碼,是一個相對獨立的邏輯模塊,可以被多次調(diào)用,完成重復(fù)的任務(wù)或共享任務(wù)。本章介紹數(shù)組與過程的相關(guān)內(nèi)容。效果描述

設(shè)計程序“計算平均分”。某班有50名學(xué)生,求出該班學(xué)生的平均成績,然后統(tǒng)計高于平均分的人數(shù),學(xué)生人數(shù)由輸入對話框輸入。【任務(wù)1】計算平均分【任務(wù)1】計算平均分

設(shè)計分析

這個問題用簡單變量結(jié)合For…Next語句,求平均成績很簡單,但若要統(tǒng)計高于平均分的人數(shù),則無法實現(xiàn)。因為存放學(xué)生成績的簡單變量只能存放一個學(xué)生的成績,存入后一個學(xué)生的成績,就把前一個學(xué)生的成績覆蓋了,要統(tǒng)計高于平均分的人數(shù),必須再重復(fù)輸入50個學(xué)生的成績,這樣輸入數(shù)據(jù)的工作量不但成倍增加,而且若本次輸入的成績與上次不同,則統(tǒng)計的結(jié)果肯定不正確。因此本程序采用數(shù)組解決問題,定義一個含有50個元素的數(shù)組,將50名學(xué)生的成績存到50個數(shù)組元素變量中,然后再求平均值和高于平均分的人數(shù)。【任務(wù)1】計算平均分1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼完成步驟【任務(wù)1】計算平均分知識鏈接在實際應(yīng)用中經(jīng)常要處理同一性質(zhì)的大量、成批數(shù)據(jù),如果用簡單變量進行程序的編寫,那是不堪忍受的。為了簡化編程,引入了數(shù)組。一、數(shù)組1.?dāng)?shù)組的概念數(shù)組不是一種數(shù)據(jù)類型,而是一組相同類型的變量的集合?!救蝿?wù)1】計算平均分2.?dāng)?shù)組的定義數(shù)組應(yīng)當(dāng)先定義后使用。在計算機中,數(shù)組占據(jù)一塊內(nèi)存區(qū)域,數(shù)組名是這個區(qū)域的名稱,區(qū)域的每個單元都有自己的地址,該地址用下標(biāo)表示。定義數(shù)組的目的就是通知計算機為其留出所需要的空間。第一種格式Dim數(shù)組名(下標(biāo)上界)As類型名稱第二種格式Dim數(shù)組名([下界to]上界[,[下界to]上界]……)As類型名稱【任務(wù)1】計算平均分3.?dāng)?shù)組的引用數(shù)組的引用通常是指對數(shù)組元素的引用,其方法是,在數(shù)組后面的括號中指定下標(biāo),例:

X(8),Y(2,3),X%(3)4.?dāng)?shù)組元素的輸入數(shù)組元素的輸入通常是利用For循環(huán)或Do…While等循環(huán)語句,在循環(huán)體中調(diào)用InputBox函數(shù)或使用賦值語句來實現(xiàn)數(shù)據(jù)的輸入。在循環(huán)結(jié)構(gòu)中,每循環(huán)一次可以實現(xiàn)一個數(shù)組元素的輸入,那么依據(jù)數(shù)組元素的個數(shù)決定循環(huán)的次數(shù),可實現(xiàn)所有數(shù)組元素的輸入。【任務(wù)2】打印矩陣

設(shè)計程序“打印矩陣”。單擊窗體時,由用戶輸入16個數(shù)據(jù)做為4×4矩陣的每個元素的數(shù)值,將這個矩陣打印出來,并且計算出左上—右下對角線上的數(shù)據(jù)和。運行結(jié)果如圖所示。效果描述

【任務(wù)2】打印矩陣在本程序中,由于輸出的是4行4列的矩陣,應(yīng)首先定義一個二維數(shù)組,由輸入對話框輸入數(shù)據(jù),采用二重循環(huán)控制將輸入的16個數(shù)據(jù)依次存放到數(shù)組中。對于對角線上的數(shù)據(jù)求和,由于對角線上的元素為arr(1,1)、arr(2,2)、arr(3,3)和arr(4,4),行列值相同,采用一重循環(huán)控制即可。設(shè)計分析

【任務(wù)2】打印矩陣1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼完成步驟【任務(wù)2】打印矩陣一、二維數(shù)組1.格式在定義二維數(shù)組時,VB也提供了兩種格式。格式1:Dim數(shù)組名(第一維下標(biāo)上界,第二維下標(biāo)上界)As類型名稱格式2:Dim數(shù)組名([下界to]上界[,[下界to]上界]……)As類型名稱知識鏈接【任務(wù)2】打印矩陣2.輸入方法多維數(shù)組元素的輸入通過多重循環(huán)來實現(xiàn)。由于VB中的數(shù)組是按行存儲的,因此把控制數(shù)組第一維的循環(huán)變量放在最外層循環(huán)中。二、數(shù)組元素的輸出數(shù)組元素的輸出通常是利用For循環(huán)或Do…While等循環(huán)語句,在循環(huán)體中用Print方法直接輸出到窗體上或用Label控件的Caption屬性顯示或用TextBox控件的Text屬性顯示?!緫?yīng)用提高1】冒泡法排序效果描述

設(shè)計程序“冒泡法排序”。利用隨機函數(shù)產(chǎn)生10個兩位數(shù),用冒泡法完成10個隨機數(shù)據(jù)的升序排列。結(jié)果如圖所示?!緫?yīng)用提高1】冒泡法排序設(shè)計分析

冒泡法排序思想如下:(1)先假設(shè)第1個數(shù)據(jù)最小,依次同第2、第3、…、第N個數(shù)據(jù)進行比較,一旦第1個數(shù)據(jù)大于其它值則交換。這樣,第1輪比較完畢,找出了最小數(shù)據(jù)作為第1個數(shù)據(jù)。(2)以第2個數(shù)據(jù)為最小數(shù)據(jù),依次同第3、第4、…、第N個數(shù)據(jù)進行比較,若第2個數(shù)據(jù)大于其它值則交換。這樣,第2輪交換完畢,則找出第二小的數(shù)據(jù)作為第2個數(shù)據(jù)。(3)依此類推,第N-1輪比較將找出第N-1小的數(shù)據(jù),剩下的一個數(shù)據(jù)就是最大數(shù),排列在最后?!緫?yīng)用提高1】冒泡法排序完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)3】統(tǒng)計成績分布效果描述

設(shè)計程序“統(tǒng)計成績分布”。統(tǒng)計全班某一門課程的成績分布,以10為分一段,其中100分自成一段,共計11段,班級人數(shù)由輸入對話框輸入,要求按從高分到低分的順序輸出?!救蝿?wù)3】統(tǒng)計成績分布設(shè)計分析

在本程序中,學(xué)生成績可存放在一維數(shù)組中,但學(xué)生的總?cè)藬?shù)不確定,事先無法確認(rèn)到底需要多大的數(shù)組,所以希望能夠在運行時動態(tài)地改變數(shù)組的大小,這就要用到動態(tài)數(shù)組。先用Dim語句定義一個無下標(biāo)值的動態(tài)數(shù)組,在運行過程中用戶輸入學(xué)生的人數(shù)后,再用重定義命令ReDim定義數(shù)組的大小。數(shù)組的下界和上界用LBOUND和UBOUND函數(shù)求出?!救蝿?wù)3】統(tǒng)計成績分布完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)3】統(tǒng)計成績分布知識鏈接一、動態(tài)數(shù)組在定義數(shù)組時,一般都已經(jīng)指定了上下界,這樣數(shù)組的大小就確定了。但是有時可能事先無法確認(rèn)到底需要多大的數(shù)組,所以希望能夠在運行時動態(tài)地改變數(shù)組的大小,這就要用到動態(tài)數(shù)組。使用動態(tài)數(shù)組的優(yōu)點是可以根據(jù)用戶需要,有效地利用存儲空間。這是因為靜態(tài)數(shù)組是在程序編譯時分配存儲空間,而動態(tài)數(shù)組是在程序執(zhí)行時分配存儲空間。例如,可以短時間地使用一個大數(shù)組,然后在不使用這個數(shù)組時內(nèi)存空間釋放給系統(tǒng)。【任務(wù)3】統(tǒng)計成績分布建立動態(tài)數(shù)組的方法是:在窗體層、標(biāo)準(zhǔn)模塊或過程中先聲明一個數(shù)組(無下標(biāo)值)。格式為:Public|Private|Dim動態(tài)數(shù)組名()[AS類型]在過程中使用ReDim語句指明該數(shù)組的大小,分配實際的元素個數(shù)。格式為:ReDim[Preserve]數(shù)組名([下界to]上界)[As類型]知識鏈接【任務(wù)4】賬號輸入效果描述

設(shè)計程序“賬戶輸入”。建立一組專用于輸入賬號的數(shù)字按鈕。運行界面見圖所示?!救蝿?wù)4】賬號輸入設(shè)計分析

首先,考察賬號的數(shù)字按鈕的使用情況:功能1:按下數(shù)字鍵,在液晶屏上會出現(xiàn)相應(yīng)的數(shù)字。功能2:按下清零鍵,計算器清除所保存的運算數(shù)。本程序中數(shù)字命令按鈕采用控件數(shù)組創(chuàng)建??丶?shù)組由一組相同類型的控件組成,這些控件共用一個相同的控件名,共享同樣的事件過程?!救蝿?wù)4】賬號輸入完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)4】賬號輸入知識鏈接一、控件數(shù)組在這個程序中用到了另外一種數(shù)組--控件數(shù)組??丶?shù)組通常用于若干個控件執(zhí)行相似操作的情況。1.控件數(shù)組基本概念控件數(shù)組是指在同一容器中,擁有相同的名稱、相同事件過程的一組相同類型的控件??丶?shù)組中的每一個控件都具有相同的控件名稱,使用它們的Index屬性能夠惟一地確定每個控件數(shù)組元素?!救蝿?wù)4】賬號輸入知識鏈接2.創(chuàng)建控件數(shù)組創(chuàng)建控件數(shù)組有兩種方法:(1)在完成步驟中創(chuàng)建控件數(shù)組(2)在運行時添加控件數(shù)組【任務(wù)5】求最高分和最低分效果描述

設(shè)計程序“求最高分和最低分”。輸入10名學(xué)生的成績,用標(biāo)簽顯示在窗體上,單擊“查找”按鈕,求出他們的最高分和最低分,并將其值顯示在相應(yīng)的標(biāo)簽中。單擊“結(jié)束”按鈕,結(jié)束程序的運行。程序運行界面如圖所示?!救蝿?wù)5】求最高分和最低分設(shè)計分析

在前面的程序中,我們用For…Next語句和InputBox函數(shù)多次對數(shù)組的元素進行了賦值。在這個程序中,我們可以運用數(shù)組中一個專用函數(shù)Array()函數(shù)來對數(shù)組元素進行賦值。Array()函數(shù)減少了循環(huán)語句的使用,使數(shù)組元素的值更加直觀。同時運用專門用于數(shù)組或?qū)ο蟆凹稀钡难h(huán)語句ForEach…Next完成數(shù)組元素的操作?!救蝿?wù)5】求最高分和最低分完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)5】求最高分和最低分知識鏈接一、Array函數(shù)前面已經(jīng)介紹過如何用賦值語句或InputBox函數(shù)為數(shù)組元素賦值,這兩種方法都需要占用運行時間,影響效率。為此,VB提供了Array函數(shù)。利用該函數(shù),可以使數(shù)組在程序運行之前初始化,得到初值。Array函數(shù)用來為數(shù)組元素賦值,即把一個數(shù)據(jù)集讀入某個數(shù)組。其格式為:數(shù)組變量名=Array(數(shù)組元素值)【任務(wù)5】求最高分和最低分知識鏈接二、ForEach…Next語句ForEach…Next語句類似于For…Next語句,兩者都用來執(zhí)行指定重復(fù)次數(shù)的一組操作,但ForEach…Next語句專門用于數(shù)組或?qū)ο蟆凹稀?,其一般格式為:ForEach成員In數(shù)組循環(huán)體[ExitFor]……Next[成員]【應(yīng)用提高2】對換數(shù)據(jù)效果描述

設(shè)計程序“對換數(shù)據(jù)”。單擊“原始數(shù)據(jù)”按鈕在窗體上顯示10個數(shù)據(jù),并存放在一維數(shù)組中;單擊“對換數(shù)據(jù)”按鈕,將其前5個元素與后5個元素對換,即:第一個元素與第十個元素對換,第二個元素與第九個元素對換……第五個元素與第六個元素對換,并將對換后結(jié)果顯示在窗體上。運行結(jié)果如圖所示?!緫?yīng)用提高2】對換數(shù)據(jù)設(shè)計分析

對于原始數(shù)據(jù)的賦值我們?nèi)耘f可以運用數(shù)組中一個專用函數(shù)Array()函數(shù)來對數(shù)組元素進行賦值,這樣可以使數(shù)組元素的值更加直觀,如果需要修改也比較方便。對換數(shù)據(jù)采用循環(huán)控制進行數(shù)據(jù)的交換。【應(yīng)用提高2】對換數(shù)據(jù)完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)6】輸出問候信息效果描述

設(shè)計程序“輸出問候信息”。設(shè)計一個窗體,在文本框中輸入任意一個人的姓名,單擊命令按鈕輸出問候該人的消息框。運行界面如圖所示?!救蝿?wù)6】輸出問候信息設(shè)計分析

本程序可以建立一個過程,用于輸出問候某人的消息框,單擊命令按鈕時調(diào)用該過程輸出問候語?!救蝿?wù)6】輸出問候信息完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)6】輸出問候信息知識鏈接一、過程過程是程序中具有相對獨立性和封閉性的一組代碼。若程序中有多處使用相同的代碼段,可以編寫一個過程,程序中的其他部分可以調(diào)用這些過程,而無須重新編寫代碼。在VB中有Sub過程和Function過程,其中Sub過程又包含事件過程和通用過程。(1)Sub過程:完成一定的操作和功能,無返回值。(2)Function過程:相當(dāng)于用戶自定義函數(shù),調(diào)用后返回一個值?!救蝿?wù)6】輸出問候信息1.通用過程的概念有時多個不同的事件過程可能要使用同一段程序代碼,這時可將這段程序代碼獨立編寫為一個共用的過程,稱為通用過程。它獨立于事件過程之外,可供其他事件過程調(diào)用。通用過程一般由應(yīng)用程序來調(diào)用。2.通用過程的定義(1)格式:[Private|Public][Static]Sub過程名[(形參列表)]過程語句EndSub【任務(wù)6】輸出問候信息3.通用過程的創(chuàng)建建立通用過程有兩種方法:一種是使用“添加過程”對話框,另一種是在代碼編輯器窗口中直接創(chuàng)建。4.通用過程的調(diào)用每次調(diào)用過程都會執(zhí)行Sub與EndSub之間的語句序列。調(diào)用過程有兩種方法:使用Call語句調(diào)用,格式為:Call過程名([實參列表])使用過程名調(diào)用,格式為:過程名[實參列表]【任務(wù)7】求階乘效果描述

設(shè)計程序“求階乘”。編寫程序,計算

的值【任務(wù)7】求階乘1設(shè)計分析

從上面的數(shù)學(xué)表達式我們可以看出,要求出表達式的值,必須先分別求出1~10的階乘。而求階乘的算法都是一樣的,這樣在程序中就要重復(fù)出現(xiàn)多次一樣的代碼。為了簡化程序,我們可以將這段重復(fù)的代碼單獨提取出來,用一個Function過程來實現(xiàn)求階乘這一功能,然后通過調(diào)用函數(shù)過程來計算每個數(shù)的階乘。【任務(wù)7】求階乘1完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)7】求階乘1知識鏈接1.Function過程的定義格式:[Private|Public][Static]Function函數(shù)名[(形參列表)][As類型]過程語句EndFunction2.Function過程的調(diào)用Function過程的調(diào)用有兩種方法:1把它看作一個數(shù)據(jù),即直接放在賦值號右端。2可直接作為參數(shù)出現(xiàn)在調(diào)用過程或函數(shù)中。【任務(wù)8】計算三角形面積與周長效果描述

設(shè)計程序“計算三角形面積與周長”。通過輸入的三角形的三條邊,計算出三角形的面積與周長?!救蝿?wù)8】計算三角形面積與周長設(shè)計分析

本程序可將計算三角形面積和周長的程序代碼創(chuàng)建成兩個過程,用戶輸入三角形三條邊長后,單擊“計算”命令按鈕時調(diào)用這兩個過程計算面積和周長。在創(chuàng)建過程時,需要定義四個參數(shù),其中三個參數(shù)傳遞三角形的三邊長,一個參數(shù)傳遞三角形的面積或周長。由于傳遞三角形的三邊長不需要有返回值,而傳遞面積或周長需要有返回值,所以傳遞三角形的三邊長的參數(shù)要定義為按值傳遞方式,而傳遞面積或周長的參數(shù)則要定義為按地址傳遞方式?!救蝿?wù)8】計算三角形面積與周長完成步驟1.創(chuàng)建界面按題目要求創(chuàng)建界面2.過程代碼編寫并輸入過程代碼【任務(wù)8】計算三角形面積與周長一、參數(shù)傳遞在定義通用過程或Function過程時,形參列表中的每個變量名就是形式參數(shù),簡稱形參,多個形參之間用逗號分隔。在調(diào)用通用過程或函數(shù)過程時,在實參列表中列出的常量、變量或表達式等就是實際參數(shù),簡稱實參。多個實參之間用逗號分隔。參數(shù)傳遞就是在調(diào)用一個過程時,把實際參數(shù)傳送給形式參數(shù),然后按實際參數(shù)執(zhí)行調(diào)用的過程。在調(diào)用一個有參數(shù)的過程時,必須完成形參與實參的結(jié)合,形參列表和實參列表中的對應(yīng)變量名可以不同,但實參和形參的個數(shù)、順序和數(shù)據(jù)類型必須相符。知識鏈接【任務(wù)8】計算三角形面積與周長形參列表中每個參數(shù)的一般格式為:[ByVal|ByRe

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論