給定m個區(qū)間和1個數(shù)組(有n個元素),現(xiàn)要求根據(jù)各區(qū)間限定的取值范圍,將數(shù)組依次分隔成m+1個段。具體分割方法如下:
?第1段是從數(shù)組首個元素開始、元素值都屬于第1區(qū)間的最長連續(xù)元素段。如果首個元素不屬于第1區(qū)間,則第1段元素個數(shù)為0;
?第1段分割后的剩余元素,用同樣的方法來依次分割第2段、第3段、…、第m段;
?第m段分割后的剩余元素分割到第m+1段(剩余段)。
若第p(1≤p≤m-1)段末尾連續(xù)元素的值也同時屬于第p+1區(qū)間,則這塊連續(xù)元素稱為第p段“重疊塊”,該段其余部分稱為第p段“非重疊塊”。由于不存在第m+1區(qū)間,這里特別規(guī)定:第m段的全部元素都分割到m段“非重疊塊”,第m段“重疊塊”的元素個數(shù)為0,一個數(shù)組分段示例如下圖。圖中數(shù)組第1個元素10不屬于第1區(qū)間[0,5],因此第1段的元素個數(shù)為0.10和20屬于第2區(qū)間,而33不屬于第2區(qū)間,因此第2段只包含10和20兩個元素。第3段末尾連續(xù)3個元素的值也同時屬于第4區(qū)間,因此,第3段“非重疊塊”包含33,58,46,第3段“重疊塊”包含55,62,69。
(1)給定2個區(qū)間依次為[10,50]、[30,80],數(shù)組各元素為“12,44,34,45,66,50,45,70”,則第1段“重疊塊”中的元素個數(shù)為 33個。
(2)小李根據(jù)上述描述,設計了一個統(tǒng)計各段“非重疊塊”、“重疊塊”和剩余段中元素個數(shù)的算法。算
法的VB程序如下,請在橫線處填入合適的代碼。
Const n=18,m=6
Dim a(1 To n) As Integer
Dim b(1 To 2*m) As Integer
'b(1)、b(2)為第1區(qū)間的下限和上限,b(3)、b(4)為第2區(qū)間的下限和上限,…
Dim c(1 To 2*m+1)As Integer
'數(shù)組c用于保存統(tǒng)計結果:
'c(1)、c(2)分別存儲第1段“非重疊塊”和“重疊塊”的元素個數(shù),
'c(3)、c(4)分別存儲第2段“非重疊塊”和“重疊塊”的元素個數(shù),…
'c(2m-1)存儲第m段“非重疊塊“元素個數(shù),c(2m)存儲第m段“重疊塊“元素個數(shù)(值為0)
'c(2m+1)存儲剩余段元素個數(shù)
Private Sub Command1_Click ( ?。?br />Dim i As Integer,p As Integer,L As Integer,LL As Integer
'讀取n個數(shù)據(jù)并保存在數(shù)組a中,代碼略
'讀取m個區(qū)間的下限和上限并保存在數(shù)組b中,代碼略
For i=1 To 2*m+1
c(i)=0
Next i
i=1:p=1
L=0:LL=0
Do While i<=n And p<=mi<=n And p<=m
If IsIn(i,p) Then
If IsIn(i,p+1)Then
LL=LL+1
Else
L=L+LL+1L=L+LL+1
LL=0
End If
i=i+1
Else
c(2*p-1)=L
c(2*p)=LL
L=0:LL=0
p=p+1
End If
Loop
If i<=n Then
c(2*p-1)=n-i+1
Else
c(2*p-1)=L
c(2*p)=LL
End If
'輸出統(tǒng)計結果,代碼略
End Sub
'函數(shù)IsIn用來判斷a(i)值是否屬于第p區(qū)間
Function IsIn(i As Integer,p As Integer) As Boolean
If p>m Then
IsIn=False
Else
If a(i)>=b(2*p-1)And a(i)<=b(2*p)a(i)>=b(2*p-1)And a(i)<=b(2*p) ThenIsIn=True Else IsIn=False
End If
End Function
【考點】編輯事件處理過程的代碼.
【答案】3;i<=n And p<=m;L=L+LL+1;a(i)>=b(2*p-1)And a(i)<=b(2*p)
【解答】
【點評】
聲明:本試題解析著作權屬菁優(yōu)網所有,未經書面同意,不得復制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:9引用:1難度:0.2
相似題
-
1.學校舉辦了“語文作文現(xiàn)場賽”,參賽同學成績存儲在文本文件“gra.jye.ai”中,如左圖所示(每一行記錄一位同學的姓名和成績,以“:”分隔)。陳老師利用Python程序對作文成績進行處理,統(tǒng)計出各個分數(shù)等級的人數(shù),并輸出結果。程序運行界面如右圖所示。
實現(xiàn)上述功能的Python程序如下,請在劃線處填入合適的代碼。發(fā)布:2024/12/17 2:0:1組卷:6引用:2難度:0.3 -
2.有如下Python程序段:
執(zhí)行該程序段,輸入字符串“abcdefg”,則輸出的結果是( )發(fā)布:2024/12/20 6:30:1組卷:2引用:3難度:0.4 -
3.試題描述的內容:
一個單窗體VB程序的運行界面如圖所示。下列說法正確的是( ?。?br />(1)窗體內有1個按鈕
(2)窗體內有2個文本框
(3)窗體內有3個標簽
(4)該窗體的標題(Caption)屬性值是“加法計算器”發(fā)布:2024/12/20 20:0:2組卷:1引用:1難度:0.6
把好題分享給你的好友吧~~