VB 教案之數(shù)組

時間:2023-04-24 22:38:52 教案 我要投稿
  • 相關推薦

VB 教案之數(shù)組

授課對象:初一興趣班學生) 教學過程: 一、引入: 在學習if語句時,我們曾做過一個題,在文本框內(nèi)輸入正整數(shù),判斷這3個數(shù)的大小然后將他們按從小到大的順序輸出。   if a>b then   temp =a:a=b : b =temp   end if   if a >c then   temp =a : a=c :c= temp   end if   if b>c then   temp = b : b=c : c=temp   end if   print 這三個數(shù)從小到大的順序是; a;b;c; 這是3個數(shù)的大小排序,假如多于三個數(shù)的排序呢? 當然我們還可以用IF語句予以解決,但大家可以想象到它的麻煩程度,其實,我們可以用數(shù)組來解決這個問題。那么何謂數(shù)組呢? 二、1)新課講授:所謂數(shù)組是一群數(shù)據(jù)類型相同的變量,在內(nèi)存里能擁有連續(xù)存放空間的集合。數(shù)組在使用之前必須先聲明,聲明的目的是確定內(nèi)存中應保留多少連續(xù)空間給此數(shù)組使用,并定出數(shù)組中每一個元素的數(shù)據(jù)類型。    語法:dim 數(shù)組名稱(下標1,[下標2[……]])[as 數(shù)據(jù)類型]    功能:聲明所指定數(shù)據(jù)類型為一維(二維……)數(shù)據(jù) eg :  dim a(6) as integer  聲明一個a(6)的數(shù)組,其包含了a(0)---a(6)7個整型變量。數(shù)組的默認下標值從0開始,假如你覺得不習慣的話,可以用用這個方式聲明:  dim 數(shù)組名稱(下界to上界[下界to上界][……])[as 數(shù)據(jù)類型] 假若要定義a(1)----a(6)的整型數(shù)組,則可以這樣寫:   dim a(1to 6) as integer 請學生判斷以下下列數(shù)組說明語句是否正確,說明原因: (1) Dim a(10) as integer (2) Dim b(-10) as integer      /錯誤  沒有用關鍵之to顯示知名下標范圍。 (3)Dim c(5,3)as byte (4)Dim y()          /錯誤,只有重定義語句才可以不帶下標 2)回到我們剛上課講的內(nèi)容,如何利用數(shù)組解決數(shù)字的排序問題呢?這里我們先介紹兩個函數(shù): 隨機函數(shù)Rnd  產(chǎn)生介于0到1之間的函數(shù)   隨機數(shù)種子函數(shù) Randomize 在Rnd函數(shù)之前使用,以當做隨機數(shù)產(chǎn)生器的種子。 (注:如果不用語句來播放隨機數(shù)的種子,則每次使用Rnd函數(shù)時將會得到相同順序的隨機數(shù)) 下面我們用數(shù)組來解決數(shù)字的排序問題: 1)定義數(shù)組,產(chǎn)生1000內(nèi)的隨機數(shù) (這里我們以生成6個數(shù)為例) Dim a(1 to 6) as integer Dim i as integer,j as integer Dim t as integer cls                          /  清除屏幕 Randomize  for i =1 to 6              a(i)=int(Rnd*1000+1)                 /產(chǎn)生1--1000的隨機整數(shù) print a(i); next i print ----------------------------------------------- end sub (解釋程序,使學生讀懂本程序后,關閉代碼。讓學生自己編程:由button控制產(chǎn)生出10個隨機整數(shù)) 2) 6個隨機數(shù)按大小順序排列 for i = 1 to 6   if a(1)<a(i) then   t = a(1)   a(1)= a(i)   a(i) =t   end if next i                    print a(1)                             / 打印出最大的那個數(shù) end sub 我們當然可以用5個if語句依次將6個數(shù)從小到大打印出來,但如果是20個、100、1000個數(shù)的排序,那我們就得相應的寫出無數(shù)的if語句來做,但顯然這辦法是不理想的。其實這里我們可以套用兩個循環(huán)語句完成此題。 3)將2)改成 for i=1 to 6   for j = i+1 to 6     if a(i) < a(j) then     t = a (i)     a(i)= a(j)     a(j)=t     end if   next j   print a(i); next i                /  雙重循環(huán)將6個數(shù)從大到小打印出來。 end sub 解釋:1)當i =1的時候, j=2時,比較出a(1) a(2)的大小,將大的數(shù)給a(1)                     j =2時,比較出a(1) a(3)的大小,將大的數(shù)給a(1)                     ……                     j =6時,比較出a(2) a(6)的大小,將大的數(shù)給a(1)       打印出a(1)   i變成2     2)當i=2時, j =3時,比較出a(2)a(3)的大小,將大的數(shù)給a(2)                 …………      打印出a(2) i 變成3     ……     5) 當i=5時 j=6時, 比較a(5) a(6)的大小,將大的數(shù)給a(5)     6) 當i=6時,j 已經(jīng)超出了循環(huán)范圍。所以這里的循環(huán)我們也可以將i的語句改為     for i =1 to 5 (在學生讀懂程序的情況下請學生寫出程序:隨機產(chǎn)生100個數(shù)并將其排序)    const n =100    Dim a(1to n) as integer    Dim i as integer,j as integer,t as interger    cls    Randomize    for i=1 to n    a(i)=int(Rnd*1000+1)    print a(i);    if i mod 20 =0 then    print    end if    next i    print ————————————————————————————————    for i =1 to n     for j =i+1 to n     if a(i)<a(j) then     t = a(i)     a(i)=a(j)     a(j)= t     end if     next j    print a(i);    if i mod 20 = 0 then    print    end if    next i    end sub 三、課堂小結 :(數(shù)組聲明、如何利用數(shù)組和循環(huán)語句給數(shù)字排序等) 四、作業(yè):對于給定的數(shù)組a(n)as integer(n>=20),設計一個程序,找出在a中出現(xiàn)頻率最高的元素值及出現(xiàn)的次數(shù)。例如(1,5,4,2,5,8,5,4)中,出現(xiàn)頻率最高的是5, 次數(shù)是3次。  

【VB 教案之數(shù)組】相關文章:

vb實訓心得11-25

vb實訓心得7篇11-25

《橋之美》的教案03-07

《黔之驢》教案03-05

《橋之美》教案03-05

旅鼠之迷教案02-17

《橋之美》教案04-30

小學教案之我們的太陽08-25

驚弓之鳥教案08-26

《生命之杯》音樂教案09-21