資源描述:
《逆反素?cái)?shù)設(shè)計(jì)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、24逆反素?cái)?shù)設(shè)計(jì)報(bào)告學(xué)院xxx班級(jí)xxx學(xué)號(hào)xxx姓名xxx成績(jī)一、設(shè)計(jì)思路1.要達(dá)到的目的①在文本框中輸入一整型數(shù)據(jù),判斷該數(shù)據(jù)是否為素?cái)?shù),并顯示相關(guān)信息。②如果是素?cái)?shù)則判斷是否為可逆素?cái)?shù),并顯示相關(guān)信息。③如果此整數(shù)既為素?cái)?shù)又為可逆素?cái)?shù),則在判斷其加一之后的偶數(shù)可分解為多少對(duì)素?cái)?shù)和,并顯示相關(guān)信息。⑥判斷是否為素?cái)?shù)設(shè)計(jì)成子過(guò)程。⑦將數(shù)據(jù)倒置運(yùn)用數(shù)組。,要有字符串處理代碼。2.關(guān)鍵問(wèn)題的解決①判斷輸入的是否為素?cái)?shù)。用u=Text1.Text任命素?cái)?shù),調(diào)用sub函數(shù)判斷是否原數(shù)為素?cái)?shù)。②子過(guò)程的運(yùn)用答:子過(guò)程中定義的數(shù)要在主過(guò)程中有初值,否則定義的數(shù)為空值。③判斷其加
2、一之后的偶數(shù)可分解為多少對(duì)素?cái)?shù)和。For<循環(huán)變量>=<初賦值>To<終值>應(yīng)用,字符串的連接。④如何讓d能自動(dòng)換行?答:將multiline設(shè)置為true。二、模塊之間的調(diào)用關(guān)系,或程序流程圖運(yùn)用調(diào)用Command1判斷是否為素?cái)?shù)對(duì)原素?cái)?shù)的倒置子過(guò)程進(jìn)行判斷數(shù)組,字符串處理代碼判斷是否為可逆素?cái)?shù)將偶數(shù)拆為兩素?cái)?shù)相加調(diào)用調(diào)用子過(guò)程判斷是否為素?cái)?shù)子過(guò)程判斷是否為素?cái)?shù)三、部分程序關(guān)鍵源代碼及注釋PrivateSubCommand1_Click()524DimuAsInteger,xAsIntegeru=Val(Text1.Text)IfTrim(Str(u))<>Text
3、1.TextThen‘對(duì)于輸入的不是數(shù)值型的提示MsgBox"您輸入的不是數(shù)值型,請(qǐng)重新輸入!"EndIfc=u‘因?yàn)閡要變,后面還要用到最初的u值,所以要將u先付給cCallmysub(u,i,x)‘子過(guò)程調(diào)用過(guò)程Ifx=0ThenText2.Text="原數(shù)不為素?cái)?shù)"ElseDimt(99999)AsString‘定義數(shù)組Fori=1ToLen(Text1.Text)t(i)=Mid(Text1.Text,i,1)‘給原輸入數(shù)據(jù)排好順序,以便倒置NextFori=1ToLen(Text1.Text)‘將原數(shù)據(jù)倒置a=t(i)+aNextu=Val(a)Callmy
4、sub(u,i,x)‘再次調(diào)用子過(guò)程進(jìn)行判斷倒置后是否為素?cái)?shù)Ifx=0ThenText2.Text="原數(shù)為素?cái)?shù)但不為可逆素?cái)?shù)"Elsee=c+1DimdAsString,kAsInteger,vAsString,jAsIntegerForj=1Tocu=jCallmysub(u,i,x)Ifx=1Thenu=e–j輸入數(shù)據(jù)加1后偶數(shù)分為素?cái)?shù)的和的過(guò)程Callmysub(u,i,x)Ifx=1Thenk=e-jv=Str(j)&"+"&Str(k)‘字符串的連接d=d&vEndIfEndIfNextText2.Text="原數(shù)為可逆素?cái)?shù),將其加一之后的偶數(shù)可分解為兩素
5、數(shù)之和,以下是所有情況:"+dEndIfEndIfEndSubPrivateSubCommand2_Click()Text1.Text=""清空text1Text1.SetFocus焦點(diǎn)出現(xiàn)在text1524DimuAsInteger,xAsIntegeru=Val(Text1.Text)IfTrim(Str(u))<>Text1.TextThenMsgBox"您輸入的不是數(shù)值型,請(qǐng)重新輸入!"EndIfc=uCallmysub(u,i,x)Ifx=0ThenText2.Text="原數(shù)不為素?cái)?shù)"ElseDimt(99999)AsStringFori=1ToLen(T
6、ext1.Text)t(i)=Mid(Text1.Text,i,1)NextFori=1ToLen(Text1.Text)a=t(i)+aNextu=Val(a)Callmysub(u,i,x)Ifx=0ThenText2.Text="原數(shù)為素?cái)?shù)但不為可逆素?cái)?shù)"Elsee=c+1DimdAsString,kAsInteger,vAsString,jAsIntegerForj=1Tocu=jCallmysub(u,i,x)Ifx=1Thenu=e-jCallmysub(u,i,x)Ifx=1Thenk=e-jv=Str(j)&"+"&Str(k)d=d&vEndIfEn
7、dIfNextText2.Text="原數(shù)為可逆素?cái)?shù),將其加一之后的偶數(shù)可分解為兩素?cái)?shù)之和,以下是所有情況:"+dEndIfEndIfEndSub對(duì)于第二項(xiàng)創(chuàng)新,只需再添加一個(gè)command2控件(判斷)然后再將command1的程序再進(jìn)行一遍即可。PrivateSubmysub(uAsVariant,iAsVariant,xAsVariant)‘子過(guò)程的調(diào)用過(guò)程524Ifu=0Oru=1Thenx=0ElseFori=2ToSqr(b)‘對(duì)于是否為素?cái)?shù)的判斷IfbModi=0Thenx=0ExitForElsex=1EndIfNextEndIfEn