欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      VB常用算法總結(jié)(合集5篇)

      時(shí)間:2019-05-12 13:36:50下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《VB常用算法總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《VB常用算法總結(jié)》。

      第一篇:VB常用算法總結(jié)

      VB常用算法總結(jié)

      一、變量值的交換

      算法思想:若交換兩個(gè)變量的值,必須引入第三個(gè)新的變量進(jìn)行傳遞。以下代碼是錯(cuò)誤的:

      X=12 :Y=34 :X=Y :Y=X 正確的代碼是:

      X=12 :Y=23 :T=X :X=Y :Y=T

      二、判斷一個(gè)數(shù)是否能被另一個(gè)數(shù)整除

      算法思想:可以用整除的定義(余數(shù)為0)或X除以Y等于X整除Y等表達(dá)式進(jìn)行判斷。條件表達(dá)式可以為:X mod Y=0

      X\ Y=X/Y

      Int(X/Y)=X/Y 如果以上條件表達(dá)式為T(mén)rue,則表示X能被Y整除。

      三、累加、階乘、計(jì)數(shù)和求平均值

      算法思想:使用循環(huán)語(yǔ)句,并用一個(gè)變量存放累加的中間及最終結(jié)果。注: 累加求和時(shí)變量初值為0,計(jì)算階乘時(shí)變量初值為1。

      統(tǒng)計(jì)計(jì)個(gè)數(shù)(計(jì)數(shù))時(shí)可用一個(gè)變量作為統(tǒng)計(jì)個(gè)數(shù)的累加變量,每次加1即可。求平均值算法思想是先求和,再除以個(gè)數(shù)。條件求和(或計(jì)數(shù)):在循環(huán)語(yǔ)句中加入If-End If判斷語(yǔ)句。

      例題:計(jì)算1到10之間所有整數(shù)的累加和以及10!。n=10 sum=0

      ‘累加求和時(shí),變量的初值一定為0 prod=1

      ‘累乘(連乘)時(shí),變量的初值一定為1 For i=1 To n

      sum=sum+i

      prod=prod*i Next i Print sum,prod

      例題:統(tǒng)計(jì)0—100之間能被3整除的數(shù)的個(gè)數(shù)、累加和及其平均值。

      s=0

      n=0

      For i=0 To 100

      If i mod 3 =0 Then

      s=s+i

      n=n+1

      End If

      Next i

      Print n,s,s/n

      四、隨機(jī)數(shù)的產(chǎn)生 [a,b]之間的隨機(jī)整數(shù) Int((b-a+1)*rnd)+a(a,b)隨機(jī)數(shù)(b-a)*rnd +a

      五、求若干個(gè)數(shù)中最大值或最小值

      六、常用字符處理函數(shù)

      Mid函數(shù):從字符串指定位置取指定個(gè)字符,格式為Mid(字符,p,n),從第p個(gè)字符開(kāi)始,向后截取n個(gè)字符(若n省略則取到最后)。

      Left和Right函數(shù):從字符串左邊或右邊取指定個(gè)字符,格式為 Left(字符,n)和Right(字符,n)。Len函數(shù):測(cè)試字符串長(zhǎng)度。

      UCase和LCase函數(shù):UCase將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母;LCase將大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母。

      Instr([首字符位置 , ] 字符串1, 字符串2 [ , n]):在字符串1中查找字符串2,如果找到,返回字符串2的第一個(gè)字符在字符串1中出現(xiàn)的位置。首字符位置是可選的,如果不指定,從字符串起始位置開(kāi)始查找;如果指明,從指定的位置開(kāi)始查找。

      Asc函數(shù):返回字符串中第一個(gè)字符的ASCII碼。Chr函數(shù):將一個(gè)數(shù)值轉(zhuǎn)換為其所對(duì)應(yīng)的字符。

      字符的比較規(guī)則是按ASCII碼順序比較,規(guī)則為 空格<”A”~”Z”<”a”~”z” 小寫(xiě)字母的ASCII比大寫(xiě)字母的ASCII小32。

      例題:

      1.將所有文本轉(zhuǎn)換為大寫(xiě)(小寫(xiě))字母

      可以直接使用UCase(LCase)函數(shù)轉(zhuǎn)換。例如: Text2.Text=UCase(Text1.Text)2.對(duì)某個(gè)字符串的所有字符逐一處理

      算法思想:如果對(duì)某個(gè)字符串的所有字符逐一處理,即從字符串的第1個(gè)字符開(kāi)始到最后一個(gè)字母,每次處理1個(gè)字符??梢允褂肍or循環(huán)實(shí)現(xiàn)。通用代碼為:

      For i=1 To Len(s)

      s1=Mid(s,i,1)……

      Next i 3.字符轉(zhuǎn)換

      算法思想:通過(guò)字符的ASCII碼進(jìn)行處理(使用Asc函數(shù)),然后再使用Chr函數(shù)將ASCII轉(zhuǎn)換成字符。例題:將文本框Text1中字符按如下規(guī)律轉(zhuǎn)換a-b、b-c……z-a,并顯示在文本框Text2中。

      s = Text1.Text n = Len(s)For i = 1 To n

      s1 = Mid(s, i, 1)

      If s1 >= “a” And s1 <= “y” Then

      s2 = s2 + Chr(Asc(s1)+ 1)

      ElseIf s1 = “z” Then

      s2 = s2 + “a”

      End If Next i Text2.Text = s2 例題:將文本框Text1中的小寫(xiě)字母轉(zhuǎn)換其對(duì)應(yīng)的大寫(xiě)字母,將大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母,并顯示在文本框Text2中。

      Private Sub Command1_Click()s = Text1.Text n = Len(s)m = Asc(“a”)m)

      End If

      If s1 >= “A” And s1 <= “Z” Then

      s2 = s2 + Chr(Asc(s1)+ m)

      End If Next i Text2.Text = s2 End Sub 5.統(tǒng)計(jì)某字符出現(xiàn)次數(shù)

      算法思想:對(duì)字符串中字符逐一判斷,如果是某字符,則統(tǒng)計(jì)變量加1。

      例題:統(tǒng)計(jì)文本框Text1中字符i和j出現(xiàn)的次數(shù)(不區(qū)分大小寫(xiě))。

      Private Sub Command1_Click()

      s = Text1.Text

      n = Len(s)

      For i = 1 To n

      s1 = Mid(s, i, 1)

      If UCase(s1)= “I” Then ni = ni + 1

      If UCase(s1)= “J” Then nj = nj + 1

      Next i

      Print ni, nj

      End Sub

      八、素?cái)?shù)

      素?cái)?shù)定義:只能被1和本身整除的正整數(shù)稱(chēng)為素?cái)?shù)(或稱(chēng)質(zhì)數(shù))。例如11就是素?cái)?shù),它只能被1和11整除。算法思想:判別某數(shù)n是否是素?cái)?shù)的方法有很多,最簡(jiǎn)單的是從素?cái)?shù)的定義來(lái)求解。對(duì)于n,從i=2,3,…,n-1判別n能夠被i整除,只要有一個(gè)能整除,n就不是素?cái)?shù),否則n是素?cái)?shù)。此種算法比較簡(jiǎn)單,但速度慢,因此,可以將n被2到(或n/2)間的所有整數(shù)除,如果都除不盡,則n就是素?cái)?shù),否則n是非素?cái)?shù)。

      注:執(zhí)行For循環(huán)時(shí),循環(huán)變量等于終值仍進(jìn)入循環(huán),遇到Next語(yǔ)句,循環(huán)變量會(huì)自動(dòng)加上步長(zhǎng),因此如果循環(huán)正常完成后,循環(huán)變量的值將大于終值。例如:

      For i=1 To 4 If …… Then Exit For Next i Print i 如果循環(huán)正常結(jié)束,則輸出結(jié)果為5(大于4)。如果循環(huán)過(guò)程中滿足If條件,執(zhí)行Exit For語(yǔ)句退出循環(huán),則i的值一定小于5。

      例題:判斷n是否是素?cái)?shù)。Private Sub Command2_Click()n = Val(Text1.Text)For j = 2 To n100 * a)/ 10)c = i-Int(i / 10)* 10 If i = a ^ 3 + b ^ 3 + c ^ 3 Then Print i End If Next i End Sub

      Private Sub Command1_Click()For n = 100 To 999 s = 0 a = n Do While a <> 0 b = a Mod 10 s = s + b * b * b a = a\ 10 Loop If s = n Then Print n Next n End Sub

      十一、斐波那切數(shù)列的輸出

      該數(shù)列前兩項(xiàng)為1,1從第三項(xiàng)開(kāi)始,an=an-1+an-2

      十二、進(jìn)制轉(zhuǎn)換 十三、三個(gè)數(shù)排序

      十四、分段函數(shù)

      十五、圖形輸出(雙重循環(huán))

      十六、百雞百錢(qián)問(wèn)題

      十七、迭代法P116頁(yè)

      十八、輸入a,b,c,的值,求方程ax2+bx+c=0的解。

      注意:對(duì)象只考文本框、標(biāo)簽、命令按鈕和窗體。

      本學(xué)期計(jì)算機(jī)基礎(chǔ)及VB程序設(shè)計(jì)復(fù)習(xí)指導(dǎo)如下:

      1、計(jì)算機(jī)基礎(chǔ)的50道復(fù)習(xí)題,試卷上占20分,選擇15題,填空5題。

      2、VB習(xí)題集第一到五章控制結(jié)構(gòu)的課后習(xí)題及試題解析(其中,控件只考窗體、文本框、標(biāo)簽、命令按鈕)試卷上占40分。

      3、經(jīng)典算法。占40分。

      第二篇:VB程序設(shè)計(jì)的常用算法教案

      VB程序設(shè)計(jì)的常用算法教案

      算法(Algrith):計(jì)算機(jī)解題的基本思想方法和步驟。算法的描述:是對(duì)要解決一個(gè)問(wèn)題或要完成一項(xiàng)任務(wù)所采 取的方法和步驟的描述,包括需要什么數(shù)據(jù)(輸入什么數(shù)據(jù)、輸出什么結(jié)果)、采用什么結(jié)構(gòu)、使用什么語(yǔ)句以及如何 安排這些語(yǔ)句等。通常使用自然語(yǔ)言、結(jié)構(gòu)化流程圖、偽代碼等來(lái)描述算法。

      一、計(jì)數(shù)、求和、求階乘等簡(jiǎn)單算法

      此類(lèi)問(wèn)題都要使用循環(huán),要注意根據(jù)問(wèn)題確定循環(huán)變量的初值、終值或結(jié)束條,更要注意用來(lái)表示計(jì)數(shù)、和、階 乘的變量的初值。

      例:用隨機(jī)函數(shù)產(chǎn)生100個(gè)[0,99]范圍內(nèi)的隨機(jī)整數(shù),統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,6,7,8,9,0的 數(shù)的個(gè)數(shù)并打印出來(lái)。

      本題使用數(shù)組來(lái)處理,用數(shù)組a存放產(chǎn)生的確100個(gè)隨機(jī)整數(shù),數(shù)組x來(lái)存放個(gè)位上的數(shù)字分

      別為1,2,3,4,6,7,8,9,0的數(shù)的個(gè)數(shù)。即個(gè)位是1的個(gè)數(shù)存放在x中,個(gè)位是2的個(gè)數(shù)存放在x中,…… 個(gè)位是0的個(gè)數(shù)存放在x。

      將程序編寫(xiě)在一個(gè)GetTput過(guò)程中,代碼如下: PubliSubGetTput

      DiaAsInteger

      DixAsInteger

      DiiAsInteger,pAsInteger

      '產(chǎn)生100個(gè)[0,99]范圍內(nèi)的隨機(jī)整數(shù),每行印出來(lái)

      Fri=1T100

      a=Int

      Ifa<10Then

      Fr1PrintSpae;a;

      10個(gè)打

      Else

      Fr1PrintSpae;a;

      EndIf

      Ifid10=0ThenFr1Print

      Nexti

      '統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,6,7,8,9,0的數(shù)的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果保存在數(shù)組x,x,x中,將統(tǒng)計(jì)結(jié)果打印出來(lái)

      Fri=1T100

      p=a

      d

      0

      '求個(gè)位上的數(shù)字

      Ifp=0Thenp=10

      x=x+1

      Nexti

      Fr1Print&qut;統(tǒng)計(jì)結(jié)果&qut;

      Fri=1T10

      p=i

      Ifi=10Thenp=0 Fr1Print&qut;個(gè)位數(shù)為&qut;+Str+&qut;&qut;+Str)+&qut;個(gè)&qut;

      Nexti EndSub

      二、求兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù) 分析:求最大公約數(shù)的算法思想:

      對(duì)于已知兩數(shù),n,使得>n;

      除以n得余數(shù)r;

      若r=0,則n為求得的最大公約數(shù),算法結(jié)束;否則執(zhí)行;

      ←n,n←r,再重復(fù)執(zhí)行。

      例如:求=14,n=6的最大公約數(shù)

      n

      r

      0 =inputBx n=inputBx n=n* If

      r=dn

      Dhile

      =n

      n=r

      r=dn

      Lp

      Print&qut;最大公約數(shù)=&qut;,n [1]

      [2]

      [3]

      [4]

      []

      [6]

      [7]

      下一頁(yè) <

      第三篇:算法與程序設(shè)計(jì)VB試題與答案08

      VB08

      1、打開(kāi)“考生文件夾781”中的文件“test4.vbp”,完善Command1_Click事件代碼并保存。

      實(shí)現(xiàn)功能:回文字符串是指一個(gè)字符串從左往右讀與從右往左讀是一樣的,如“ABCBA”,“123321”等等。輸入一個(gè)字符串,若是回文字符串,則輸出“Yes”,否則輸出“No”。使用文本框Text1輸入字符串,使用文本框Text2輸出結(jié)果。

      Private Sub Command1_Click()Dim s As String Dim ok As String Dim i As Integer s = Text1.Text ok = “Yes” For i = 1 To ①

      If Mid(s, i, 1)<> ② Then ok = “No” Next i ③ End Sub ①len(s)2 ②Mid(s, len(s)+1-i, 1)③text2.text=ok

      2、打開(kāi)文件“考生文件夾606工程1.vbp”,完善Command1_Click事件代碼并保存。

      實(shí)現(xiàn)功能:當(dāng)單擊“計(jì)算1+2+3+…+100”按鈕后,文本框Text1顯示1+2+3+…+100的值。

      Private Sub Command1_Click()Dim s As Integer Dim i As Integer s = ①

      For i = 1 To ② s = ③ Next i Text1.Text = Str(④)End Sub ①0 ②100 ③s+i ④s

      3、打開(kāi)“考生文件夾779test2.vbp”,完善Command1_Click事件代碼并保存。

      實(shí)現(xiàn)功能:輸入一個(gè)正整數(shù),計(jì)算并輸出它的各位數(shù)字之和。如輸入123,則輸出6。使用文本框Text1輸入正整數(shù),使用文本框Text2輸出計(jì)算結(jié)果。

      Private Sub Command1_Click()Dim x As Integer Dim s As Integer x = Val(Text1.Text)① Do s = s + ② x = x 10 Loop Until x = 0 ③ End Sub ①s=0 ②x mod 10 ③text2.text=str(s)

      4、打開(kāi)文件“考生文件夾607工程1.vbp”,完善Command1_Click事件代碼并保存。

      實(shí)現(xiàn)功能:當(dāng)單擊“顯示”按鈕后,隨機(jī)產(chǎn)生10個(gè)屬于區(qū)間[0,100)的自然數(shù),并保存于數(shù)組a中,然后在窗體上顯示這10個(gè)數(shù)及其平均值。(注:學(xué)生運(yùn)算結(jié)果有可能跟樣圖中數(shù)值不一致)

      Private Sub Command1_Click()Dim a(9)As Integer Dim s As Single Dim i As Integer Me.Cls s = 0 Randomize For i = 0 To ① a(i)= Int(Rnd * 100)Print a(i)Next i For i = 0 To 9 s = ②

      Print “這10個(gè)自然數(shù)的平均值=”;s / 10 End Sub ①9

      ②s+a(i)③next i

      5、打開(kāi)文件“考生文件夾609工程1.vbp”,完善Form_Click事件代碼并保存。

      實(shí)現(xiàn)功能:?jiǎn)螕舸绑w時(shí)在窗體上打印下面所示的圖案。

      **** *** ** *

      Private Sub Form_Click()Dim i As Integer Dim j As Integer For i = ① To 1 Step-1 For j = 1 To i ② Next j Print ③ End Sub ①4

      ②print “*”;③next i

      6、打開(kāi)文件“考生文件夾610工程1.vbp”,完善Command1_Click事件代碼并保存。

      實(shí)現(xiàn)功能:當(dāng)單擊“顯示”按鈕后,在窗體上顯示下面的圖形:

      @ @@ @@@ @@@@ @@@@@ @@@@@@

      Private Sub Command1_Click()Dim i As Integer Dim j As Integer For i = 1 To 6 For j = 1 To ① Print ② Next ③ Print Next i End Sub ①i

      ②”@”;③j

      第四篇:算法與程序設(shè)計(jì)VB試題與答案10

      VB10

      1、打開(kāi)文件“考生文件夾178工程1.vbp”,完善Command1_Click事件及fac函數(shù)并保存。

      實(shí)現(xiàn)功能:用遞歸法求3!+5!+7!的值,將結(jié)果輸出到窗體上。

      Public Function fac(a As Integer)As Integer If a = 1 Then fac = ① Else fac = a * ②(a1)+ fib(n1)End If End Function

      Private Sub Command1_Click()Dim sum As Integer sum = s(③)Print “sum=”;sum End Sub ①1 ②n ③100

      6、打開(kāi)“考生文件夾776”中的文件“蝸牛爬竹.vbp”,完善Command1_Click事件代碼并保存。

      實(shí)現(xiàn)功能:青竹高17米,蝸牛從青竹底端慢慢爬向頂端,晴天每天爬1.4米,雨天每天爬1.8米,若蝸牛爬到頂端用了11天,計(jì)算晴天、雨天各多少天?(晴天對(duì)應(yīng)文本框text1,雨天對(duì)應(yīng)文本框text2)

      Private Sub Command1_Click()Dim x As Single Dim y As Integer y =(171.4)① = 11-y Text1.Text = Str(②)+ “天” Text2.Text = Str(③)+ “天” End Sub ①x ②x ③y

      第五篇:VB程序連乘算法的教學(xué)設(shè)計(jì)

      VB程序連乘算法的教學(xué)設(shè)計(jì)

      摘 要:該文主要對(duì)程序設(shè)計(jì)課程中的連乘算法進(jìn)行教學(xué)設(shè)計(jì),結(jié)合實(shí)例介紹了連乘算法的關(guān)鍵點(diǎn),對(duì)算法中經(jīng)常會(huì)遇到的內(nèi)存溢出問(wèn)題進(jìn)行解析,針對(duì)連乘算法的通用表達(dá)式進(jìn)行了優(yōu)化,使程序更易理解,達(dá)到加深理解,優(yōu)化教學(xué)效果。

      關(guān)鍵詞:程序設(shè)計(jì) 算法 連乘算法 溢出

      中圖分類(lèi)號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)12(a)-0220-02

      在程序設(shè)計(jì)課程中,算法是課程的重點(diǎn),同時(shí)也是難點(diǎn),如何將算法原理向?qū)W生講解透徹并可以讓其輕松接受,是在教學(xué)過(guò)程中需要思考的一個(gè)問(wèn)題。

      在計(jì)算機(jī)中,算法(Algorithm)是對(duì)特定問(wèn)題求解步驟的一種描述,它是指令序列的集合。程序設(shè)計(jì)就是設(shè)計(jì)算法、編寫(xiě)代碼、調(diào)試運(yùn)行的過(guò)程。顯而易見(jiàn),算法是程序設(shè)計(jì)的基礎(chǔ),程序設(shè)計(jì)是算法的具體實(shí)現(xiàn)。在程序設(shè)計(jì)課程的教學(xué)設(shè)計(jì)過(guò)程中,常用算法一般包括求最大/最小值、累加/連乘、窮舉法、遞推法等,該文將主要針對(duì)連乘算法進(jìn)行分析。連乘算法

      在程序基礎(chǔ)教學(xué)中,為了提高教學(xué)效果,針對(duì)剛?cè)腴T(mén)的程序設(shè)計(jì)初學(xué)者,教師們一般采用任務(wù)驅(qū)動(dòng)法[1]進(jìn)行算法的分析,引導(dǎo)學(xué)生理解和掌握該算法的核心思想,進(jìn)而再用程序的方式來(lái)描述與驗(yàn)證該算法。例如:

      以上是一個(gè)典型的連乘算法,該算法描述的關(guān)鍵點(diǎn)可歸納如下:

      (1)每一項(xiàng)和每次連乘之積是變化量。

      (2)因此,需要兩個(gè)變量:

      ①用T表示每一項(xiàng)的值:T=T+1。

      ②用S表示連乘之積:S=S*T。

      (3)循環(huán)終止條件: 循環(huán)次數(shù)>n。

      (4)初始化:S=1。內(nèi)存溢出問(wèn)題

      在講解程序算法時(shí),大多數(shù)程序設(shè)計(jì)教程都很少提及賦值或計(jì)算中的“溢出”問(wèn)題,然而在學(xué)生的編程操作中,“溢出”卻是經(jīng)常會(huì)遇到的一個(gè)問(wèn)題[2],這些問(wèn)題常常會(huì)讓學(xué)生覺(jué)得困惑,查找原因時(shí)卻無(wú)從下手,導(dǎo)致學(xué)生出現(xiàn)畏難情緒。因此,教師有必要在授課過(guò)程中,對(duì)程序在內(nèi)存中的存儲(chǔ)方式進(jìn)行初步講解,讓學(xué)生可以了解程序的運(yùn)行機(jī)制,加深理解。

      軟件在運(yùn)行過(guò)程中,如果程序調(diào)用的數(shù)據(jù)文件過(guò)大,或程序設(shè)計(jì)中存在著死循環(huán)等bug,軟件寫(xiě)入內(nèi)存中的數(shù)據(jù)量超過(guò)了系統(tǒng)分配給該軟件的內(nèi)存空間大小,則會(huì)發(fā)生內(nèi)存空間裝不下而溢出的現(xiàn)象,這種現(xiàn)象就叫內(nèi)存溢出。在求階乘的算法中,由于階乘的結(jié)果累積速度較快較大,容易發(fā)生數(shù)據(jù)溢出。

      讓學(xué)生進(jìn)行程序的調(diào)試與運(yùn)行,當(dāng)n=10和=50時(shí)運(yùn)行結(jié)果如圖1所示,但當(dāng)n=100時(shí),卻彈出如圖2所示的警告信息。

      分析導(dǎo)致“溢出”錯(cuò)誤的原因:

      當(dāng)程序運(yùn)行發(fā)生“溢出”錯(cuò)誤時(shí),通過(guò)調(diào)試跟蹤,在T=(2* i)^ 2/((2*i-1)*(2*i+1))語(yǔ)句處,把光標(biāo)移至i變量上,可以發(fā)現(xiàn)溢出時(shí)i的值為91;當(dāng)i=91時(shí),表達(dá)式((2*i-1)*(2*i+1))=,該表達(dá)式的值為33123。程序?qū)⒔Y(jié)果值S設(shè)置為double類(lèi)型,當(dāng)i=91時(shí),結(jié)果為33123,這個(gè)值按道理應(yīng)在double類(lèi)型的數(shù)值范圍內(nèi),但程序仍然發(fā)生了溢出錯(cuò)誤,問(wèn)題在哪里呢?

      實(shí)際上,產(chǎn)生這個(gè)溢出問(wèn)題的原因是由于VB本身的內(nèi)存分配機(jī)制造成的,VB在進(jìn)行計(jì)算過(guò)程中,它總是分配一個(gè)最省內(nèi)存的臨時(shí)內(nèi)存空間去存儲(chǔ)這些中間計(jì)算結(jié)果數(shù)值,這個(gè)最省的內(nèi)存空間容量根據(jù)表達(dá)式中數(shù)據(jù)類(lèi)型決定,如上述相乘的兩個(gè)表達(dá)式(2*i-1)和(2*i+1),他們當(dāng)中的變量i是整型,因此,VB也將使用一個(gè)類(lèi)型為整型的臨時(shí)變量來(lái)存儲(chǔ)兩個(gè)表達(dá)式的乘積。所以,當(dāng)i=91時(shí),得到乘積結(jié)果33 123,此時(shí)即使是乘積結(jié)果變量S設(shè)置為double類(lèi)型,但乘積結(jié)果(33 123)已超過(guò)了聲明為整型的臨時(shí)變量空間的極限(-32 768~+32 767),所以仍然會(huì)發(fā)生溢出錯(cuò)誤。

      根據(jù)上面的原因分析,可以從以下幾方面進(jìn)行修正:

      (1)將變量 i 定義為長(zhǎng)整型或?qū)崝?shù)型或變體型。

      (2)將錯(cuò)誤語(yǔ)句中的變量 i或常量(1或2)其一操作數(shù)利用轉(zhuǎn)換函數(shù)Clng(i)或Clng(1),以求足以容納計(jì)算結(jié)果。

      (3)避免大數(shù)相乘,可將錯(cuò)誤語(yǔ)句改為T(mén)=(2*i)^ 2/(2*i-1)/(2*i+1)。

      (4)連乘算法的改進(jìn)。

      同一問(wèn)題可用不同算法解決,而一個(gè)算法的質(zhì)量?jī)?yōu)劣將影響到算法乃至程序的效率。雖然上述方法解決了“溢出”問(wèn)題,但是表達(dá)式T=(2*i)^2/(2*i-1)*(2*i+1)顯得很笨重,表達(dá)式明顯復(fù)雜。能否有辦法可以降低復(fù)雜度,簡(jiǎn)化表達(dá)式以求程序優(yōu)化呢?

      可以把通項(xiàng)表達(dá)式T=(2*i)^2/(2*i-1)*(2*i+1)中的分子式分解開(kāi)來(lái),把問(wèn)題理解為簡(jiǎn)單表達(dá)式T=A/B(其中A=(2*i)^2和B=(2*i-1)*(2*i+1),如此一來(lái)問(wèn)題就變得較為簡(jiǎn)單且易于解決。因此,求∏的近似值的VB程序代碼優(yōu)化實(shí)現(xiàn)如下:

      在此例中,關(guān)鍵點(diǎn)在于如何將復(fù)雜的通項(xiàng)表達(dá)式分解為簡(jiǎn)單表達(dá)式,進(jìn)而實(shí)現(xiàn)連乘算法的優(yōu)化。因此,如何構(gòu)造通項(xiàng)表達(dá)式尤為關(guān)鍵,必須注意2點(diǎn)。

      (1)通項(xiàng)表達(dá)式T=B/A中的A或B均可為常量或變量表達(dá)式,A和B可以繼續(xù)分解;①若A=1,則T=B;②若B=1,則T=1/A;

      (2)必須精選變量A與B的數(shù)據(jù)類(lèi)型,避免出現(xiàn)“溢出”。結(jié)語(yǔ)

      該文對(duì)程序設(shè)計(jì)課程中關(guān)于連乘算法的問(wèn)題進(jìn)行了初步探討,指出程序設(shè)計(jì)初學(xué)者中學(xué)習(xí)過(guò)程中經(jīng)常會(huì)遇到的“溢出”問(wèn)題,提出修正方法,并對(duì)連乘算法進(jìn)行改進(jìn)優(yōu)化,加深理解,強(qiáng)化教學(xué)效果。

      參考文獻(xiàn)

      [1] 楊晨霞,涂風(fēng)濤.任務(wù)驅(qū)動(dòng)教學(xué)法在Visual Basic程序設(shè)計(jì)教學(xué)中的應(yīng)用[J].職教論壇,2012(18):79-81.[2] 賈穎.“VB 程序設(shè)計(jì)”課程教學(xué)中的變量類(lèi)型使用問(wèn)題研究[J].Computer Education,2008(20):138-139.

      下載VB常用算法總結(jié)(合集5篇)word格式文檔
      下載VB常用算法總結(jié)(合集5篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        算法總結(jié)

        算法分析與設(shè)計(jì)總結(jié)報(bào)告 71110415 錢(qián)玉明 在計(jì)算機(jī)軟件專(zhuān)業(yè)中,算法分析與設(shè)計(jì)是一門(mén)非常重要的課程,很多人為它如癡如醉。很多問(wèn)題的解決,程序的編寫(xiě)都要依賴(lài)它,在軟件還是面向......

        算法總結(jié)

        算法分塊總結(jié) 為備戰(zhàn)2005年11月4日成都一戰(zhàn),特將已經(jīng)做過(guò)的題目按算法分塊做一個(gè)全面詳細(xì)的總結(jié),主要突出算法思路,盡量選取有代表性的題目,盡量做到算法的全面性,不漏任何ACM可......

        算法總結(jié)材料

        源程序代碼: } 一、 自然數(shù)拆分(遞歸) } #include 二、快速排序(遞歸) int a[100]; void spilt(int t) #include { int k,j,l,i; main() for(k=1;k......

        VB常見(jiàn)問(wèn)題總結(jié)

        快捷域名:http://yujimyfavorcn.programfan.com 創(chuàng)建于:2005-6-5 共 6篇文章 訪問(wèn)統(tǒng)計(jì):169 VB常見(jiàn)問(wèn)題總結(jié) 點(diǎn)擊數(shù):138 發(fā)布日期:2005-6-5 18:28:00 【字體:大 中 小】【評(píng)論】......

        VB課程總結(jié)

        《VB 程序設(shè)計(jì)》課程總結(jié) 授課時(shí)間:2010-2011學(xué)年第二學(xué)期 授課班級(jí):課程學(xué)時(shí):64(32) 任課教師: 1.教學(xué)情況 能認(rèn)真?zhèn)湔n、遵守學(xué)院的教學(xué)規(guī)章制度,沒(méi)有遲到、提前下課、誤課等教學(xué)......

        VB課程設(shè)計(jì)總結(jié)

        通過(guò)幾周對(duì)VB的學(xué)習(xí),使我增加了對(duì)VB課程的了解. 首先了解到VB的特點(diǎn),VB是在原來(lái)的Basic語(yǔ)言基礎(chǔ)上發(fā)展而來(lái)的.Visual指的是可視的圖形用戶界面開(kāi)發(fā)方法.不需編寫(xiě)大量代碼去描述界面元素的......

        VB關(guān)鍵字總結(jié)(★)

        1.編譯命令關(guān)鍵字總結(jié) 作用關(guān)鍵字 定義編譯常數(shù)。#Const 編譯程序碼中的選擇區(qū)塊。 #If...Then...#Else 計(jì)算當(dāng)前凈值。NPV, PV 7.控制流關(guān)鍵字總結(jié) 作用關(guān)鍵字 分支。 GoSu......

        VB知識(shí)點(diǎn)總結(jié)

        第一章 一、軟件的概念 人們針對(duì)某一需要而為計(jì)算機(jī)編制的指令序列稱(chēng)為程序。程序、數(shù)據(jù)連同有關(guān)的說(shuō)明資料統(tǒng)稱(chēng)為軟件。 軟件:應(yīng)用軟件 系統(tǒng)軟件 二、編程的概念 編程就是......